🚑 hto fixes

This commit is contained in:
ddorn 2020-04-29 20:45:20 +02:00
parent 0ab729afb3
commit cdce856bbe
1 changed files with 48 additions and 7 deletions

View File

@ -5,7 +5,7 @@ import random
from collections import defaultdict, namedtuple
from io import StringIO
from pprint import pprint
from typing import Type
from typing import Type, List
import discord
import yaml
@ -138,9 +138,15 @@ class Tirage(yaml.YAMLObject):
yaml.dump_all(tl, f)
await ctx.send(
f"A tout moment, ce rapport peut être envoyé avec `!draw show {len(tl) - 1}`"
f"A tout moment, ce rapport peut "
f"être envoyé avec `!draw show {len(tl) - 1}`"
)
from src.tfjm_discord_bot import tirages
if self.channel in tirages:
del tirages[self.channel]
def records(self, round):
"""Get the strings needed for show the tirage in a list of Records"""
@ -725,9 +731,15 @@ class TirageCog(Cog, name="Tirages"):
plus de choses qu'on imagine (mais moins qu'on voudrait).
"""
channel_id = ctx.channel.id
if channel_id in self.tirages:
print(self.tirages, channel_id)
print(self.tirages[channel_id])
await self.tirages[channel_id].end(ctx)
await ctx.send("Le tirage est annulé.")
else:
await ctx.send("Il n'y a pas de tirage en cours.")
@draw_group.command(name="skip", aliases=["s"])
@commands.has_role(Role.DEV)
@ -748,6 +760,15 @@ class TirageCog(Cog, name="Tirages"):
await tirage.phase.start(ctx)
await tirage.update_phase(ctx)
def get_tirages(self) -> List[Tirage]:
if not TIRAGES_FILE.exists():
return []
with open(TIRAGES_FILE) as f:
tirages = list(yaml.load_all(f))
return tirages
@draw_group.command(name="show")
async def show_cmd(self, ctx: Context, tirage_id: str = "all"):
"""
@ -758,12 +779,10 @@ class TirageCog(Cog, name="Tirages"):
`!draw show 42` - Affiche le tirage n°42
"""
if not TIRAGES_FILE.exists():
await ctx.send("Il n'y a pas encore eu de tirages.")
return
tirages = self.get_tirages()
with open(TIRAGES_FILE) as f:
tirages = list(yaml.load_all(f))
if not tirages:
return await ctx.send("Il n'y a pas encore eu de tirages.")
if tirage_id.lower() == "all":
await ctx.send(
@ -793,6 +812,28 @@ class TirageCog(Cog, name="Tirages"):
else:
await tirage.show(ctx)
@draw_group.command(name="dump")
@commands.has_role(Role.DEV)
async def dump_cmd(self, ctx, tirage_id: int, round=0):
tirages = self.get_tirages()
try:
n = int(tirage_id)
if n < 0:
raise ValueError
tirage = tirages[n]
except (ValueError, IndexError):
await ctx.send(
f"`{tirage_id}` n'est pas un identifiant valide. "
f"Les identifiants valides sont visibles avec `!draw show all`"
)
else:
msg = ";".join(
x for t in tirage.teams for x in (t.name, t.accepted_problems[round][0])
)
await ctx.send(msg)
def setup(bot):
bot.add_cog(TirageCog(bot))