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_startup import handle_startup
|
||||||
from handlers.handle_members_change import handle_join, handle_left
|
from handlers.handle_members_change import handle_join, handle_left
|
||||||
from state import State
|
from state import State
|
||||||
|
from storage import Profile
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
@@ -66,11 +67,16 @@ async def chat_members_change(update: ChatMemberUpdated):
|
|||||||
msg["chat"] = vars(update.chat)
|
msg["chat"] = vars(update.chat)
|
||||||
msg["from"] = vars(update.from_user)
|
msg["from"] = vars(update.from_user)
|
||||||
logger.debug(msg)
|
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)
|
await handle_left(msg)
|
||||||
else:
|
elif new_member:
|
||||||
await handle_join(msg)
|
await handle_join(msg)
|
||||||
|
else:
|
||||||
|
logger.info("unhandled members update")
|
||||||
|
|
||||||
|
|
||||||
async def main() -> None:
|
async def main() -> None:
|
||||||
|
@@ -34,3 +34,14 @@ class Profile:
|
|||||||
else:
|
else:
|
||||||
r = json.loads(data)
|
r = json.loads(data)
|
||||||
return r
|
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