This commit is contained in:
Fierelier 2021-05-17 06:55:35 +02:00
parent bdc8e5f36a
commit eb38836c61
4 changed files with 34 additions and 33 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
__pycache__/
userdata/
token.txt

View File

@ -2,7 +2,10 @@ import queue
import importlib import importlib
import asyncio import asyncio
discordThread = importlib.import_module("discord-thread") discordThread = importlib.import_module("discord-thread")
discordThread.run("no") token = ""
with open("token.txt") as f:
token = f.read()
discordThread.run(token)
def main(): def main():
try: try:

View File

@ -5,7 +5,4 @@ observeDirectMessageChannels = true
[lostMessageTracker] [lostMessageTracker]
trackMessages = true trackMessages = true
acquireAllOnReconnect = true acquireAllOnReconnect = true
[performance]
loopTime = 0.1

View File

@ -75,9 +75,6 @@ def readConfig():
global cObserveDirectMessageChannels global cObserveDirectMessageChannels
cObserveDirectMessageChannels = stringToBool(config["default"]["observeDirectMessageChannels"]) cObserveDirectMessageChannels = stringToBool(config["default"]["observeDirectMessageChannels"])
global cLoopTime
cLoopTime = float(config["performance"]["loopTime"])
readConfig() readConfig()
def shouldIgnoreChannel(channel): def shouldIgnoreChannel(channel):
@ -160,31 +157,32 @@ class discordClient(threading.Thread):
async def acquireAllLostMessages(self): async def acquireAllLostMessages(self):
eprint("Acquiring lost messages...") eprint("Acquiring lost messages...")
for channel in self.getTrackedChannels(): with fetchMessageLock:
messageIDs = False for channel in self.getTrackedChannels():
with fileLock: messageIDs = False
messageIDs = self.readChannelMessageIdFile(channel) with fileLock:
messageIDs = self.readChannelMessageIdFile(channel)
messages = []
lim = 999999 messages = []
if messageIDs == []: lim = 100 lim = 999999
async for message in channel.history(limit=lim): if messageIDs == []: lim = 100
if str(message.id) in messageIDs: break async for message in channel.history(limit=lim):
messages.append(message) if str(message.id) in messageIDs: break
messages.append(message)
messages.reverse()
messages.reverse()
messagesFiltered = []
for message in messages: messagesFiltered = []
if not str(message.id) in messageIDs: for message in messages:
messagesFiltered.append(message)
with fileLock:
messageIDs = self.readChannelMessageIdFile(channel)
for message in messagesFiltered:
if not str(message.id) in messageIDs: if not str(message.id) in messageIDs:
self.addToChannelMessageIdFile(message) messagesFiltered.append(message)
await self.on_message(message, tracked = True)
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.") eprint("Done acquiring lost messages.")
def run(self): def run(self):
@ -205,7 +203,7 @@ class discordClient(threading.Thread):
async def on_message(self,message,tracked = False): async def on_message(self,message,tracked = False):
if shouldIgnoreChannel(message.channel): return if shouldIgnoreChannel(message.channel): return
if tracked == False: if tracked == False:
with fileLock: with fetchMessageLock, fileLock:
messageIDs = self.readChannelMessageIdFile(message.channel) messageIDs = self.readChannelMessageIdFile(message.channel)
if not str(message.id) in messageIDs: if not str(message.id) in messageIDs:
self.addToChannelMessageIdFile(message) self.addToChannelMessageIdFile(message)