#!/usr/bin/python # -*- coding: utf-8 -*- import sys, os, re, cgi, time #Repertoire a changer sous Unix : rep="/home/projets/treecloud/tree_10/WORK/" rep_antidico="/home/projets/treecloud/tree_10/ANTIDICOS/" #Definition des noms de fichiers en sortie: params={} param=cgi.FieldStorage() num="0" verbose=0 fichiertexte=rep+"text"+num fichierMat="" #fichierMat=" -fileCSV "+rep+"Mat"+num fichierNewick=rep+"Newick"+num+".txt" fichierDistance=rep+"dist"+num+".txt" fichierNexus=rep+"nex"+num+".txt" fichierdessin="dessin"+num+".svg" #repdessin="./" repdessin="/home/projets/treecloud/tree_10/WORK/" repdessin2="../tree_10/WORK/" fichierHtml=repdessin+"vis"+".html" fichierfreq=rep+"Frequences"+num+".txt" fichierantidico="" text="COLLER VOTRE TEXTE ICI" fichiertitre=rep+"titre" titre="Ecrivez votre titre ici" langue_page_cgi="FR" print 'Content-type: text/html' print '' print """ """ print """ """ for clef in param.keys() : params[clef]=param.getvalue(clef) if params.has_key("couleur_titre"): couleur_titre=params["couleur_titre"] else: couleur_titre="black" if params.has_key("titre_present"): titre_present=params["titre_present"] else: titre_present="NON" if params.has_key("langue_legende"): langue_legende=params["langue_legende"] else: langue_legende="FR" if params.has_key("bl"): bl=params["bl"] else: bl="NON" if params.has_key("minuscules"): minuscules=params["minuscules"] else: minuscules="NON" if params.has_key("anti_perso"): anti_perso=params["anti_perso"] else: anti_perso="NON" if params.has_key("debug"): debug=params["debug"] else: debug="NON" if params.has_key("legend"): legend=params["legend"] else: legend="NON" if params.has_key("typedistance"): typedistance=params["typedistance"] else: typedistance="jaccard" if params.has_key("text1"): text=params["text1"] fd=open(fichiertexte+"1.txt","w") fd.write(text) fd.close() if params.has_key("antidico1"): fichierantidico=rep+"Antidico_Perso.txt" fd=open(fichierantidico,"w") fd.write(params["antidico1"]) fd.close() if params.has_key("titre1"): titre=params["titre1"] fd=open(fichiertitre+".txt","w") fd.write(titre) fd.close() if params.has_key("taillefenetre"): taillefenetre=params["taillefenetre"] else: taillefenetre="20" if params.has_key("nombremaxmots"): nombremaxmots=params["nombremaxmots"] else: nombremaxmots="50" if params.has_key("nombreminmots"): nombreminmots=params["nombreminmots"] else: nombreminmots="0" if params.has_key("hauteur"): hauteur=params["hauteur"] else: hauteur="600" if params.has_key("largeur"): largeur=params["largeur"] else: largeur="600" if params.has_key("antidico"): antidico=params["antidico"] else: antidico="" if params.has_key("langue"): langue=params["langue"] else: langue="T_N_Pers_v1_FR" if fichierantidico!="": fichierantidico="-fileantidico "+fichierantidico imagetaille="-image_width "+largeur+" -image_height "+hauteur if params.has_key("big"): if params["big"]=="big": imagetaille="-image_width 2000 -image_height 2000" if nombreminmots!="0": nbmots=" -nombreminmots "+nombreminmots nombremaxmots="0" else: nbmots=" -nombremaxmots "+nombremaxmots commande=" -legend "+legend+" -debug "+debug+" -virtuel OUI "+" -anti_perso "+anti_perso+" -langue "+langue+" -workdir "+rep+" -file "+fichiertexte+"1.txt "+nbmots+" -minuscules "+minuscules+" -filehtml "+fichierHtml+" -taillefenetre "+taillefenetre+" -typedistance "+typedistance+" -filegraph "+repdessin+fichierdessin+" -filenewick "+fichierNewick+" -filefrequence "+fichierfreq+" -filedistance "+fichierDistance+" -filenexus "+fichierNexus+" "+imagetaille+fichierMat +" -BL "+bl+" -titre "+fichiertitre+".txt"+" -langue_legend "+langue_legende+" -titre_present "+titre_present+" -langue_page_cgi "+langue_page_cgi+" -couleur_titre "+couleur_titre reponse="" t1=time.time() cmd=os.popen("/home/projets/treecloud/cgi-bin/ArbreArbore_10 "+commande,"rb") reponse=cmd.read() cmd.close() t2=time.time() t3=t2-t1 if (reponse==""): reponse="Erreur, merci de me signaler ce bug (envoyez-moi vos paramètres svp)" reponse=reponse+"
Générée en "+str(t3)+" secondes" print """

Créez vos propres nuages arborés !

Collez votre texte dans le cadre ci-dessous, puis cliquez sur Envoyer ! Attention, l'utilisateur suivant verra votre texte quand il se connectera au site, si vous ne voulez pas faire apparaître vos textes, installez plutôt TreeCloud sur votre machine.
""" print """
Texte :



Vous pouvez déplacer les étiquettes par cliquer-glisser, l'étiquette reprend sa place d'origine lors d'un nouveau clic.
Cet arbre est construit par l'algotithme BioNJ. L'infobulle indique le nombre d'occurrences du mot.
Image SVG

"""+reponse+""" Lien vers l'image SVG (Firef lit les SVG, sinon un plugin est disponible sur http://www.adobe.com/svg/)
""" print """

Paramètres

Pour chaque langue un traitement de base est proposé dans lequel seul un antidictionnaire de mots grammaticaux est utilisé. D'autres traitements sont éventuellement proposés pour certaines langues: les catégories entre parenthèses sont celles que l'on souhaite voir figurer dans l'arbre. L'antidico personnalisé s'ajoute à ceux déjà appliqués selon l'option langue/traitement choisie.

Langue/traitement:
Antidico personnalisé
Antidico personnalisé :

Ajouter la légende        Langue légende :

Ajouter un titre:

Couleur du titre:
Les paramètres ci-dessous conviennent par défaut. Pour savoir comment les modifier, reportez-vous au manuel d'utilisateur de TreeCloud.
Largeur de l'image :
Hauteur de l'image :
Nombre maximum de mots :
Nombre minimum de mots : (mettre 0 pour revenir au nombre max de mots)
Taille de la fenêtre :
Formule de calcul des distances :

Fichiers générés pendant la construction du nuage arboré

Les cadres ci-dessous contiennent des fichiers qui peuvent vous être utiles.

Fréquences contient pour chaque mot fréquent son nombre d'occurrences, il peut être utilisé pour construire un simple nuage de mots.
Distances contient la matrice de distance de cooccurrence entre mots, au format CSV.
Nexus contient le fichier Nexus qui peut être fourni en entrée du logiciel SplitsTree pour calculer l'arbre par d'autres algorithmes.
Newick contient l'arbre correspondant au nuage arboré, dans un format classique pour les logiciels de traitement d'arbres phylogénétiques.

Fréquences :
""" print """
Distances :
""" print """
Nexus :
""" if (debug=="OUI"): print """
"""+rep+"""../../cgi-bin/ArbreArbore_10 """ +commande+"""
""" print """
Newick :
""" print """
"""