eigenein / aiotg Goto Github PK
View Code? Open in Web Editor NEWTelegram Bot API wrapper for aiohttp.
License: MIT License
Telegram Bot API wrapper for aiohttp.
License: MIT License
В класс runner-а нельзя внести запуск и закрытие event loop-а (ибо может потребоваться при этом сделать с ним что-то еще). Но часто нужно будет запускать только бота.
Поэтому, изменим тулзу aiotg
так, чтобы она принимала имя пакета или модуля с классом бота и запускала его. А #4 SimpleBot
вынесем в отдельный модуль и добавим в туториал.
Написать декораторы, чтобы вручную не фильтровать обновления в on_update
.
По аналогии с LongPollingRunner
сделать WebhookRunner
, который будет принимать обновления через webhook.
В продолжение #3.
Дочерний класс должен определить методы чтения и сохранения состояния в чате. Тогда можно будет кроме шаблона команды еще и задавать состояние, в котором будет срабатывать задекорированный метод.
Пакет будет предоставлять утилиту, которая в long polling или web hook будет просто выводить все полученные от сервера обновления. Полезно для отладки и тестирования.
Если для запуска бота нужны дополнительные параметры, то сейчас нет простой возможности передать их, если бот запускается через утилиту aiotg
.
Можно попробовать придумать какой-нибудь удобный способ.
Надоело всякий раз писать цикл обработки обновлений вручную, надо бы замутить для этого специально обученный класс.
Можно также предусмотреть передачу в него произвольного источника обновлений (long polling, web hook, mock).
01-31 02:48:36 [E] Failed to get updates.
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/aiotg/__init__.py", line 558, in loop
updates = await self.telegram.get_updates(self.offset, self.limit, self.timeout)
File "/usr/local/lib/python3.6/dist-packages/aiotg/__init__.py", line 397, in get_updates
for update in await self.post("getUpdates", offset=offset, limit=limit, timeout=timeout)
File "/usr/local/lib/python3.6/dist-packages/aiotg/__init__.py", line 493, in post
payload = await response.json()
File "/usr/local/lib/python3.6/dist-packages/aiohttp/client_reqrep.py", line 772, in json
return loads(stripped.decode(encoding))
File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.