telethon-secret-chat
telethon-secret-chat copied to clipboard
issue in auto-accept = false
my goal is to accept secret chat from mobile, not from code and then further events should be captured, but I have seen new_secret_chat is called when secret chat is triggered but after that secret_chat_media_handler is never called
async def new_secret_chat(event):
try:
chat = event.chat
created_by_me = 1
secret_chat_info[chat.id] = {
"admin_id": chat.admin_id,
"participant_id": chat.participant_id ,
"access_hash": chat.access_hash,
"g_a": chat.g_a,
"created_by_me": created_by_me
}
print( "1" , chat)
except Exception as ex:
print("tg-main.py: new_secret_chat:", ex, flush=True)
async def secret_chat_media_handler(event):
try:
print("XOXOXOXOOXOXOOX")
print(event)
if not hasattr(event, 'decrypted_event'): return
if not hasattr(event.decrypted_event, 'media') or event.decrypted_event.media is None: return
print( "2", event)
print( "3" , event.decrypted_event)
print( "4" , event.decrypted_event.media)
print( "5" , event.decrypted_event.media)
# chat_id = event.message.chat_id
# chat_info = secret_chat_info.get(chat_id, {})
if not hasattr(event.decrypted_event, 'ttl') or event.decrypted_event.ttl == 0: return
if isinstance(event.decrypted_event.media, DecryptedMessageMediaPhoto):
file_name = 'see.png'
elif isinstance(event.decrypted_event.media, DecryptedMessageMediaVideo):
file_name = 'see.mp4'
else:
file_name = 'see.unknown'
print(f"Processing {file_name}")
bytes_data = await download_secret_media(event.decrypted_event)
with open(f"./{file_name}", "wb") as f:
f.write(bytes_data)
f.close()
# await client.send_file("me", file_name)
except Exception as ex:
print("tg-main.py: new_secret_chat_media_handler:", ex, flush=True)
try:
secret_manager = SecretChatManager(client, auto_accept=False)
secret_manager.add_secret_event_handler(event_type=SECRET_TYPES.accept, func=new_secret_chat)
secret_manager.add_secret_event_handler(func=secret_chat_media_handler)
except Exception as ex:
print("tg-main.py: _SecretChatManager:", ex, flush=True)