--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tkinter/lingvigilo.py Thu May 18 22:59:47 2006 +0200
@@ -0,0 +1,112 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+
+from Tkinter import *
+from tkSimpleDialog import *
+import sys,time,random,string,MySQLdb
+
+# Configuració
+legi_el = 'mysql'
+
+# Conf - mysql
+database = 'lingvigilo'
+dbuser = 'lingvigilouser'
+dbpass = 'carrinclo'
+dbtable_vortoj = 'vortoj_ru_ca'
+dbtable_frazoj = 'frazoj_ru_ca'
+
+# Conf - fitxer
+dbasefile = 'vortoj-ru-ca.txt'
+frazodosiero = 'frazoj.txt'
+
+# Prendre les paraules d'una base de dades MySQL
+def getMySQL():
+ db = MySQLdb.connect(host='vicerveza',user=dbuser,passwd=dbpass,
+ db=database)
+ cursor = db.cursor()
+ cursor.execute("SELECT * FROM "+dbtable_vortoj)
+ res_vortoj = cursor.fetchall()
+ res_vortoj_unicode = []
+ for vorto in res_vortoj:
+ vorto_vorto = unicode(vorto[1],'utf8')
+ vorto_tipo = unicode(vorto[2],'utf8')
+ vorto_traduko = unicode(vorto[3],'utf8')
+
+ # Parà metres opcionals
+ if vorto[4] == None:
+ vorto_param1 = ''
+ else:
+ vorto_param1 = unicode(vorto[4],'utf8')
+
+ if vorto[5] == None:
+ vorto_param2 = ''
+ else:
+ vorto_param2 = unicode(vorto[5],'utf8')
+
+ res_vortoj_unicode.append(
+ (vorto_vorto, vorto_tipo, vorto_traduko,
+ vorto_param1, vorto_param2))
+ db.close()
+ return res_vortoj_unicode
+
+# Prendre les paraules d'un fitxer
+def getFile():
+ dbase = open(dbasefile,"r")
+
+ lines = dbase.readlines()
+ dbase.close()
+
+ res_vortoj = []
+ for line in lines:
+ line = line.rstrip('\n')
+ vortoj = string.split(unicode(line.rstrip('\n'),'utf8'),'\t')
+ res_vortoj.append(vortoj)
+
+ return res_vortoj
+
+if legi_el == 'file':
+ print "Legante vortojn el dosiero..."
+ vortoj = getFile()
+else:
+ print "Legante vortojn el MySQLa datumbazo..."
+ vortoj = getMySQL()
+
+print "Legitaj", len(vortoj), "vortoj."
+
+def AldoniFrazonDosieren(vorto,teksto):
+ outfile = open(frazodosiero,"a")
+
+ lineout = vorto + "\t" + teksto +"\n"
+ outfile.write(lineout.encode('utf8'))
+
+ outfile.close()
+
+def AldoniFrazonDatumbazen(vorto,teksto):
+ db = MySQLdb.connect(host='vicerveza',user=dbuser,passwd=dbpass,
+ db=database)
+ cursor = db.cursor()
+ print ("INSERT INTO "+dbtable_frazoj+" (vorto, frazo)"
+ " VALUES('%s', '%s');" % (vorto, teksto))
+ cursor.execute("INSERT INTO "+dbtable_frazoj+" (vorto, frazo)"+
+ " VALUES('%s', '%s');" % (vorto.encode('utf8'),
+ teksto.encode('utf8')))
+ db.close()
+
+
+def LoopFunction():
+ index = random.randint(0, len(vortoj)-1)
+ vorto = vortoj[index][0]
+ teksto = askstring("Frazilon", "Skribu frazon por vorto '%s'" % vorto)
+ if teksto == None:
+ print 'Fi del programa'
+ sys.exit()
+ AldoniFrazonDatumbazen(vorto, teksto)
+ root.after(1*1000,LoopFunction)
+
+
+# Main program
+root=Tk()
+root.after(10,LoopFunction)
+Message(root, text='Programo por lerni lingvon').pack();
+root.mainloop()