diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2602848 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +__pycache__/ +userdata/ +token.txt \ No newline at end of file diff --git a/client.py b/client.py index 99b72a2..c716d90 100644 --- a/client.py +++ b/client.py @@ -2,7 +2,10 @@ import queue import importlib import asyncio discordThread = importlib.import_module("discord-thread") -discordThread.run("no") +token = "" +with open("token.txt") as f: + token = f.read() +discordThread.run(token) def main(): try: diff --git a/discord-thread.ini b/discord-thread.ini index 0162d34..5a63c36 100644 --- a/discord-thread.ini +++ b/discord-thread.ini @@ -5,7 +5,4 @@ observeDirectMessageChannels = true [lostMessageTracker] trackMessages = true -acquireAllOnReconnect = true - -[performance] -loopTime = 0.1 \ No newline at end of file +acquireAllOnReconnect = true \ No newline at end of file diff --git a/discord-thread.py b/discord-thread.py index 301706e..520c7a5 100644 --- a/discord-thread.py +++ b/discord-thread.py @@ -75,9 +75,6 @@ def readConfig(): global cObserveDirectMessageChannels cObserveDirectMessageChannels = stringToBool(config["default"]["observeDirectMessageChannels"]) - - global cLoopTime - cLoopTime = float(config["performance"]["loopTime"]) readConfig() def shouldIgnoreChannel(channel): @@ -160,31 +157,32 @@ class discordClient(threading.Thread): async def acquireAllLostMessages(self): eprint("Acquiring lost messages...") - for channel in self.getTrackedChannels(): - messageIDs = False - with fileLock: - messageIDs = self.readChannelMessageIdFile(channel) - - messages = [] - lim = 999999 - if messageIDs == []: lim = 100 - async for message in channel.history(limit=lim): - if str(message.id) in messageIDs: break - messages.append(message) - - messages.reverse() - - messagesFiltered = [] - for message in messages: - if not str(message.id) in messageIDs: - messagesFiltered.append(message) - - with fileLock: - messageIDs = self.readChannelMessageIdFile(channel) - for message in messagesFiltered: + with fetchMessageLock: + for channel in self.getTrackedChannels(): + messageIDs = False + with fileLock: + messageIDs = self.readChannelMessageIdFile(channel) + + messages = [] + lim = 999999 + if messageIDs == []: lim = 100 + async for message in channel.history(limit=lim): + if str(message.id) in messageIDs: break + messages.append(message) + + messages.reverse() + + messagesFiltered = [] + for message in messages: if not str(message.id) in messageIDs: - self.addToChannelMessageIdFile(message) - await self.on_message(message, tracked = True) + messagesFiltered.append(message) + + with fileLock: + messageIDs = self.readChannelMessageIdFile(channel) + for message in messagesFiltered: + if not str(message.id) in messageIDs: + self.addToChannelMessageIdFile(message) + await self.on_message(message, tracked = True) eprint("Done acquiring lost messages.") def run(self): @@ -205,7 +203,7 @@ class discordClient(threading.Thread): async def on_message(self,message,tracked = False): if shouldIgnoreChannel(message.channel): return if tracked == False: - with fileLock: + with fetchMessageLock, fileLock: messageIDs = self.readChannelMessageIdFile(message.channel) if not str(message.id) in messageIDs: self.addToChannelMessageIdFile(message)