• Как взять данные с нужного сервера Telegram в Pyrogram?

    @Emir2010
    В исходном коде Pyrogram при скачивании файлов есть решение, необходимое для решения этой проблемы.

    Решения заключается в создании временной сессии с нужным dc_id.

    Прикладываю код функции, которая в безопасном режиме (не нужно думать о переключении dc_id) возвращает информацию по статистике канала
    async def get_broadcast_stats(
                client: Client,
                dc_id: int,
                input_channel: InputChannel,
        ) -> BroadcastStats:
            session = Session(
                client=client,
                dc_id=dc_id,
                auth_key=await Auth(
                    client=client,
                    dc_id=dc_id,
                    test_mode=await client.storage.test_mode(),
                ).create()
                if dc_id != await client.storage.dc_id()
                else await client.storage.auth_key(),
                test_mode=await client.storage.test_mode(),
                is_media=True,
            )
    
            try:
                await session.start()
    
                if dc_id != await client.storage.dc_id():
                    exported_auth = await client.invoke(
                        query=functions.auth.ExportAuthorization(dc_id=dc_id),
                    )
    
                    await session.invoke(
                        query=functions.auth.ImportAuthorization(
                            id=exported_auth.id,
                            bytes=exported_auth.bytes,
                        ),
                    )
    
                result = await session.invoke(
                    query=functions.stats.GetBroadcastStats(channel=input_channel),
                )
            finally:
                await session.stop()
    
            return result
    Ответ написан
    Комментировать
  • Чем вызвана ошибка при получении данных из БД SQLite?

    @Emir2010
    Скорее всего проблема связана с тем, что длина отправляемого вами сообщения превышает допустимое значение (если не ошибаюсь, оно составляет 4096 символов).
    Ответ написан
    Комментировать