fix-graph
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
## [0.0.12]
|
||||
|
||||
- множество исправлений в роутинге сообщений
|
||||
- исправления в коммандах /ask и /my
|
||||
- исправление обработки случая без фото
|
||||
- добавлен автомат состояний
|
||||
- добавлена возможность высказаться "на кругу" без одобрения заявки
|
||||
- асинхронное api
|
||||
|
||||
|
||||
## [0.0.11]
|
||||
|
||||
- отображение одобренности заявки на кнопке
|
||||
@@ -25,6 +28,7 @@
|
||||
- исправлены ошибки
|
||||
- добавлена сервисная команда для показа потерянных заявок
|
||||
|
||||
|
||||
## [0.0.9]
|
||||
|
||||
- исправление логики show_request_msg
|
||||
@@ -33,6 +37,7 @@
|
||||
- kick для тех, от кого отказались поручители
|
||||
- bugfix: нестандартные символы в имени
|
||||
|
||||
|
||||
## [0.0.8]
|
||||
|
||||
- генерация древовидного графа, с опорой на одного участника
|
||||
|
@@ -42,6 +42,6 @@ async def handle_left(msg):
|
||||
# удаление сообщения с кнопкой в этом чате
|
||||
prev_msg = storage.get(f"btn-{chat_id}-{member_id}")
|
||||
if prev_msg:
|
||||
r = await delete_message(chat_id, prev_msg["id"])
|
||||
r = await delete_message(chat_id, prev_msg["message_id"])
|
||||
logger.debug(r)
|
||||
storage.remove(f"btn-{chat_id}-{member_id}")
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from bot.config import FEEDBACK_CHAT_ID
|
||||
from config import FEEDBACK_CHAT_ID
|
||||
from storage import scan, Profile
|
||||
from api import approve_chat_join_request, kick_member, send_message
|
||||
from handlers.callback_vouch import update_button
|
||||
|
@@ -5,7 +5,8 @@ import signal # Import the signal module
|
||||
from aiogram import Bot, Dispatcher, Router
|
||||
from aiogram.enums import ParseMode
|
||||
from aiogram.filters import CommandStart, Command
|
||||
from aiogram.types import Message, ChatJoinRequest, CallbackQuery, ChatMemberUpdated, ChatMemberLeft
|
||||
from aiogram.types import Message, ChatJoinRequest, CallbackQuery, ChatMemberUpdated, ChatMemberLeft, ChatMemberBanned
|
||||
from aiogram.enums import ChatMemberStatus
|
||||
from config import BOT_TOKEN
|
||||
from handlers.routing import handle_routing
|
||||
from handlers.callback_unlink import handle_unlink
|
||||
@@ -66,15 +67,16 @@ async def chat_members_change(update: ChatMemberUpdated):
|
||||
msg["chat"] = vars(update.chat)
|
||||
msg["from"] = vars(update.from_user)
|
||||
logger.debug(msg)
|
||||
if update.old_chat_member == ChatMemberLeft:
|
||||
if update.old_chat_member.status == ChatMemberStatus.KICKED:
|
||||
# был забанен, удаляем все поручения
|
||||
await handle_left(msg)
|
||||
else:
|
||||
await handle_join(msg)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
# connect router
|
||||
dp.include_router(router)
|
||||
|
||||
# storage revalidation
|
||||
await handle_startup()
|
||||
# Start event dispatching
|
||||
|
@@ -1,3 +1,8 @@
|
||||
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
# Define SVG code generation function with member_id parameter
|
||||
def generate_chart(members, member_id=None):
|
||||
if not member_id:
|
||||
@@ -18,6 +23,8 @@ def generate_chart(members, member_id=None):
|
||||
descendants.add(member_id)
|
||||
break
|
||||
|
||||
# calculate only if links are founded
|
||||
if member:
|
||||
stack = member["children"].copy()
|
||||
while stack:
|
||||
child_id = stack.pop()
|
||||
@@ -65,3 +72,8 @@ def generate_chart(members, member_id=None):
|
||||
svg_code += "</svg>"
|
||||
|
||||
return svg_code.encode("utf-8")
|
||||
|
||||
else:
|
||||
logger.error(f"no connections in graph for {member_id}")
|
||||
logger.debug(members)
|
||||
return ""
|
||||
|
Reference in New Issue
Block a user