now checks traditional too

master
Dario Ernst 14 years ago
parent 02373b86d3
commit 68ef6f10c6

@ -2,6 +2,7 @@ import sqlite3
import sys import sys
import os import os
import re import re
import copy
if len(sys.argv) != 3: if len(sys.argv) != 3:
print "Usage: cedict2sqlite [hanzi-text or file] [sqlite-file.sqlite]" print "Usage: cedict2sqlite [hanzi-text or file] [sqlite-file.sqlite]"
@ -30,15 +31,20 @@ while hzwork:
print "\nhzwork still %s"%hzwork print "\nhzwork still %s"%hzwork
tmpstr = "" tmpstr = ""
lastres = "" lastres = ""
for c in hzwork:
for c in copy.deepcopy(hzwork):
tmpstr += hzwork[0] tmpstr += hzwork[0]
print "checking for %s (%s)"%(tmpstr,tmpstr.__repr__()) print "checking for %s (%s)"%(tmpstr,tmpstr.__repr__())
res = slconn.execute('SELECT pinyin FROM entries WHERE simplified="%s"'%tmpstr).fetchall() res = slconn.execute('SELECT pinyin FROM entries WHERE simplified="%s" OR traditional="%s";'%(tmpstr,tmpstr)).fetchall()
if res != []: # sequence of chars not found, using last result print "res are: %s"%res
# now for the result work...
if res: # sequence of chars not found, using last result
lastres = res[0][0] lastres = res[0][0]
hzwork.pop(0) hzwork.pop(0)
print "found and consumed %s"%res[0][0] print "found and consumed %s"%res[0][0]
elif res == [] and not lastres: # first char not found, using fallback barf elif not res and not lastres: # first char not found, using fallback barf
lastres = '[%s]'%tmpstr lastres = '[%s]'%tmpstr
hzwork.pop(0) hzwork.pop(0)
print "%s not found, adding raw and breaking"%tmpstr print "%s not found, adding raw and breaking"%tmpstr
@ -46,6 +52,7 @@ while hzwork:
else: else:
print "got empty result, breaking" print "got empty result, breaking"
break break
finres += lastres+" " finres += lastres+" "
print "appending and deleting lastres %s, finres now: %s"%(lastres,finres) print "appending and deleting lastres %s, finres now: %s"%(lastres,finres)

Loading…
Cancel
Save