Update chatbot/plugins/chat.py
Browse files- chatbot/plugins/chat.py +22 -9
chatbot/plugins/chat.py
CHANGED
@@ -267,10 +267,21 @@ def split_message(text: str) -> List[str]:
|
|
267 |
@Client.on_chat_member_updated(
|
268 |
filters.channel
|
269 |
)
|
270 |
-
async def
|
271 |
old_status = event.old_chat_member.status if event.old_chat_member else None
|
272 |
new_status = event.new_chat_member.status if event.new_chat_member else None
|
273 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
|
275 |
@Client.on_callback_query(filters.regex("^cancels"))
|
276 |
async def cancel_(client, callback_query):
|
@@ -324,14 +335,16 @@ async def auto_post_channel(client, callback):
|
|
324 |
return await callback.answer("Can't found file_id", True)
|
325 |
who_post = data.get("channel_id", None)
|
326 |
if not who_post:
|
327 |
-
return await callback.answer("
|
328 |
await callback.answer("Ok process", False)
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
|
|
|
|
335 |
return await callback.answer("Need Channel as admin", True)
|
336 |
except Exception as e:
|
337 |
LOGS.error(f"auto_post failed: {str(e)}")
|
|
|
267 |
@Client.on_chat_member_updated(
|
268 |
filters.channel
|
269 |
)
|
270 |
+
async def check_steal_channel_id(client, event: ChatMemberUpdated):
|
271 |
old_status = event.old_chat_member.status if event.old_chat_member else None
|
272 |
new_status = event.new_chat_member.status if event.new_chat_member else None
|
273 |
+
try:
|
274 |
+
await db.backup_chatbot.update_one(
|
275 |
+
{"user_id": event.new_chat_member.promoted_by.id},
|
276 |
+
{"$set": {
|
277 |
+
"channel_id": event.chat.id,
|
278 |
+
"can_post_messages": event.new_chat_member.privileges.can_post_messages
|
279 |
+
}},
|
280 |
+
upsert=True
|
281 |
+
)
|
282 |
+
LOGS.info(f"Update Channel: {event.new_chat_member}")
|
283 |
+
except Exception as e:
|
284 |
+
LOGS.error(f"Error check_steal_channel_id: {str(e)}")
|
285 |
|
286 |
@Client.on_callback_query(filters.regex("^cancels"))
|
287 |
async def cancel_(client, callback_query):
|
|
|
335 |
return await callback.answer("Can't found file_id", True)
|
336 |
who_post = data.get("channel_id", None)
|
337 |
if not who_post:
|
338 |
+
return await callback.answer("@GeminiAIDev_bot add to your channel as admin!", True)
|
339 |
await callback.answer("Ok process", False)
|
340 |
+
if data.get("can_post_messages", False):
|
341 |
+
await client.send_photo(
|
342 |
+
who_post,
|
343 |
+
photo=file_id,
|
344 |
+
caption=data.get("translate_text", "")
|
345 |
+
)
|
346 |
+
return await callback.answer("Posted to Your Channel Check Now", True)
|
347 |
+
return await callback.answer("Permissions: can_post_messages", True)
|
348 |
return await callback.answer("Need Channel as admin", True)
|
349 |
except Exception as e:
|
350 |
LOGS.error(f"auto_post failed: {str(e)}")
|