parent
aac947eb6f
commit
d5357885ff
|
@ -546,47 +546,56 @@ def discordClient(token):
|
|||
|
||||
@tasks.loop(seconds=0.033)
|
||||
async def guiLoop():
|
||||
channels = {}
|
||||
guis = []
|
||||
guiLock.acquire()
|
||||
length = len(openGuis)
|
||||
index = 0
|
||||
while index < length:
|
||||
gui = openGuis[index]
|
||||
if gui.type == "conversation" and gui.readied == False:
|
||||
if not gui.channel.id in channels:
|
||||
channels[gui.channel.id] = {
|
||||
"channel": gui.channel,
|
||||
"messages": []
|
||||
}
|
||||
guiObj = {"gui":gui,"type":gui.type}
|
||||
if gui.type == "conversation":
|
||||
guiObj["channel"] = gui.channel
|
||||
guiObj["readied"] = gui.readied
|
||||
guiObj["messages"] = []
|
||||
guiObj["pendingMessages"] = gui.pendingMessages.copy()
|
||||
gui.pendingMessages = []
|
||||
guis.append(guiObj)
|
||||
index += 1
|
||||
guiLock.release()
|
||||
|
||||
for channelID in channels:
|
||||
channel = channels[channelID]["channel"]
|
||||
try:
|
||||
print("a")
|
||||
messages = await channel.history(limit=int(config["performance"]["historyFetch"])).flatten()
|
||||
messages = reversed(messages)
|
||||
channels[channelID]["messages"] = messages
|
||||
except:
|
||||
pass
|
||||
|
||||
guiLock.acquire()
|
||||
length = len(openGuis)
|
||||
index = 0
|
||||
while index < length:
|
||||
gui = openGuis[index]
|
||||
if gui.type == "conversation" and gui.readied == False and gui.channel.id in channels:
|
||||
messages = channels[gui.channel.id]["messages"]
|
||||
if messages == []:
|
||||
addGuiTask(gui,gui.addMessage,(["","Fetching messages failed."],))
|
||||
else:
|
||||
for message in messages:
|
||||
addGuiTask(gui,gui.addMessage,(message,))
|
||||
gui.readied = True
|
||||
addGuiTask(gui,gui.fillMessageLog,())
|
||||
index += 1
|
||||
guiLock.release()
|
||||
for guiData in guis:
|
||||
gui = guiData["gui"]
|
||||
guiType = guiData["type"]
|
||||
|
||||
if guiType == "conversation":
|
||||
channel = guiData["channel"]
|
||||
readied = guiData["readied"]
|
||||
messages = guiData["messages"]
|
||||
pendingMessages = guiData["pendingMessages"]
|
||||
|
||||
for message in pendingMessages:
|
||||
try:
|
||||
await channel.send(message)
|
||||
except:
|
||||
print("failed sending message")
|
||||
|
||||
if readied == False:
|
||||
try:
|
||||
messages = await channel.history(limit=int(config["performance"]["historyFetch"])).flatten()
|
||||
messages = reversed(messages)
|
||||
except:
|
||||
print("failed retrieving messages")
|
||||
|
||||
guiLock.acquire()
|
||||
if readied == False:
|
||||
if messages == []:
|
||||
addGuiTask(gui,gui.addMessage,(["","Fetching messages failed."],))
|
||||
else:
|
||||
for message in messages:
|
||||
addGuiTask(gui,gui.addMessage,(message,))
|
||||
gui.readied = True
|
||||
addGuiTask(gui,gui.fillMessageLog,())
|
||||
guiLock.release()
|
||||
|
||||
@tasks.loop(seconds=1.0)
|
||||
async def conversationUpdate():
|
||||
|
|
Loading…
Reference in New Issue