This commit is contained in:
Untone 2024-09-26 17:40:13 +03:00
parent 2eeb112c14
commit 834a63f5e6

62
main.py
View File

@ -1,11 +1,8 @@
import asyncio import asyncio
import logging import logging
import signal
import sys
from aiohttp import ClientSession
from handlers.messages_routing import messages_routing from handlers.messages_routing import messages_routing
from handlers.handle_join_request import handle_join_request, handle_reaction_on_request from handlers.handle_join_request import handle_join_request, handle_reaction_on_request
from bot.config import BOT_TOKEN, FEEDBACK_CHAT_ID from bot.config import FEEDBACK_CHAT_ID
from bot.api import telegram_api from bot.api import telegram_api
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
@ -15,38 +12,37 @@ state = dict()
async def start(): async def start():
logger.info("\n\npolling started\n\n") logger.info("\n\npolling started\n\n")
async with ClientSession() as session: offset = 0 # init offset
offset = 0 # init offset while True:
while True: response = await telegram_api("getUpdates", offset=offset, allowed_updates=['message', 'message_reaction', 'chat_join_request'])
response = await telegram_api("getUpdates", offset=offset, allowed_updates=['message', 'message_reaction', 'chat_join_request']) # logger.debug(response)
# logger.debug(response) if isinstance(response, dict):
if isinstance(response, dict): result = response.get("result", [])
result = response.get("result", []) for update in result:
for update in result: try:
try: message = update.get("message", update.get("edited_message"))
message = update.get("message", update.get("edited_message")) join_chat_request = update.get("join_chat_request")
join_chat_request = update.get("join_chat_request") message_reaction = update.get("join_chat_request")
message_reaction = update.get("join_chat_request") if message:
if message: # logger.debug(f"chat: {message.get("chat", message.get("chat_id"))}")
logger.debug(f"chat: {message.get("chat", message.get("chat_id"))}") await messages_routing(message, state)
await messages_routing(message, state) elif join_chat_request:
elif join_chat_request: await handle_join_request(join_chat_request)
await handle_join_request(join_chat_request) elif message_reaction:
elif message_reaction: await handle_reaction_on_request(message_reaction)
await handle_reaction_on_request(message_reaction)
except Exception as e: except Exception as e:
logger.error(e) logger.error(e)
import traceback import traceback
text = traceback.format_exc() text = traceback.format_exc()
await telegram_api("sendMessage", chat_id=FEEDBACK_CHAT_ID, text=text) await telegram_api("sendMessage", chat_id=FEEDBACK_CHAT_ID, text=text)
offset = update["update_id"] + 1 offset = update["update_id"] + 1
await asyncio.sleep(1.0) await asyncio.sleep(1.0)
else: else:
logger.error(' \n\n\n!!! getUpdates polling error\n\n\n') logger.error(' \n\n\n!!! getUpdates polling error\n\n\n')
await asyncio.sleep(30.0) await asyncio.sleep(30.0)
if __name__ == "__main__": if __name__ == "__main__":