Skip to content

Commit 30ad6e3

Browse files
committed
DB Update for FEH Collab, added message limit
1 parent 0edcb96 commit 30ad6e3

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

config_example.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ StreamURL =
66
CurrentEvent = High Mercury
77
CommandStart = ^
88
AuthorizedIds =
9+
MessageLimit = 1
910

1011
# Emojis for the various parts of the program
1112
# These don't need modifications unless you wish to replace them with your own emojis

master.db

0 Bytes
Binary file not shown.

utils/config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ def update(self):
4949
self.dragon_reactions = ["\U0001F5BC", "\U0001F508", "\U0001F509"]
5050
self.authorized_ids = config["Discord"]["AuthorizedIds"].split(',')
5151
self.streaming = config.getboolean("Discord", "Streaming")
52+
if config.has_option("Discord", "MessageLimit"):
53+
self.message_limit = config.getint("Discord", "MessageLimit")
54+
else:
55+
self.message_limit = 1
5256

5357
def set_config_file(self, config_file):
5458
project_root = dirname(dirname(__file__))

view.py

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
active_adventurer_messages = {}
3535
active_wyrmprint_messages = {}
3636
active_dragon_messages = {}
37+
all_active_messages = []
3738
config = Config("config.ini")
3839
client = Bot(command_prefix=config.command_start)
3940

@@ -345,10 +346,11 @@ async def show_dragon_full(dragon, message=None):
345346
@client.event
346347
async def show_or_edit_adventurer(e, adventurer, message=None):
347348
if message is None:
348-
global active_adventurer_messages
349-
active_adventurer_messages = {}
349+
global active_adventurer_messages, all_active_messages
350+
await clear_active_messages()
350351
msg = await client.send_message(channel, embed=e)
351352
active_adventurer_messages[msg.id] = adventurer
353+
all_active_messages.append(msg)
352354
for emoji in config.adventurer_reactions:
353355
await client.add_reaction(msg, emoji)
354356
else:
@@ -358,10 +360,11 @@ async def show_or_edit_adventurer(e, adventurer, message=None):
358360
@client.event
359361
async def show_or_edit_wyrmprint(e, wyrmprint, message=None):
360362
if message is None:
361-
global active_wyrmprint_messages
362-
active_wyrmprint_messages = {}
363+
global active_wyrmprint_messages, all_active_messages
364+
await clear_active_messages()
363365
msg = await client.send_message(channel, embed=e)
364366
active_wyrmprint_messages[msg.id] = wyrmprint
367+
all_active_messages.append(msg)
365368
for emoji in config.wyrmprint_reactions:
366369
await client.add_reaction(msg, emoji)
367370
else:
@@ -372,9 +375,10 @@ async def show_or_edit_wyrmprint(e, wyrmprint, message=None):
372375
async def show_or_edit_dragon(e, dragon, message=None):
373376
if message is None:
374377
global active_dragon_messages
375-
active_dragon_messages = {}
378+
await clear_active_messages()
376379
msg = await client.send_message(channel, embed=e)
377380
active_dragon_messages[msg.id] = dragon
381+
all_active_messages.append(msg)
378382
for emoji in config.dragon_reactions:
379383
await client.add_reaction(msg, emoji)
380384
else:
@@ -384,3 +388,20 @@ async def show_or_edit_dragon(e, dragon, message=None):
384388
@client.event
385389
async def show_completed_update():
386390
await client.send_message(channel, "Update complete")
391+
392+
393+
@client.event
394+
async def clear_active_messages():
395+
global all_active_messages, active_adventurer_messages, \
396+
active_dragon_messages, active_wyrmprint_messages
397+
398+
while len(all_active_messages) > max(0, config.message_limit - 1):
399+
message = all_active_messages.pop(0)
400+
await client.clear_reactions(message)
401+
402+
if message.id in active_adventurer_messages:
403+
active_adventurer_messages.pop(message.id)
404+
elif message.id in active_dragon_messages:
405+
active_dragon_messages.pop(message.id)
406+
elif message.id in active_wyrmprint_messages:
407+
active_wyrmprint_messages.pop(message.id)

0 commit comments

Comments
 (0)