telethon-secret-chat icon indicating copy to clipboard operation
telethon-secret-chat copied to clipboard

issue in auto-accept = false

Open 0tanvi00 opened this issue 6 months ago • 0 comments

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)

0tanvi00 avatar Aug 21 '24 05:08 0tanvi00