Skip to content

Commit 897ecb2

Browse files
committed
pyrofork: Refactor Giveaway
Signed-off-by: wulan17 <wulan17@nusantararom.org>
1 parent 7909ccb commit 897ecb2

File tree

2 files changed

+3
-21
lines changed

2 files changed

+3
-21
lines changed

pyrogram/types/messages_and_media/giveaway.py

Lines changed: 2 additions & 20 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,
@@ -118,7 +101,6 @@ async def _parse(client, message: "raw.types.Message") -> "Giveaway":
118101
new_subscribers=giveaway.only_new_subscribers,
119102
additional_price=giveaway.prize_description,
120103
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,
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
@@ -1039,7 +1039,7 @@ async def _parse(
10391039
game = types.Game._parse(client, media)
10401040
media_type = enums.MessageMediaType.GAME
10411041
elif isinstance(media, raw.types.MessageMediaGiveaway):
1042-
giveaway = await types.Giveaway._parse(client, message)
1042+
giveaway = await types.Giveaway._parse(client, message, chats)
10431043
media_type = enums.MessageMediaType.GIVEAWAY
10441044
elif isinstance(media, raw.types.MessageMediaGiveawayResults):
10451045
giveaway_result = await types.GiveawayResult._parse(client, message.media)

0 commit comments

Comments
 (0)