[fractale module] checkpoint

This commit is contained in:
Suwako Moriya 2019-03-02 14:45:04 +01:00
parent 3ac3e394b5
commit 785a2aae77

View File

@ -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="""\
</prefix>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.)
</prefix>fractale info <fractale>
=> Affiche les informations relatives à la fractale spécifiée. (paramètres attendus, paramètres par défaut, type des arguments)
-> Valeurs possible pour [fractale]
</prefix>fractale <fractale> <arguments>
=> 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 *
</prefix>fractale <fractale>
=> Génère une image fractale avec les paramètres par défaut.
-> Valeurs possible pour <fractale>
```..: 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