
Neekoso
29.08.2016
16:39:31
От такого количество новых вещей голова разрывается

Aliaksei
29.08.2016
16:42:50

Vitaly
29.08.2016
16:43:19
ну так телеграм не шлет 'keep-alive' в хидерах
как?

Google

Aliaksei
29.08.2016
16:50:34
Не шлёт, но и не должен. В HTTP/1.1 keep-alive по умолчанию включен и заголовок нужно добавлять, только если keep-alive не поддерживается.

Vitaly
29.08.2016
16:57:29
Да, но когда я проверял, телеграм слал хидер "close"
сегодня перепроверю и отпишусь

Neekoso
29.08.2016
16:58:12
хэдер*

Богдан
29.08.2016
16:59:12
Много кто говорит «хидер»

Neekoso
29.08.2016
16:59:30
От слова "head"
Заголовок

Andrey ?
29.08.2016
16:59:50
Нескромный вопрос, чем getUpdates лучше вебхуков?
М, cloudflare?

Богдан
29.08.2016
17:01:59
?

Andrey ?
29.08.2016
17:02:43
Я просто ниразу ничего не делал с getUpdates, только с хуками, вот и вопрошаю)

Vitaly
29.08.2016
17:02:50

Богдан
29.08.2016
17:04:36

Google

Neekoso
29.08.2016
17:04:42
)
хуедер )

Богдан
29.08.2016
17:05:36
Он сам перезапускается
Ну это да
Поэтому я его и перезапускал

fox.lua
29.08.2016
17:08:53
а правда, что боты на поллинге пизже тех, что на веб-хуках?

Богдан
29.08.2016
17:08:59
А я могу как-то со стороны бота заблокировать юзера?
Чтобы он вообще писать не мог

fox.lua
29.08.2016
17:09:15

Богдан
29.08.2016
17:09:38
А если на node то быстро все

Vitaly
29.08.2016
18:03:29

Богдан
29.08.2016
19:01:28
Лол

[Anonymous]
30.08.2016
06:54:15
Доброе утро, народ! Есть кто знакомый с telegram-cli тут? Кто имеет возможность подсказать там по коду, или взяться сделать одну небольшую правку в нем? Нужно самую малость поковыряться в коде и переписать формат в котором приходят сообщения, изменив чуть-чуть schema.tl. Подробнее в личку, спасибо!

Vitaly
30.08.2016
06:58:24


[Anonymous]
30.08.2016
07:16:56
Тогда с вашего позволения кратко здесь опишу суть вопроса.
https://github.com/vysheng/tgl/blob/ffb04caca71de0cddf28cd33a4575922900a59ed/scheme.tl - вот что использует оригинальный telegram-cli. Собственно интересует нас здесь вот какой кусок:
message#c992e15c flags:# unread:flags.0?true out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true id:int from_id:flags.8?int to_id:Peer fwd_from_id:flags.2?Peer fwd_date:flags.2?int via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int = Message;
а если быть точным то даже вот этот:
fwd_from_id:flags.2?Peer fwd_date:flags.2?int
К сути проблемы. Как мы видим, забирая пересланное сообщение telegram-cli видит от кого оно, и забирает данные о том когда был опубликован оригинал, но при этом он не забирает никакого id оригинального сообщения. Что по сути делает невозможным идентифицировать как-либо оригинал. Однако такая возможность есть - так например если вы нажмете в своем клиенте на любой пост который вам переслали из канала, вы перейдете в канал именно к этому посту. Покопавшись я обнаружил вот что:
https://raw.githubusercontent.com/telegramdesktop/tdesktop/master/Telegram/SourceFiles/mtproto/scheme.tl
это версия schema.tl которая используется в tdesktop, и в ней message выглядит иначе:
message#c09be45f flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int = Message;
как видим тут уже забирается оригинальное сообщение в некий MessageFwdHeader которого вообще в telegram-cli нет. Выглдит он так:
messageFwdHeader#c786ddcb flags:# from_id:flags.0?int date:int channel_id:flags.1?int channel_post:flags.2?int = MessageFwdHeader;
и в нем как мы видим есть заветный channel_post -> который по всей видимости и хранит тот заветный id оригинального сообщения.
Собственно, задача сделать так, чтобы этот channel_post для пересланных сообщений в итоге отдавался в json'е при запросе history, get_message и т.д. вместе с остальными данными.
Как-то так.


Vitaly
30.08.2016
07:20:47


[Anonymous]
30.08.2016
07:21:11

Andrew
30.08.2016
07:24:10
import schedule

Yokai
30.08.2016
09:52:14
Можно ли на python написать что-нибудь на linux и запустить без изменений и установки пакетов через pip на macos?

