tkinter/lingvigilo.py
changeset 0 6371497b4e53
--- /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()