From 785a2aae772917b36f97ab97b4c9456414a4b042 Mon Sep 17 00:00:00 2001 From: Suwako Moriya Date: Sat, 2 Mar 2019 14:45:04 +0100 Subject: [PATCH] [fractale module] checkpoint --- modules/fractale.py | 67 ++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/modules/fractale.py b/modules/fractale.py index 2de74e5..87bd5d9 100644 --- a/modules/fractale.py +++ b/modules/fractale.py @@ -30,14 +30,43 @@ class MainClass(): "fractal_binary_tree":{"Type":"Lsystem", "Max":((5000,5000),2500,15), "Min":((0,0),0,1), "Default":"(0 0)", "Indication":"(origine) longueur iterations color bg stroke", "ParseData":"pfixi"} } self.help="""\ - fractale [fractale] [nombre d'itérations] - => Génère une image fractale. (Si on met le nombre d'itérations, on doit mettre le nom de la fractale.) + fractale info + => Affiche les informations relatives à la fractale spécifiée. (paramètres attendus, paramètres par défaut, type des arguments) - -> Valeurs possible pour [fractale] + fractale + => Génère une image fractale à partir des arguments fournis. Pour mettre la valeur par défaut pour un des arguments, le remplacer par le caractère * + + fractale + => Génère une image fractale avec les paramètres par défaut. + + -> Valeurs possible pour ```..: Toutes les fractales: %s```"""%'\n'.join(['......: %s'%t for t in self.fractals.keys()]) + async def on_message(self, message): + args=message.content.split(" ") + if len(args)==1: + await self.modules['help'][1].send_help(message.channel, self) + elif len(args)==2: + pass + elif len(args)==3: + if args[1]=="" and args[2] in self.fractals.keys(): + description="""\ +La fractale {nom} attend les arguments suivant : +`{arguments}` +avec le type suivant: +`{type}` +Attention, les coordonnées des points doivent être entre parentheses et son considérés comme un unique argument. + +Les arguments valent par défaut : +`{defaut}`""".format(nom=args[2]) + await message.channel.send(embed=discord.Embed(title="[%s] - Infos : *%s*"%(self.name,args[2]), description="")) + else: + await self.modules['help'][1].send_help(message.channel, self) + #parsed_data=self.parse(message.content[len("%sfractale "%self.prefix):]))) + async def send_fractal(self, message, command): + return #TODO Coder la fonction def parse(self, inp): retDic={"Success":False, "Message":"", "Result":()} #Parsing the fractal name and storing the corresponding dic into a variable @@ -127,35 +156,3 @@ class MainClass(): i+=1 retDic.update({"Success":True, "Result":parsed_args}) return(retDic) - - async def on_message(self, message): - #await message.channel.send(str(self.parse(message.content[len("%sfractale "%self.prefix):]))) - #ħere - args=message.content.split(" ") - tmpstr="/tmp/%s.png"%random.randint(1,10000000) - im=Image.new('RGB', (5000, 5000), (0, 0, 0))#here - - fig = fractale.source.main.Figures(im=im)#here - if len(args)==1 : - await self.client.loop.run_in_executor(ThreadPoolExecutor(), fig.von_koch_curve_flake,*((2500, 2500), 2000, 5)) - elif args[1].lower()=="blanc_manger" : - iterations=7 - if len(args)>2 and int(args[2])<=20: - iterations=int(args[2]) - await self.client.loop.run_in_executor(ThreadPoolExecutor(), fig.blanc_manger,*((1000, 1000), (4000, 4000), iterations)) - elif args[1].lower()=="von_koch_curve_flake" : - iterations=5 - if len(args)>2 and int(args[2])<=7: - iterations=int(args[2]) - await self.client.loop.run_in_executor(ThreadPoolExecutor(), fig.von_koch_curve_flake,*((2500, 2500), 2000, iterations)) - elif args[1].lower()=="von_koch_curve" : - iterations=5 - if len(args)>2 and int(args[2])<=7: - iterations=int(args[2]) - await self.client.loop.run_in_executor(ThreadPoolExecutor(), fig.von_koch_curve,*((0, 2500), (5000,2500), iterations)) - else: - await self.modules['help'][1].send_help(message.channel, self) - return#here - im.save(tmpstr)#here - await message.channel.send(file=discord.File(tmpstr)) - os.remove(tmpstr)#here