Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.

[Python] pyToilet

Andare in basso

[Python] pyToilet Empty [Python] pyToilet

Messaggio  TTDH Dom Nov 22, 2009 9:10 pm

In questi giorni per esercitarmi un pò ho voluto fare questo "programma" molto simile a Toilet
Ecco il source:
Codice:
from string import split, lower
from libcolor import color
import sys
diz={}

def carica_file(file):
   a=open(file, "r")
   l = a.read()
   a.close()
   return l

_file_default_ = sys.path[0]+ "/lol.oo"
try:
   if sys.argv[5] != "":
      _global_ = carica_file(sys.argv[5])
   else:  _global_ = carica_file(_file_default_)
except:    _global_ = carica_file(_file_default_)

def carica_lettere(buffer, letter):
   for i in split(buffer, "\\\\"):
      try:
            diz[split(i, "=")[0]] = split(i, "=")[1]
      except:      pass
   return    diz.get(lower(letter))


def print_frase(frase, colorr, bg, imp):
   lol1, lol2, lol3= "", "", ""
   for i in frase:
      try:
         lol1 += carica_lettere(_global_, i).split("\n")[0] + " "
         lol2 += carica_lettere(_global_, i).split("\n")[1] + " "
         lol3 += carica_lettere(_global_, i).split("\n")[2] + " "
      except: pass
   color(lol1 + "\n" + lol2 + "\n" +  lol3, colorr, bg, imp)

try:         print_frase(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])
except:  print "Non tutti i parametri sono stati immessi"
Purtroppo questa versione funziona solamente su linux.
Questo programma, inoltre, si basa su una libreria che mi permette di colorare l' output e che in questi giorni ho scritto ma che devo rivedere (infatti i colori sono molto limitati).
Ecco il source del modulo libcolor:
Codice:
from os import system
from string import lower
diz = {"black" : "49",
            "lightpurple" : "48",
            "white" : "47",
            "skyblue" : "46",
            "purple" : "45",
            "blue" : "44",
            "yellow" : "43",
            "green" : "42",
            "red" : "41"}
diz2 = {"white" : "37",
            "skyblue" : "36",
            "purple" : "35",
            "blue" : "34",
            "yellow" : "33",
            "green" : "32",
            "red" : "31",
            "grey" : "30"}
diz3 = {"sottolineato" : "4m",
                "corsivo" : "3m"}

def color(string, color, bg, imp):
    return system("echo -e " + chr(34) + "\033[" + diz.get(lower(bg),"60") + ";" + diz2.get(lower(color), "60") + ";" + diz3.get(imp,"6m") + string + "\033[0m" + chr(34))
Naturalmente questo source va salvato in un file con estensione ".py" e posizionato nella stessa cartella del file princiaple (cioè pyToilet).
Un ultima cosa: il programma ha bisogno di un file con alcuni font quindi eccovi un file contenente solamente i font per le lettere dell' alfabeto:
Codice:
a=  /\ 
  /--\ 
 /    \
\\\\b=| \
|°/
|°/
\\\\c= ___

\___
\\\\d=|\
| \
|_/
\\\\e= ___
|--
|___
\\\\f= ___
|---

\\\\g= ___
|  _
\__/
\\\\h=|  |
|---|
|  |
\\\\i=|
|
|
\\\\j=\ 
 \
\_/
\\\\k=|  /
| /
|  \
\\\\l=|   
|   
|____
\\\\m= ____
| \/ |
|    |
\\\\n=|\  |
| \ |
|  \|
\\\\o= ----
|    |
 ----
\\\\p=|  \
|__/

\\\\q= -----
|    |
 -----\
\\\\r=|  \
|__/
|  \
\\\\s=  __
  ( 
__ ) 
\\\\t=_____
  | 
  | 
\\\\u=|  |
|  |
|___|
\\\\v=\    /
 \  /
  _ 
\\\\w=\  /\  /
 \ /\ /
  ---- 
\\\\x= \ /
  - 
 / \
\\\\y=\  /
 \ /
  | 
\\\\z=___ 
  / 
 /___
\\\\ =     
     
     
\\\\+=  | 
-------
  | 
Questo source va copiato e incollato in un file di nome lol.oo e posizionato, come il modulo precedente, nella stessa cartella del file principale.

Manuale d' uso (XD):
per avviare il programma basta digitare una stringa simile nel terminale:
Codice:
python /percorso/pytoilet.py <stringa> <colore caratteri> <colore sfondo> <arricchimento> <percorso altro file>
Codice:
<string>
= equivale alla stringa che si vuole stampare (IMPORTANTE: la stringa deve essere formata da una sola parola).
Codice:
<colore caratteri>
= equivale al colore dei caratteri.
Codice:
<colore sfondo>
= equivale al colore dello sfondo.
Codice:
<arricchimento>
= equivale al sottolineamento dei caratteri.
Codice:
<percorso altro file>
= equivale al percoso di un altro file che contiene un altro tipo di font; inoltre questo parametro non è obbligatorio.

Ecco una dimostrazione:
[Python] pyToilet 2h3ppmo
TTDH
TTDH
Moderatore
Moderatore

Messaggi : 14
Data d'iscrizione : 11.11.09

Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.