HeroBrine1st 88 Опубликовано: 18 ноября, 2017 (изменено) Установка pastebin get c1v8T9CK /lib/Telegram.lua; pastebin get 4Lh9ALEY /lib/Promise.lua;pastebin get ji28sbxU /lib/JSON.lua Создание бота Здесь все подробно обьясняют: https://tlgrm.ru/docs/bots#botfather. Документация Эта библиотека возвращает одну-единственную функцию - Telegram (в либе названа Bot, но будет телеграмом) Telegram(token: string) - создает обьект бота. Использует псевдо-ООП. Bot.API - таблица с единственным полем rawRequest(method: string, options: table): table - сырой запрос без оболочек. Имеет метатаблицу. Bot.API[method](options) - возвращает промис. Promise:next(onFulfilled:function) - установить функцию, принимающая значение result при успешном выполнении промиса. Promise:catch(onRejected:function) - установить функцию, принимающая значение error при ошибке промиса. Promise:await() - ждет завершения промиса и возвращает результат с учетом всех его обработчиков. Bot.longpoll on(event: string,callback: function) - установить обработчик ивента. Весь список - message, edited_message, channel_post, edited_channel_post, inline_query, chosen_inline_result, callback_query, shipping_query, pre_checkout_query start() - запустить лонгполл. Программа блокируется. stop() - остановить. Возможно, библиотека будет не очень хорошо работать, но я тупо не могу ее адекватно протестировать - вебпрокси (закомментированная 7я строка) перестал работать (только для меня xD) P.s. если у вас тоже выбивает ошибку на 30й строке - напишите. component.internet.request тупо льет nil вместо ошибки, я пока полагаю, что это связано с блокировками. Изменено 3 февраля, 2019 пользователем HeroBrine1st 6 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TC1061 14 Опубликовано: 25 января, 2018 А если сервера Telegram окажутся недоступны? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
HeroBrine1st Автор темы 88 Опубликовано: 29 января, 2018 А если сервера Telegram окажутся недоступны? API сервер никогда не отключается. В одиночной игре использование данной библиотеки бессмысленно, а сервера без интернета не остаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
AtomicScience 76 Опубликовано: 8 февраля, 2018 Вещица реально крута, но есть одно "но": если мы перезагрузим ПК и заного запустим нашу библиотеку и попытаемся получить события, то на нас вывалятся все сообщения вплоть до мезозоя. Поэтому если планируешь дорабатывать - добавь фичу сохранения последнего lastUpdate в файл Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Гость Опубликовано: 15 февраля, 2018 Спасибо за полезную библиотеку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
HeroBrine1st Автор темы 88 Опубликовано: 18 февраля, 2018 (изменено) Вещица реально крута, но есть одно "но": если мы перезагрузим ПК и заного запустим нашу библиотеку и попытаемся получить события, то на нас вывалятся все сообщения вплоть до мезозоя. Поэтому если планируешь дорабатывать - добавь фичу сохранения последнего lastUpdate в файл Согласно документации, если я вызову метод getUpdates с параметром offset, все обновления, меньшие или равные этому ID будут засчитаны как обработанные. То есть API сервер сам сохраняет то, что я обработал обновление. Со стороны бота ничего сохранять в файл не нужно. Однако есть одно но: при команде типа /reboot и последующей перезагрузке бот может зациклить перезагрузку. Решение - перед выключением или перезагрузкой надо еще раз получить обновления. И да, лимит обновлений - 100 единиц. При получении нового обновления самое первое удаляется (если выходит за лимит). Если обновлению уже исполнился 1 день, оно автоматически удаляется. Изменено 18 февраля, 2018 пользователем HeroBrine1st Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Гость kovirolik Опубликовано: 1 марта, 2018 Спасибо) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
HeroBrine1st Автор темы 88 Опубликовано: 3 февраля, 2019 Обновил библиотеку. Появился longpoll и запросы к API теперь асинхронные. Однако вылетает ошибка, скорее всего из-за блокировок (тем не менее, телеграм без прокси у меня работает прекрасно). Если у вас даже с впн выпадает ошибка - напишите. + появилась поддержка веб-прокси, надо раскомментировать 7ю строку и вставить url, + переписать функцию encode (ради одной функции тащить web.lua от ECS не очень хотелось), если сайт использует другой вариант кодирования URL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 3 февраля, 2019 1 час назад, HeroBrine1st сказал: тем не менее, телеграм без прокси у меня работает прекрасно Вроде он уже на автомате переключается на какую-нибудь проксю в клиенте. Когда он обновляется - получает списки новых проксей. Поэтому сколько бы Роскомнадзор не банил айпишники, он всегда имеет пачку свежих, чтобы переключиться. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
HeroBrine1st Автор темы 88 Опубликовано: 3 февраля, 2019 1 час назад, Totoro сказал: получает списки новых проксей Неплохо бы найти способ так же делать в либе Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
AtomicScience 76 Опубликовано: 5 июня, 2020 (изменено) На всякий случай, если кто-то захочет скачать библиотеку, выкладываю свой, исправленный и работающий на новых версиях вариант Помимо исправления некоторых ошибок, добавил ссылку на зеркало Телеграма - теперь проблем с блокировками быть не должно Ссылка Команда для установки (с зависимостями): pastebin get 4XB9FdRH -f /lib/Telegram.lua; pastebin get 4Lh9ALEY /lib/Promise.lua; pastebin get ji28sbxU /lib/JSON.lua; Изменено 5 июня, 2020 пользователем AtomicScience 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub 0 Опубликовано: 15 декабря, 2021 (изменено) Ничего не понимаю, в OpenComputers удалили thread либу? Документация имеется https://ocdoc.cil.li/api:thread а вот реквайр либы не робит ¯\_(ツ)_/¯ Или это внешняя зависимость? Изменено 15 декабря, 2021 пользователем Belzebub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 15 декабря, 2021 33 минуты назад, Belzebub сказал: в OpenComputers удалили thread либу? Всё на месте. Попробуй загрузить систему с дискеты OpenOS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 15 декабря, 2021 34 минуты назад, Belzebub сказал: Ничего не понимаю, в OpenComputers удалили thread либу? Документация имеется https://ocdoc.cil.li/api:thread а вот реквайр либы не робит ¯\_(ツ)_/¯ Или это внешняя зависимость? Этой версии OC уже пять лет. Пять. Если не заметили, пять лет этой версии. А, да, забыл сказать, уже 5 лет прошло с релиза 1.6.1. Ну, в заключение отмечу, что версия устарела на пять лет. 5 лет. Five years. 五年. Зачем? 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub 0 Опубликовано: 16 декабря, 2021 (изменено) 17 часов назад, eu_tomat сказал: Всё на месте. Попробуй загрузить систему с дискеты OpenOS. ¯\_(ツ)_/¯ один фиг либы нету. да фиг бы с ней, я уже написал собственные функции для взаимодействия с тг апи без этих ваших новомодных тредов. Изменено 16 декабря, 2021 пользователем Belzebub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 16 декабря, 2021 @Belzebub Какая у тебя версия OpenComputers? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub 0 Опубликовано: 16 декабря, 2021 10 минут назад, eu_tomat сказал: @Belzebub Какая у тебя версия OpenComputers? 1.6.2.12 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub 0 Опубликовано: 16 декабря, 2021 да, тред либа релизнулась в некст версии Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах