fix-graph3

This commit is contained in:
2023-09-18 14:45:08 +03:00
parent 00ac859312
commit bf31e8aa51
2 changed files with 20 additions and 3 deletions

View File

@@ -15,6 +15,7 @@ from handlers.handle_join_request import handle_join_request
from handlers.handle_startup import handle_startup
from handlers.handle_members_change import handle_join, handle_left
from state import State
from storage import Profile
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
@@ -66,11 +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.status == ChatMemberStatus.KICKED:
# был забанен, удаляем все поручения
old_member = update.old_chat_member
new_member = update.new_chat_member
if old_member:
if old_member.status == ChatMemberStatus.KICKED:
Profile.erase(update.from_user.id)
await handle_left(msg)
else:
elif new_member:
await handle_join(msg)
else:
logger.info("unhandled members update")
async def main() -> None:

View File

@@ -34,3 +34,14 @@ class Profile:
else:
r = json.loads(data)
return r
def erase(self, member_id):
data = self.storage.get(f"usr-{member_id}")
if data:
member = json.loads(data)
for child in member["children"]:
child_member = self.storage.get(f"usr-{child}")
if child_member:
child_member = json.loads(child_member)
child_member["parents"].remove(member_id)
self.storage.set(f"usr-{child_member['id']}", json.dumps(child_member))