Fix for transactionals and None Types in sql lists

This commit is contained in:
echel0n 2014-05-30 04:42:31 -07:00
parent db6cf0b22b
commit 997896a540
22 changed files with 57 additions and 40 deletions

View file

@ -81,7 +81,7 @@ class DailySearcher():
sql_l.append(ep.get_sql()) sql_l.append(ep.get_sql())
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)

View file

@ -30,6 +30,7 @@ from sickbeard import encodingKludge as ek
from sickbeard import logger from sickbeard import logger
from sickbeard.exceptions import ex from sickbeard.exceptions import ex
from sickbeard.common import cpu_presets from sickbeard.common import cpu_presets
from itertools import ifilter
db_lock = threading.Lock() db_lock = threading.Lock()
@ -113,6 +114,8 @@ class DBConnection:
def mass_action(self, querylist, logTransaction=False): def mass_action(self, querylist, logTransaction=False):
with db_lock: with db_lock:
# remove None types
querylist = [i for i in querylist if i!=None]
if querylist == None: if querylist == None:
return return

View file

@ -186,7 +186,7 @@ def update_network_dict():
L = list(va for va in old_d) L = list(va for va in old_d)
ql.append(["DELETE FROM network_timezones WHERE network_name IN (" + ','.join(['?'] * len(L)) + ")", L]) ql.append(["DELETE FROM network_timezones WHERE network_name IN (" + ','.join(['?'] * len(L)) + ")", L])
# change all network timezone infos at once (much faster) # change all network timezone infos at once (much faster)
if len(ql) > 0: if ql:
myDB.mass_action(ql) myDB.mass_action(ql)
load_network_dict() load_network_dict()

View file

@ -961,7 +961,7 @@ class PostProcessor(object):
else: else:
self._log(u"Couldn't find release in snatch history", logger.WARNING) self._log(u"Couldn't find release in snatch history", logger.WARNING)
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)
@ -1038,7 +1038,7 @@ class PostProcessor(object):
ep_obj.createMetaFiles() ep_obj.createMetaFiles()
sql_l.append(ep_obj.get_sql()) sql_l.append(ep_obj.get_sql())
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)

View file

@ -341,6 +341,7 @@ class BTNCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -233,6 +233,7 @@ class HDBitsCache(tvcache.TVCache):
if ci is not None: if ci is not None:
ql.append(ci) ql.append(ci)
if ql:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(ql) myDB.mass_action(ql)

View file

@ -367,6 +367,7 @@ class HDTorrentsCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -308,6 +308,7 @@ class IPTorrentsCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -445,6 +445,7 @@ class KATCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -341,6 +341,7 @@ class NewznabCache(tvcache.TVCache):
if ci is not None: if ci is not None:
ql.append(ci) ql.append(ci)
if ql:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(ql) myDB.mass_action(ql)

View file

@ -357,6 +357,7 @@ class NextGenCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -337,6 +337,7 @@ class PublicHDCache(tvcache.TVCache):
if ci is not None: if ci is not None:
ql.append(ci) ql.append(ci)
if ql:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(ql) myDB.mass_action(ql)

View file

@ -352,6 +352,7 @@ class SCCCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -292,6 +292,7 @@ class SpeedCDCache(tvcache.TVCache):
if ci is not None: if ci is not None:
ql.append(ci) ql.append(ci)
if ql:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(ql) myDB.mass_action(ql)

View file

@ -427,6 +427,7 @@ class ThePirateBayCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -315,6 +315,7 @@ class TorrentDayCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -311,6 +311,7 @@ class TorrentLeechCache(tvcache.TVCache):
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -174,7 +174,7 @@ def snatchEpisode(result, endStatus=SNATCHED):
if curEpObj.status not in Quality.DOWNLOADED: if curEpObj.status not in Quality.DOWNLOADED:
notifiers.notify_snatch(curEpObj._format_pattern('%SN - %Sx%0E - %EN - %QN')) notifiers.notify_snatch(curEpObj._format_pattern('%SN - %Sx%0E - %EN - %QN'))
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)

View file

@ -421,7 +421,7 @@ class TVShow(object):
sql_l.append(curEpisode.get_sql()) sql_l.append(curEpisode.get_sql())
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)
@ -542,7 +542,7 @@ class TVShow(object):
scannedEps[season][episode] = True scannedEps[season][episode] = True
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)
@ -712,7 +712,7 @@ class TVShow(object):
with curEp.lock: with curEp.lock:
sql_l.append(curEp.get_sql()) sql_l.append(curEp.get_sql())
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)
@ -1039,7 +1039,7 @@ class TVShow(object):
if sickbeard.AIRDATE_EPISODES: if sickbeard.AIRDATE_EPISODES:
self.airdateModifyStamp(curEp) self.airdateModifyStamp(curEp)
if len(sql_l): if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)
@ -2312,6 +2312,6 @@ class TVEpisode(object):
for relEp in self.relatedEps: for relEp in self.relatedEps:
sql_l.append(relEp.get_sql()) sql_l.append(relEp.get_sql())
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)

View file

@ -128,6 +128,7 @@ class TVCache():
if ci is not None: if ci is not None:
cl.append(ci) cl.append(ci)
if cl:
myDB = self._getDB() myDB = self._getDB()
myDB.mass_action(cl) myDB.mass_action(cl)

View file

@ -1011,7 +1011,7 @@ class CMD_EpisodeSetStatus(ApiCall):
start_backlog = True start_backlog = True
ep_results.append(_epResult(RESULT_SUCCESS, epObj)) ep_results.append(_epResult(RESULT_SUCCESS, epObj))
if len(sql_l): if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)

View file

@ -3528,7 +3528,7 @@ class Home:
# mass add to database # mass add to database
sql_l.append(epObj.get_sql()) sql_l.append(epObj.get_sql())
if len(sql_l) > 0: if sql_l:
myDB = db.DBConnection() myDB = db.DBConnection()
myDB.mass_action(sql_l) myDB.mass_action(sql_l)