Блог им. melamaster

Telagram+Quik+Lua: сам себе мессенджер

Самый простой способ, которым я пользовался долгое время.
Нужно установить две программы: Tor browser и curl.
Первая, чтобы блокировки телеграма обходить. Вторая, чтобы сетевую команду исполнять.

Разумеется, телеграм-бот уже должен быть создан, вы должны знать его идентификатор, а также айди своего телеграм-аккаунта,
чтобы подписаться на бота и видеть сообщения от бота.

В луа после этого всё предельно просто:
str='C:\\curl-7.63.0-win64-mingw\\bin\\curl.exe --socks5 127.0.0.1:9150 '
	str=str..'"https://api.telegram.org/botидентификаторвашегобота/sendMessage?chat_id=айдивашегоаккаунта&text='

str=str..переменная1..": "..переменная2
str=str..'"'
os.execute(str)
Приведенный код будет слать в телеграм значения двух переменных, разделенных двоеточием.
Всё просто, но есть два нюанса:
1. Каждая отправка сообщения сопровождается вызовом окна командной строки, которая всплывает поверх всех окон на одну-две секунды. Поэтому слать такие сообщения на машине, с которой вы работаете, чаще одного раза в минуту, не стоит.
2. Я таким способом пользовался больше года и считал, что он и легкий и надежный, но оказалось, что он легкий, но ненадежный. Один раз у меня случилась такая штука. Всплыло черное окошко командной строки, сообщение в телегу не ушло, окошко продолжило висеть. Видимо, какой-то сетевой сбой. И, как оказалось, квик-поток, вызвавший эту командную строку через os.execute, тоже завис и квик перестал коннектиться почему-то, потерял данные и тд. После того, как я это окошко закрыл крестиком, квик продолжил работу. Грубо говоря, из десятков тысяч запусков за год применения такого способа 1 вот такой глюк. Редко, но неприятно.

А какие вы знаете простые, легкие и надежные способы информирования без необходимости много кодить?

★28
9 комментариев
Должна быть библиотека для сокетов внутри луа, тогда курл не нужен.

Кстати, этот код случаем не внутри одного из коллбэков? Они идут в основном потоке квика и вполне способны его вешать.
avatar
Денис Г., этот код исполнялся в main
avatar
Sergey Pavlov, чтобы такого не было зависания курла я использую ключ --connect-timeout 10 через десять секунд разорвет соединение если не будет ответа от телеграмма, возможно это поможет.
Моя строка выглядит так
os.execute('start /MIN C:\\curl\\curl.exe --connect-timeout 10 -k -s «api.telegram.org/»')

окно командной строки сразу сворачивается и не мешает
Не знаю, у меня через сокеты и питон работает, хоть 10 раз в секунду отправляется инфа о сделке (когда по одной заявке много маленьких сделок одновременно) ничего не тормозит.  
avatar
Роскомнадзор, конечно, немного добавил препятствий. Тоже шлю в телегу, а точнее бот у меня. Если от квика датафидюсь, у меня VPN на локальной машине на весь траф, в т.ч. на траф из скрипта. Можно ещё прокси юзать, как вариант. А если в облаках размещаться не наших, то вообще отлично запросы к телеграму проходят). Недавно освоил запрос, который картинки в телегу шлет), теперь скрины графика себе шлю).
avatar
Серег, учи Python, коннекться с Alor OpenAPI и будет тебе счастье). Квик зло).
avatar
Сергей, наверно лучше взять готовую библиотеку телеги под луа и ее использовать. Что-нибудь такое:
https://github.com/wrxck/telegram-bot-lua

avatar
Делаю приблизительно так же, только вместо тора — опера с включенным VPN, и запускается она из кода на C++
«2. Я таким способом пользовался больше года и считал, что он и легкий и надежный, но оказалось, что он легкий, но ненадежный.»

Не стоит завешивать (ждать выполнения) роботов/квик. Через командную строку дергаем vbs/питон скрипт который отработается или не отработается сам по себе, подождет ответа от сервиса, перепошлет если надо, запишет в лог реплай от сервиса итд. Из Ами дергаю по ShellExecute, он не ждет ответа, из Квика просто пишу в файлы а алерты уже из своего софта по тому же принципу. Это относится к телеграммам, емейлу, смс итд.

«А какие вы знаете простые, легкие и надежные способы информирования без необходимости много кодить?»

Емейл (через встроенный в виндоуз функционал, без сторонних прог) и смс через http запросы. Несколько строк в vbs. На андроиде есть прога AlarmManager, умеет читать смс и вотсап, по кейвордам может включить звуковой алерт, оч удобно.

Понимаю что телега очень удобно но в случае суверенного интернета действительно критичные алерты надо слать исключительно через локальные сервисы и исключительно через открытые протоколы типа http.

Имхо
avatar

теги блога Sergey Pavlov

....все тэги



UPDONW