1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-23 19:44:20 +00:00

Use long polling

This commit is contained in:
Steffo 2019-04-09 15:21:03 +02:00
parent 94980b3d15
commit eb821a6259
3 changed files with 5 additions and 5 deletions

View file

@ -3,3 +3,4 @@ websockets>=7.0
pytest>=4.3.1
psycopg2-binary>=2.8
aiohttp>=3.5.4
sqlalchemy>=1.3.2

View file

@ -3,7 +3,6 @@ import asyncio
import typing
import logging as _logging
import sys
import re
from ..commands import NullCommand
from ..utils import asyncify, Call, Command
from ..network import RoyalnetLink, Message
@ -89,7 +88,10 @@ class TelegramBot:
self.should_run = True
while self.should_run:
# Get the latest 100 updates
last_updates: typing.List[telegram.Update] = await asyncify(self.bot.get_updates, offset=self.offset)
try:
last_updates: typing.List[telegram.Update] = await asyncify(self.bot.get_updates, offset=self.offset, timeout=60)
except telegram.error.TimedOut:
continue
# Handle updates
for update in last_updates:
# noinspection PyAsyncCall
@ -99,8 +101,6 @@ class TelegramBot:
self.offset = last_updates[-1].update_id + 1
except IndexError:
pass
# Wait for a while TODO: use long polling
await asyncio.sleep(1)
async def handle_update(self, update: telegram.Update):
# Skip non-message updates

View file

@ -33,4 +33,3 @@ class Telegram:
return f"{self.tg_first_name} {self.tg_last_name}"
else:
return self.tg_first_name