Skip to content

Commit 7c1e200

Browse files
committed
pyrofork: Refactor Giveaway
Signed-off-by: wulan17 <wulan17@nusantararom.org>
1 parent bce191c commit 7c1e200

File tree

2 files changed

+4
-22
lines changed

2 files changed

+4
-22
lines changed

pyrogram/types/messages_and_media/giveaway.py

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ def __init__(
7373
stars: int = None,
7474
additional_price: str = None,
7575
allowed_countries: List[str] = None,
76-
private_channel_ids: List[int] = None,
7776
is_winners_hidden: bool = None
7877
):
7978
super().__init__(client)
@@ -86,28 +85,12 @@ def __init__(
8685
self.new_subscribers = new_subscribers
8786
self.additional_price = additional_price
8887
self.allowed_countries = allowed_countries
89-
self.private_channel_ids = private_channel_ids
9088
self.is_winners_hidden = is_winners_hidden
9189

9290
@staticmethod
93-
async def _parse(client, message: "raw.types.Message") -> "Giveaway":
91+
async def _parse(client, message: "raw.types.Message", chats: dict) -> "Giveaway":
9492
giveaway: "raw.types.MessageMediaGiveaway" = message.media
95-
chats = []
96-
private_ids = []
97-
for raw_chat_id in giveaway.channels:
98-
chat_id = utils.get_channel_id(raw_chat_id)
99-
try:
100-
chat = await client.invoke(
101-
raw.functions.channels.GetChannels(
102-
id=[await client.resolve_peer(chat_id)]
103-
)
104-
)
105-
except FloodWait as e:
106-
await asyncio.sleep(e.value)
107-
except Exception:
108-
private_ids.append(chat_id)
109-
else:
110-
chats.append(types.Chat._parse_chat(client, chat.chats[0]))
93+
chats = types.List(types.Chat._parse_channel_chat(client, chats.get(i)) for i in giveaway.channels)
11194

11295
return Giveaway(
11396
chats=chats,
@@ -117,8 +100,7 @@ async def _parse(client, message: "raw.types.Message") -> "Giveaway":
117100
expire_date=utils.timestamp_to_datetime(giveaway.until_date),
118101
new_subscribers=giveaway.only_new_subscribers,
119102
additional_price=giveaway.prize_description,
120-
allowed_countries=giveaway.countries_iso2 if len(giveaway.countries_iso2) > 0 else None,
121-
private_channel_ids=private_ids if len(private_ids) > 0 else None,
103+
allowed_countries=giveaway.countries_iso2 if len(giveaway.countries_iso2) > 0 else None
122104
is_winners_hidden=not giveaway.winners_are_visible,
123105
client=client
124106
)

pyrogram/types/messages_and_media/message.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,7 @@ async def _parse(
10451045
game = types.Game._parse(client, media)
10461046
media_type = enums.MessageMediaType.GAME
10471047
elif isinstance(media, raw.types.MessageMediaGiveaway):
1048-
giveaway = await types.Giveaway._parse(client, message)
1048+
giveaway = await types.Giveaway._parse(client, message, chats)
10491049
media_type = enums.MessageMediaType.GIVEAWAY
10501050
elif isinstance(media, raw.types.MessageMediaGiveawayResults):
10511051
giveaway_result = await types.GiveawayResult._parse(client, message.media)

0 commit comments

Comments
 (0)