mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-27 13:34:28 +00:00
Multiple things
Command functions must be async Bot.run() to run the bot automatically Get the api key from $royalbottelegram
This commit is contained in:
parent
21c8753963
commit
fb459deff2
1 changed files with 12 additions and 12 deletions
24
telegram.py
24
telegram.py
|
@ -3,6 +3,7 @@ loop = asyncio.get_event_loop()
|
|||
import aiohttp
|
||||
import async_timeout
|
||||
import datetime
|
||||
import os
|
||||
|
||||
class TelegramAPIError(Exception):
|
||||
pass
|
||||
|
@ -27,6 +28,14 @@ class Bot:
|
|||
def __hash__(self):
|
||||
return hash(self.token)
|
||||
|
||||
async def run(self):
|
||||
"""Run the bot automatically."""
|
||||
while True:
|
||||
loop.run_until_complete(self.get_updates())
|
||||
for u in self.updates:
|
||||
loop.create_task(self.parse_update(u))
|
||||
self.updates = list()
|
||||
|
||||
async def update_bot_data(self):
|
||||
"""Update self.user_data with the latest information from /getMe."""
|
||||
data = await self.api_request("getMe")
|
||||
|
@ -70,7 +79,7 @@ class Bot:
|
|||
if isinstance(update.message.content, str) and update.message.content.startswith("/"):
|
||||
command = update.message.content.split(" ")[0].lstrip("/")
|
||||
if command in self.commands:
|
||||
self.commands[command](self, update)
|
||||
loop.create_task(self.commands[command](self, update))
|
||||
# Update message status if a service message is received
|
||||
if isinstance(update.message.content, ServiceMessage):
|
||||
# New user in chat
|
||||
|
@ -361,14 +370,5 @@ class Venue:
|
|||
raise NotImplementedError("Not yet.")
|
||||
|
||||
|
||||
def legoflegend(bot, update):
|
||||
print("Message received: " + repr(update))
|
||||
|
||||
b = Bot("369842636:AAEal9io4zmgc73i6GlJSLzkccG__A4sYbo")
|
||||
b.commands["lol"] = legoflegend
|
||||
while True:
|
||||
loop.run_until_complete(b.get_updates())
|
||||
for u in b.updates:
|
||||
loop.create_task(b.parse_update(u))
|
||||
b.updates = list()
|
||||
print("Completed.")
|
||||
b = Bot(os.environ["royalbottelegram"])
|
||||
loop.run_until_complete(b.run())
|
Loading…
Reference in a new issue