Тема: еще один telegram bot
Этот бот - демонстрация возможностей библиотеки lua_share. Кроме нее, весь код бота написан на lua (за исключением сокетов, json и ssl - все это opensource C + lua библиотеки). ipc_telegram_bot.exe - это переименованный 32-х битный lua_share_server.exe из дистрибутива lua_share. Lua5.1.dll - из дистрибутива lua 5.1.5; libeay32.dll ssleay32.dll - из дистрибутива OpenSSL. Все это собрано вместе для удобства.
Бот позволяет пользователям telegram, в частности, хозяину бота, передавать команды нескольким одновременно запущенным терминалам quik версий 7 и 8, программировать в этих терминалах реакцию на команды. При этом сам скрипт, в котором терминал quik передает и получает сообщения предельно прост и занимает несколько строк.
Бот состоит из скрипта-агента quik_telegram_agent.lua, который запускается в терминалах quik и в котором программируется реакция на команды пользователей и "брокера" - отдельного приложения ipc_telegram_bot.exe, которое аутентифицирует пользователей telegram и маршрутизирует сообщения от пользователей терминалам quik и обратно. Поддерживается общение точка-точка и широковещательные сообщения.
Установка:
------------
[s]1. Зарегистрировать telegram bot, получить его token.
2. Token следует прописать в файле ipc_telegram_bot.lua: в первой строке присвоить переменной telegram_bot_token строковое значение, соответствующее токену.
3. Запустить ipc_telegram_bot.exe
4. Запустить quik, предварительно положив в него файлы из каталога quik.
5. Запустить в quik агент quik_telegram_agent.lua
Взаимодействие с ботом:
-----------------------------
Если в телеграме подключиться к боту и послать в него "hello", то пользователь становится "залогинен" (для секурности слово "hello" можно заменить на какой-то уникальный пароль). После этого, все сообщения будут транслироваться во все терминалы quik, в которых запущен скрипт quik_telegram_agent.lua.
Каждый из этих терминалов будет отвечать пользователю на его сообщение сообщением "received: <сообщение пользователя>", а так же выводить id пользователя и текст сообщения в таблицу "системные сообщения". Кроме того, терминалы будут рассылать всем "залогиненным" клиентам статус своего соединения.
Это просто демонстрационный пример. Ничего "полезного" кроме рассылки статуса соединения quik_telegram_agent.lua не делает. Пользователь должен сам запрограммировать желаемое поведение бота.
Дистрибутив:
---------------
[url]https://www.dropbox.com/s/852tk2yoif56w8o/telegram_bot_binaries_x64.zip?dl=0[/url]