fixed empty channel bug

This commit is contained in:
Klemek
2021-03-13 15:47:50 +01:00
parent 4f71feb6d7
commit 22af84d826
+19 -17
View File
@@ -22,7 +22,7 @@ class ChannelLogs:
return return
self.id = int(channel["id"]) self.id = int(channel["id"])
self.name = channel["name"] self.name = channel["name"]
self.last_message_id = int(channel["last_message_id"]) self.last_message_id = int(channel["last_message_id"]) if channel["last_message_id"] is not None else None
self.messages = [MessageLog(message) for message in channel["messages"]] self.messages = [MessageLog(message) for message in channel["messages"]]
def is_format(self): def is_format(self):
@@ -47,22 +47,24 @@ class ChannelLogs:
else: # first load else: # first load
last_message_id = None last_message_id = None
done = 0 done = 0
while done >= CHUNK_SIZE or last_message_id is None: sanity_check = len(await channel.history(limit=1).flatten())
done = 0 if sanity_check == 1:
async for message in channel.history( while done >= CHUNK_SIZE or last_message_id is None:
limit=CHUNK_SIZE, done = 0
before=FakeMessage(last_message_id) async for message in channel.history(
if last_message_id is not None limit=CHUNK_SIZE,
else None, before=FakeMessage(last_message_id)
oldest_first=False, if last_message_id is not None
): else None,
done += 1 oldest_first=False,
last_message_id = message.id ):
m = MessageLog(message) done += 1
await m.load(message) last_message_id = message.id
self.messages += [m] m = MessageLog(message)
yield len(self.messages), False await m.load(message)
self.last_message_id = channel.last_message_id self.messages += [m]
yield len(self.messages), False
self.last_message_id = channel.last_message_id
except discord.errors.HTTPException: except discord.errors.HTTPException:
return # When an exception occurs (like Forbidden) return # When an exception occurs (like Forbidden)
yield len(self.messages), True yield len(self.messages), True