🚑 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 collections import defaultdict, namedtuple
from io import StringIO from io import StringIO
from pprint import pprint from pprint import pprint
from typing import Type from typing import Type, List
import discord import discord
import yaml import yaml
@ -138,9 +138,15 @@ class Tirage(yaml.YAMLObject):
yaml.dump_all(tl, f) yaml.dump_all(tl, f)
await ctx.send( 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): def records(self, round):
"""Get the strings needed for show the tirage in a list of Records""" """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). plus de choses qu'on imagine (mais moins qu'on voudrait).
""" """
channel_id = ctx.channel.id channel_id = ctx.channel.id
if channel_id in self.tirages: if channel_id in self.tirages:
print(self.tirages, channel_id)
print(self.tirages[channel_id])
await self.tirages[channel_id].end(ctx) await self.tirages[channel_id].end(ctx)
await ctx.send("Le tirage est annulé.") 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"]) @draw_group.command(name="skip", aliases=["s"])
@commands.has_role(Role.DEV) @commands.has_role(Role.DEV)
@ -748,6 +760,15 @@ class TirageCog(Cog, name="Tirages"):
await tirage.phase.start(ctx) await tirage.phase.start(ctx)
await tirage.update_phase(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") @draw_group.command(name="show")
async def show_cmd(self, ctx: Context, tirage_id: str = "all"): 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 `!draw show 42` - Affiche le tirage n°42
""" """
if not TIRAGES_FILE.exists(): tirages = self.get_tirages()
await ctx.send("Il n'y a pas encore eu de tirages.")
return
with open(TIRAGES_FILE) as f: if not tirages:
tirages = list(yaml.load_all(f)) return await ctx.send("Il n'y a pas encore eu de tirages.")
if tirage_id.lower() == "all": if tirage_id.lower() == "all":
await ctx.send( await ctx.send(
@ -793,6 +812,28 @@ class TirageCog(Cog, name="Tirages"):
else: else:
await tirage.show(ctx) 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): def setup(bot):
bot.add_cog(TirageCog(bot)) bot.add_cog(TirageCog(bot))