fix-graph3
This commit is contained in:
12
bot/main.py
12
bot/main.py
@@ -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:
|
||||
|
@@ -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))
|
||||
|
Reference in New Issue
Block a user