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
self.id = int(channel["id"])
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"]]
def is_format(self):
@@ -47,22 +47,24 @@ class ChannelLogs:
else: # first load
last_message_id = None
done = 0
while done >= CHUNK_SIZE or last_message_id is None:
done = 0
async for message in channel.history(
limit=CHUNK_SIZE,
before=FakeMessage(last_message_id)
if last_message_id is not None
else None,
oldest_first=False,
):
done += 1
last_message_id = message.id
m = MessageLog(message)
await m.load(message)
self.messages += [m]
yield len(self.messages), False
self.last_message_id = channel.last_message_id
sanity_check = len(await channel.history(limit=1).flatten())
if sanity_check == 1:
while done >= CHUNK_SIZE or last_message_id is None:
done = 0
async for message in channel.history(
limit=CHUNK_SIZE,
before=FakeMessage(last_message_id)
if last_message_id is not None
else None,
oldest_first=False,
):
done += 1
last_message_id = message.id
m = MessageLog(message)
await m.load(message)
self.messages += [m]
yield len(self.messages), False
self.last_message_id = channel.last_message_id
except discord.errors.HTTPException:
return # When an exception occurs (like Forbidden)
yield len(self.messages), True