This commit is contained in:
Fomys 2019-03-02 14:46:48 +01:00
parent 785a2aae77
commit ea6e11745c

View File

@ -1,11 +1,7 @@
# dummy module # dummy module
import asyncio
import fractale.source.main
import random
import discord import discord
import os
from PIL import Image
from concurrent.futures import ThreadPoolExecutor
class MainClass(): class MainClass():
def __init__(self, client, modules, owners, prefix): def __init__(self, client, modules, owners, prefix):
self.client = client self.client = client
@ -20,14 +16,32 @@ class MainClass():
self.interactive = True self.interactive = True
self.color = 0x78ffc3 self.color = 0x78ffc3
self.fractals = { self.fractals = {
"von_koch_curve_flake":{"Type":"Figures", "Max":((5000,5000), 5000, 10), "Min":((0,0),0,1), "Default":"(2500 2500) 2000 5 #ffffff 1", "Indication":"(départ) (arrivée) longueur iterations color bg stroke", "ParseData":"pfixi"}, "von_koch_curve_flake": {"Type": "Figures", "Max": ((5000, 5000), 5000, 10), "Min": ((0, 0), 0, 1),
"von_koch_curve":{"Type":"Figures", "Max":((5000,5000),(5000,5000),10), "Min":((0,0),(0,0),1), "Default":"(0 2500) (5000 2500) 5 #ffffff 1", "Indication":"(départ) (arrivée) iterations color bg stroke", "ParseData":"ppixi"}, "Default": "(2500 2500) 2000 5 #ffffff 1",
"blanc_manger":{"Type":"Figures", "Max":((5000,5000),(5000,5000),10), "Min":((0,0),(0,0),1), "Default":"(1000 1000) (4000 4000) 7 #ffffff 1", "Indication":"(départ) (arrivée) iterations color bg stroke", "ParseData":"ppixi"}, "Indication": "(départ) (arrivée) longueur iterations color bg stroke",
"dragon":{"Type":"Lsystem", "Max":((5000,5000), 2500,19), "Min":((0,0),1,1), "Default":"(2500 2500)", "Indication":"(origine) longueur iterations color bg stroke", "ParseData":"pfixi"}, "ParseData": "pfixi"},
"sierpinski_triangle":{"Type":"Lsystem", "Max":((5000,5000),2500,11), "Min":((0,0),0,1), "Default":"(0 0)", "Indication":"(origine) longueur iterations color bg stroke", "ParseData":"pfixi"}, "von_koch_curve": {"Type": "Figures", "Max": ((5000, 5000), (5000, 5000), 10), "Min": ((0, 0), (0, 0), 1),
"fractal_plant":{"Type":"Lsystem", "Max":((5000,5000),2500,8), "Min":((0,0),0,1), "Default":"(0 2500)", "Indication":"(origine) longueur iterations color bg stroke", "ParseData":"pfixi"}, "Default": "(0 2500) (5000 2500) 5 #ffffff 1",
"koch_curve_right_angle":{"Type":"Lsystem", "Max":((5000,5000),2500,9), "Min":((0,0),0,1), "Default":"(0 5000)", "Indication":"(origine) longueur iterations color bg stroke", "ParseData":"pfixi"}, "Indication": "(départ) (arrivée) iterations color bg stroke", "ParseData": "ppixi"},
"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"} "blanc_manger": {"Type": "Figures", "Max": ((5000, 5000), (5000, 5000), 10), "Min": ((0, 0), (0, 0), 1),
"Default": "(1000 1000) (4000 4000) 7 #ffffff 1",
"Indication": "(départ) (arrivée) iterations color bg stroke", "ParseData": "ppixi"},
"dragon": {"Type": "Lsystem", "Max": ((5000, 5000), 2500, 19), "Min": ((0, 0), 1, 1),
"Default": "(2500 2500)", "Indication": "(origine) longueur iterations color bg stroke",
"ParseData": "pfixi"},
"sierpinski_triangle": {"Type": "Lsystem", "Max": ((5000, 5000), 2500, 11), "Min": ((0, 0), 0, 1),
"Default": "(0 0)", "Indication": "(origine) longueur iterations color bg stroke",
"ParseData": "pfixi"},
"fractal_plant": {"Type": "Lsystem", "Max": ((5000, 5000), 2500, 8), "Min": ((0, 0), 0, 1),
"Default": "(0 2500)", "Indication": "(origine) longueur iterations color bg stroke",
"ParseData": "pfixi"},
"koch_curve_right_angle": {"Type": "Lsystem", "Max": ((5000, 5000), 2500, 9), "Min": ((0, 0), 0, 1),
"Default": "(0 5000)",
"Indication": "(origine) longueur iterations color bg stroke",
"ParseData": "pfixi"},
"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 = """\ self.help = """\
</prefix>fractale info <fractale> </prefix>fractale info <fractale>
@ -61,12 +75,15 @@ Attention, les coordonnées des points doivent être entre parentheses et son co
Les arguments valent par défaut : Les arguments valent par défaut :
`{defaut}`""".format(nom=args[2]) `{defaut}`""".format(nom=args[2])
await message.channel.send(embed=discord.Embed(title="[%s] - Infos : *%s*"%(self.name,args[2]), description="")) await message.channel.send(
embed=discord.Embed(title="[%s] - Infos : *%s*" % (self.name, args[2]), description=""))
else: else:
await self.modules['help'][1].send_help(message.channel, self) await self.modules['help'][1].send_help(message.channel, self)
# parsed_data=self.parse(message.content[len("%sfractale "%self.prefix):]))) # parsed_data=self.parse(message.content[len("%sfractale "%self.prefix):])))
async def send_fractal(self, message, command): async def send_fractal(self, message, command):
return # TODO Coder la fonction return # TODO Coder la fonction
def parse(self, inp): def parse(self, inp):
retDic = {"Success": False, "Message": "", "Result": ()} retDic = {"Success": False, "Message": "", "Result": ()}
# Parsing the fractal name and storing the corresponding dic into a variable # Parsing the fractal name and storing the corresponding dic into a variable
@ -84,12 +101,14 @@ Les arguments valent par défaut :
elif char == ')': elif char == ')':
parentheses_count -= 1 parentheses_count -= 1
if not (-1 < parentheses_count < 2): if not (-1 < parentheses_count < 2):
retDic.update({"Success":False, "Message":"Usage invalide de parentheses au charactère numéro %s (à partir d'après le nom de la fractale)."%i}) retDic.update({"Success": False,
"Message": "Usage invalide de parentheses au charactère numéro %s (à partir d'après le nom de la fractale)." % i})
return (retDic) return (retDic)
# Here, we have a coherent parentheses usage # Here, we have a coherent parentheses usage
if ',' in arg: if ',' in arg:
retDic.update({"Success":False, "Message":"Les virgules n'ont pas leur place dans les paramètres de génération. Il ne doit y avoir que des espaces uniques."}) retDic.update({"Success": False,
"Message": "Les virgules n'ont pas leur place dans les paramètres de génération. Il ne doit y avoir que des espaces uniques."})
return (retDic) return (retDic)
# parsing the fractal # parsing the fractal
@ -103,12 +122,14 @@ Les arguments valent par défaut :
int(args[i]) int(args[i])
int(args[i + 1]) int(args[i + 1])
except: except:
retDic.update({"Success":False, "Message":"Les valeurs ne sont pas du bon type. (nombre entiers attendus pour les coordonnées d'un point)"}) retDic.update({"Success": False,
"Message": "Les valeurs ne sont pas du bon type. (nombre entiers attendus pour les coordonnées d'un point)"})
return (retDic) return (retDic)
parsed_args.append((int(args[i]), int(args[i + 1]))) parsed_args.append((int(args[i]), int(args[i + 1])))
i += 2 i += 2
else: else:
parsed_args.append(self.parse(inp.split(' ')[0]+' '+fractal['Default'])['Result'][len(parsed_args)]) parsed_args.append(
self.parse(inp.split(' ')[0] + ' ' + fractal['Default'])['Result'][len(parsed_args)])
i += 1 i += 1
elif parse == 'f': elif parse == 'f':
@ -116,12 +137,14 @@ Les arguments valent par défaut :
try: try:
float(args[i]) float(args[i])
except: except:
retDic.update({"Success":False, "Message":"Les valeurs ne sont pas du bon type. (Nombre à virgule flottante attendu (mettre un point pour la virgule))"}) retDic.update({"Success": False,
"Message": "Les valeurs ne sont pas du bon type. (Nombre à virgule flottante attendu (mettre un point pour la virgule))"})
return (retDic) return (retDic)
parsed_args.append(float(args[i])) parsed_args.append(float(args[i]))
i += 1 i += 1
else: else:
parsed_args.append(self.parse(inp.split(' ')[0]+' '+fractal['Default'])['Result'][len(parsed_args)]) parsed_args.append(
self.parse(inp.split(' ')[0] + ' ' + fractal['Default'])['Result'][len(parsed_args)])
i += 1 i += 1
elif parse == 'i': elif parse == 'i':
@ -131,12 +154,14 @@ Les arguments valent par défaut :
except: except:
print(args[i]) print(args[i])
print(i) print(i)
retDic.update({"Success":False, "Message":"Les valeurs ne sont pas du bon type. (Nombre entier attendu)"}) retDic.update({"Success": False,
"Message": "Les valeurs ne sont pas du bon type. (Nombre entier attendu)"})
return (retDic) return (retDic)
parsed_args.append(int(args[i])) parsed_args.append(int(args[i]))
i += 1 i += 1
else: else:
parsed_args.append(self.parse(inp.split(' ')[0]+' '+fractal['Default'])['Result'][len(parsed_args)]) parsed_args.append(
self.parse(inp.split(' ')[0] + ' ' + fractal['Default'])['Result'][len(parsed_args)])
i += 1 i += 1
elif parse == 'x': elif parse == 'x':
@ -147,12 +172,14 @@ Les arguments valent par défaut :
else: else:
raise raise
except: except:
retDic.update({"Success":False, "Message":"Les valeurs ne sont pas du bon type. (Valeur hexadécimale attendue)"}) retDic.update({"Success": False,
"Message": "Les valeurs ne sont pas du bon type. (Valeur hexadécimale attendue)"})
return (retDic) return (retDic)
parsed_args.append(int(args[i].replace('#', '0x'), 16)) parsed_args.append(int(args[i].replace('#', '0x'), 16))
i += 1 i += 1
else: else:
parsed_args.append(self.parse(inp.split(' ')[0]+' '+fractal['Default'])['Result'][len(parsed_args)]) parsed_args.append(
self.parse(inp.split(' ')[0] + ' ' + fractal['Default'])['Result'][len(parsed_args)])
i += 1 i += 1
retDic.update({"Success": True, "Result": parsed_args}) retDic.update({"Success": True, "Result": parsed_args})
return (retDic) return (retDic)