mirror of
https://github.com/Mayuri-Chan/pyrofork.git
synced 2025-12-29 12:04:51 +00:00
pyrofork: Refactor GiveawayResult
Signed-off-by: wulan17 <wulan17@nusantararom.org>
This commit is contained in:
parent
776ee3afb3
commit
e5b01eb04b
3 changed files with 9 additions and 12 deletions
|
|
@ -221,7 +221,7 @@ class ExternalReplyInfo(Object):
|
|||
giveaway = types.Giveaway._parse(client, reply, chats)
|
||||
media_type = enums.MessageMediaType.GIVEAWAY
|
||||
elif isinstance(media, raw.types.MessageMediaGiveawayResults):
|
||||
giveaway_result = await types.GiveawayResult._parse(client, media)
|
||||
giveaway_result = await types.GiveawayResult._parse(client, media, users, chats)
|
||||
media_type = enums.MessageMediaType.GIVEAWAY_RESULT
|
||||
elif isinstance(media, raw.types.MessageMediaInvoice):
|
||||
invoice = types.Invoice._parse(media)
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import pyrogram
|
|||
from datetime import datetime
|
||||
from pyrogram import raw, types, utils
|
||||
from ..object import Object
|
||||
from typing import List, Union
|
||||
from typing import List, Union, Dict
|
||||
|
||||
|
||||
class GiveawayResult(Object):
|
||||
|
|
@ -104,7 +104,9 @@ class GiveawayResult(Object):
|
|||
"raw.types.MessageActionGiveawayResults",
|
||||
"raw.types.MessageMediaGiveawayResults"
|
||||
],
|
||||
hide_winners: bool = False
|
||||
hide_winners: bool = False,
|
||||
users: Dict[int, "raw.types.User"] = None,
|
||||
chats: Dict[int, "raw.types.Chat"] = None
|
||||
) -> "GiveawayResult":
|
||||
chat = None
|
||||
giveaway_message = None
|
||||
|
|
@ -112,17 +114,12 @@ class GiveawayResult(Object):
|
|||
winners = None
|
||||
if not hide_winners:
|
||||
chat_id = utils.get_channel_id(giveaway_result.channel_id)
|
||||
chat = await client.invoke(
|
||||
raw.functions.channels.GetChannels(
|
||||
id=[await client.resolve_peer(chat_id)]
|
||||
)
|
||||
)
|
||||
chat = types.Chat._parse_chat(client, chat.chats[0])
|
||||
chat = types.Chat._parse_channel_chat(client, chats.get(giveaway_result.channel_id))
|
||||
giveaway_message = await client.get_messages(chat_id, giveaway_result.launch_msg_id)
|
||||
expired_date = utils.timestamp_to_datetime(giveaway_result.until_date)
|
||||
winners = []
|
||||
for winner in giveaway_result.winners:
|
||||
winners.append(await client.get_users(winner))
|
||||
winners.append(types.User._parse(client, users.get(winner, None)))
|
||||
|
||||
stars = getattr(giveaway_result, "stars", None)
|
||||
|
||||
|
|
|
|||
|
|
@ -852,7 +852,7 @@ class Message(Object, Update):
|
|||
giveaway_launched = types.GiveawayLaunched._parse(client, action)
|
||||
service_type = enums.MessageServiceType.GIVEAWAY_LAUNCHED
|
||||
elif isinstance(action, raw.types.MessageActionGiveawayResults):
|
||||
giveaway_result = await types.GiveawayResult._parse(client, action, True)
|
||||
giveaway_result = await types.GiveawayResult._parse(client, action, True, users, chats)
|
||||
service_type = enums.MessageServiceType.GIVEAWAY_RESULT
|
||||
elif isinstance(action, raw.types.MessageActionBoostApply):
|
||||
boosts_applied = action.boosts
|
||||
|
|
@ -1042,7 +1042,7 @@ class Message(Object, Update):
|
|||
giveaway = await types.Giveaway._parse(client, message, chats)
|
||||
media_type = enums.MessageMediaType.GIVEAWAY
|
||||
elif isinstance(media, raw.types.MessageMediaGiveawayResults):
|
||||
giveaway_result = await types.GiveawayResult._parse(client, message.media)
|
||||
giveaway_result = await types.GiveawayResult._parse(client, message.media, users=users, chats=chats)
|
||||
media_type = enums.MessageMediaType.GIVEAWAY_RESULT
|
||||
elif isinstance(media, raw.types.MessageMediaStory):
|
||||
story = await types.MessageStory._parse(client, media)
|
||||
|
|
|
|||
Loading…
Reference in a new issue