Added save function for json dumping

This commit is contained in:
Anselme FRANÇOIS 2023-06-17 03:51:45 +02:00
parent f34e368ac3
commit 7ed1f2fcaa
2 changed files with 28 additions and 9 deletions

View File

@ -14,6 +14,14 @@ class FourasModule(BaseModule):
self._client.answers = [line.strip() for line in a_file.readlines()]
print(f"Loaded {len(self._client.riddles)} riddles")
def save(self):
dump = {}
for key, value in self._client.ongoing_riddles.items():
dump_channel = dict(value)
dump_channel["message"] = dump_channel["message"].id
dump[key.id] = dump_channel
return dump
def new_riddle(self, channel, index):
current_riddle = dict(
index=index,
@ -107,20 +115,15 @@ class FourasModule(BaseModule):
)
return
if message_content == "debug fouras":
if message_content == "debug":
dump = {}
cooldowns = {}
for key, value in self.client.cooldown.items():
channel_name = await self.get_channel_name(key)
cooldowns[channel_name] = value - time.time()
dump["poil_au_cooldown"] = cooldowns
for key, value in self._client.ongoing_riddles.items():
dump_channel = value
dump_channel = dict(value)
dump_channel.pop("message", None)
dump_channel["answer"] = "||{0}||".format(dump_channel["answer"])
dump_channel.pop("answer", None)
channel_name = await self.get_channel_name(key)
dump[channel_name] = dump_channel
await message.author.send(json.dumps(dump, ensure_ascii=False, indent=4))
await message.author.send('```json\n{0}```'.format(json.dumps(dump, ensure_ascii=False, indent=4)))
return
# if current channel has ongoing riddle

View File

@ -1,6 +1,7 @@
from .base import BaseModule
import random
import time
import json
RHYMES_FILE = "rhymes.txt"
@ -34,6 +35,12 @@ class RhymesModule(BaseModule):
self.rhyme_keys = keys
self.rhyme_strings = rhymes
def save(self):
dump = {}
for key, value in self.cooldown.items():
dump[key.id] = value - time.time()
return dump
def get_last_word(self, ch: str) -> str:
truncated = ch
while True:
@ -53,6 +60,15 @@ class RhymesModule(BaseModule):
async def handle_message(self, message):
message_content = message.content.lower()
if message_content == "debug":
dump = {}
for key, value in self.cooldown.items():
channel_name = await self.get_channel_name(key)
dump[channel_name] = value - time.time()
await message.author.send('```json\n{0}```'.format(json.dumps(dump, ensure_ascii=False, indent=4)))
return
last_word = self.get_last_word(message_content)
if message.author != self._client.user and last_word:
poil = self.poil_auquel(last_word)