x3233
30.08.2016
09:52:31
Да

Google

x3233
30.08.2016
09:52:34
Можно

Yokai
30.08.2016
09:52:45
даже если надо делать http-request?

x3233
30.08.2016
09:53:10
Если использовать стандартные либы
UrlLib гапример

Плюшка
30.08.2016
09:53:54
если нужны пакеты, то их скорее всего можно поставлять с комплекте с программой

Yokai
30.08.2016
09:54:31
да так, чтоб оно запустилось

Плюшка
30.08.2016
09:55:39
если они чисто на питоне, без нативных расширений - то их можно тупо скопировать, иначе придется кросс-компилировать расширения
а на macos так туго с pip ?
ах да, можно еще скомпилировать расширения на самой macos

Yokai
30.08.2016
09:57:52
я хочу упростить клиенту жизнь, и усложняю ее себе

Плюшка
30.08.2016
09:59:18
клиенту же еще питон надо ставить :D

Yokai
30.08.2016
09:59:29
хотя да, *установите питон3 с сайта питона, пропишите в консоли pip install a b c d e, и python *путь к файлу**
в макоси какой-то питон вроде даже есть, но по-моему не тот, что я хочу иметь

Плюшка
30.08.2016
10:00:03
можно bash-скрипт написать, который сам все устанавливать будет

Yokai
30.08.2016
10:00:37
а как там в макоси путь к башу?
#/bin/env bash ?
опять-таки, чтобы установить python автоматически через bash, этот скрипт надо будет тестировать :< аррр

Плюшка
30.08.2016
10:02:09

Pavel
30.08.2016
10:34:13
Но есть же готовые тулзы, типа pex. https://github.com/pantsbuild/pex

Alex
30.08.2016
10:38:11
A DDoS attack on the Bot API is in progress. Hang on tight, we're fighting back.

Google

Yokai
30.08.2016
11:01:56
Решил просто использовать по-максимуму стандартный питон без дополнительных пакетов

Pavel
30.08.2016
11:04:13
Не, ну если вы так заранее все знаете... то зачем спрашивать? )

Yokai
30.08.2016
11:04:35
хотя... Надо поглубже покопать на самом деле, вроде после танцев с pex и tox в продакшн не надо их ставить. Но про продакшн на macos при хосте на linux не уверен

Pavel
30.08.2016
11:06:16
Из стандартной поставки можно попробовать упаковать все в https://docs.python.org/3/library/zipapp.html. Но интерпретатор все равно придется тянуть.
> You can also build pex in a git clone using tox:
Никто ж не обязывает.
> Build a standalone pex binary into pex.pex using the pex console_scripts entry point:
> $ pex pex -c pex -o pex.pex
Я бы сказал, что сам pex на проде тоже не нужен.
Ибо standalone.

Yokai
30.08.2016
11:11:55
интерпретатор у клиента есть, python2.7 по умолчанию в макоси стоит. Я просто не уверен, насколько можно издеваться над клиентом требованиями что-то ставить и консолить
А в своем умении написать bash-скрипт, который безошибочно и 100% запустится на макоси, не уверен

Pavel
30.08.2016
11:12:58
Тогда с минимальными потерями можно попробовать все запаковать в zipapp.
Там идея такая. ZIP-формат пропускает все, что расположено до заголовка ZIP. В начало пишется что-то вроде #!/usr/bin/env python; exit 0, затем все модули, запакованные в ZIP. Интепретатор умеет запускать пакет из архива. Если там будут все зависимости, то скорее всего, прокатит.
Ну и на архив ставится chmod +x.
Тогда оно типа само запускается как бинарник.

Yokai
30.08.2016
11:15:53
ну и linux с макосью бинарно несовместимы

Pavel
30.08.2016
11:16:21
А это к чему?

Yokai
30.08.2016
11:16:36
Тогда оно типа само запускается как бинарник.
если бинарные пакеты вставить в архив, они не станут совместимы со всеми осями

Pavel
30.08.2016
11:17:44
Это да, но без использования сторонних утилит или вынуждения юзера консолить вы кроссплатформенность вряд ли получите.

Google

Yokai
30.08.2016
11:19:54
мда... Значит, только KISS, только хардкор, только (хорошо хоть) установленный у клиента python2.7, установленный у него же pip и всё. А лучше даже без pip

Pavel
30.08.2016
11:21:14
А почему все-таки не pex/py2exe/whatever?
Есть какой-то рациональный аргумент использовать только чистый питон?

fox.lua
30.08.2016
12:16:44

Yokai
30.08.2016
12:18:24
pex не кросскомпилирует