version-0.2.0

This commit is contained in:
2024-01-06 14:25:35 +03:00
parent bc05b93c47
commit 908529b5bb
26 changed files with 185 additions and 153 deletions

View File

@@ -0,0 +1,47 @@
from handlers.send_button import show_request_msg
from bot.api import delete_message
from storage import Profile, storage
from bot.config import FEEDBACK_CHAT_ID
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
async def handle_join(msg):
chat_id = str(msg["chat"]["id"])
from_id = str(msg["from"]["id"])
actor = Profile.get(from_id, msg)
newcomer_id = str(msg["new_chat_member"]["id"])
if from_id == newcomer_id:
if len(actor["parents"]) == 0 and str(chat_id) != FEEDBACK_CHAT_ID:
# показываем сообщение с кнопкой "поручиться"
r = await show_request_msg(msg)
logger.debug(r)
else:
# за пользователя поручились ранее
pass
else:
# пользователи приглашены другим участником
logger.info(f'{len(msg["new_chat_members"])} members were invited by {from_id}')
for m in msg["new_chat_members"]:
newcomer = Profile.get(m["id"])
newcomer["parents"].append(str(from_id))
Profile.save(newcomer)
actor["children"].append(str(m["id"]))
# обновляем профиль пригласившего
Profile.save(actor)
async def handle_left(msg):
logger.info("handling member leaving")
member_id = msg["left_chat_member"]["id"]
chat_id = msg["chat"]["id"]
# удаление сообщения с кнопкой в этом чате
prev_msg = storage.get(f"btn-{chat_id}-{member_id}")
if prev_msg:
r = await delete_message(chat_id, prev_msg["message_id"])
logger.debug(r)
storage.remove(f"btn-{chat_id}-{member_id}")