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