fix: dc error

This commit is contained in:
xtaodada 2023-09-14 21:43:30 +08:00
parent cfc67e5ae8
commit a15b6a1675
Signed by: xtaodada
GPG Key ID: 4CBB3F4FA8C85659

View File

@ -2,6 +2,7 @@ from typing import List, Dict
from cashews import cache from cashews import cache
from telethon import TelegramClient from telethon import TelegramClient
from telethon.errors import StatsMigrateError
from telethon.tl.functions.stats import GetMegagroupStatsRequest from telethon.tl.functions.stats import GetMegagroupStatsRequest
from telethon.utils import get_input_channel from telethon.utils import get_input_channel
from telethon.tl.types.stats import MegagroupStats from telethon.tl.types.stats import MegagroupStats
@ -12,8 +13,15 @@ cache.setup("mem://")
@cache(ttl="1h", key="{cid}") @cache(ttl="1h", key="{cid}")
async def get_group_data(cid: int, client: TelegramClient) -> List[Dict]: async def get_group_data(cid: int, client: TelegramClient) -> List[Dict]:
group = get_input_channel(await client.get_input_entity(cid)) group = get_input_channel(await client.get_input_entity(cid))
result: MegagroupStats = await client(GetMegagroupStatsRequest( try:
channel=group, result: MegagroupStats = await client(GetMegagroupStatsRequest(
dark=True channel=group,
)) dark=True
))
except StatsMigrateError as e:
sender = await client._borrow_exported_sender(e.dc)
result: MegagroupStats = await client._call(sender, GetMegagroupStatsRequest(
channel=group,
dark=True
))
return [i.to_dict() for i in result.top_posters] return [i.to_dict() for i in result.top_posters]