diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py old mode 100755 new mode 100644 index 7ab50d41..5284ae9e --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -236,7 +236,6 @@ def main(argv=None): if os.name == 'nt': settings['os'] = 'windows' else: settings['os'] = 'linuxmac' -# settings.update(config.get_db_parameters('fpdb')) settings.update(config.get_db_parameters()) settings.update(config.get_tv_parameters()) settings.update(config.get_import_parameters()) diff --git a/pyfpdb/fpdb_db.py b/pyfpdb/fpdb_db.py index 771b79fa..eba87f52 100644 --- a/pyfpdb/fpdb_db.py +++ b/pyfpdb/fpdb_db.py @@ -59,7 +59,7 @@ class fpdb_db: self.database=database if backend==self.MYSQL_INNODB: import MySQLdb - self.db=MySQLdb.connect(host = host, user = user, passwd = password, db = database) + self.db=MySQLdb.connect(host = host, user = user, passwd = password, db = database, use_unicode=True) elif backend==self.PGSQL: import psycopg2 # If DB connection is made over TCP, then the variables diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index fc98a049..6c0af7f5 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -21,7 +21,7 @@ import os # todo: remove this once import_dir is in fpdb_import import sys -from time import time +from time import time, strftime import traceback import math import datetime diff --git a/pyfpdb/fpdb_simple.py b/pyfpdb/fpdb_simple.py index e8ef9bb7..4020c430 100644 --- a/pyfpdb/fpdb_simple.py +++ b/pyfpdb/fpdb_simple.py @@ -1407,26 +1407,18 @@ def recogniseTourneyTypeId(cursor, siteId, buyin, fee, knockout, rebuyOrAddon): # return result def recognisePlayerIDs(cursor, names, site_id): - names = [n.encode("utf-8") for n in names] - namestring = "name=%s" - for x in xrange(len(names)-1): - namestring += " OR name=%s" -# print "names=", names, "\nnamestring=", namestring - cursor.execute("SELECT name,id FROM Players WHERE %s" % namestring , names) # get all playerids by the names passed in + q = "SELECT name,id FROM Players WHERE name=%s" % " OR name=".join(["%s" for n in names]) + cursor.execute(q, names) # get all playerids by the names passed in ids = dict(cursor.fetchall()) # convert to dict if len(ids) != len(names): notfound = [n for n in names if n not in ids] # make list of names not in database - if notfound: # insert them into database - namestring = "name=%s" - for x in xrange(len(notfound)-1): - namestring += " OR name=%s" -# print "namestring=",namestring,"\nnotfound=", notfound - cursor.executemany("INSERT INTO Players (name, siteId) VALUES (%s, "+str(site_id)+")", (notfound)) - cursor.execute("SELECT name,id FROM Players WHERE %s" % namestring, notfound) # get their new ids - tmp = dict(cursor.fetchall()) - for n in tmp: # put them all into the same dict - ids[n] = tmp[n] -# print "ids=", ids + if notfound: # insert them into database + cursor.executemany("INSERT INTO Players (name, siteId) VALUES (%s, "+str(site_id)+")", (notfound)) + q2 = "SELECT name,id FROM Players WHERE name=%s" % " OR name=".join(["%s" for n in notfound]) + cursor.execute(q2, notfound) # get their new ids + tmp = dict(cursor.fetchall()) + for n in tmp: # put them all into the same dict + ids[n] = tmp[n] # return them in the SAME ORDER that they came in in the names argument, rather than the order they came out of the DB return [ids[n] for n in names] #end def recognisePlayerIDs