mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-01 08:53:37 +00:00
Merge remote-tracking branch 'origin/dev'
This commit is contained in:
commit
335cc55380
6 changed files with 31 additions and 9 deletions
|
@ -27,6 +27,8 @@ from sickbeard import db
|
|||
from sickbeard import common
|
||||
from sickbeard import helpers
|
||||
from sickbeard import exceptions
|
||||
from sickbeard.exceptions import ex
|
||||
|
||||
|
||||
class DailySearcher():
|
||||
def __init__(self):
|
||||
|
@ -38,6 +40,23 @@ class DailySearcher():
|
|||
|
||||
self.amActive = True
|
||||
|
||||
providers = [x for x in sickbeard.providers.sortedProviderList() if x.isActive() and not x.backlog_only]
|
||||
for curProviderCount, curProvider in enumerate(providers):
|
||||
|
||||
try:
|
||||
logger.log(u"Updating [" + curProvider.name + "} RSS cache ...")
|
||||
curProvider.cache.updateCache()
|
||||
except exceptions.AuthException, e:
|
||||
logger.log(u"Authentication error: " + ex(e), logger.ERROR)
|
||||
if curProviderCount != len(providers):
|
||||
continue
|
||||
break
|
||||
except Exception, e:
|
||||
logger.log(u"Error while updating cache for " + curProvider.name + ", skipping: " + ex(e), logger.ERROR)
|
||||
if curProviderCount != len(providers):
|
||||
continue
|
||||
break
|
||||
|
||||
logger.log(u"Searching for coming episodes and 1 weeks worth of previously WANTED episodes ...")
|
||||
|
||||
fromDate = datetime.date.today() - datetime.timedelta(weeks=1)
|
||||
|
|
|
@ -130,12 +130,8 @@ class DBConnection(object):
|
|||
sqlResult = []
|
||||
attempt = 0
|
||||
|
||||
# Transaction
|
||||
#self.execute('BEGIN')
|
||||
|
||||
while attempt < 5:
|
||||
try:
|
||||
|
||||
for qu in querylist:
|
||||
if len(qu) == 1:
|
||||
if logTransaction:
|
||||
|
|
|
@ -249,7 +249,7 @@ class NameParser(object):
|
|||
matches.append(result)
|
||||
|
||||
if len(matches):
|
||||
result = max(matches, key=lambda x: x.score)
|
||||
result = max(sorted(matches, reverse=True, key=lambda x: x.which_regex), key=lambda x: x.score)
|
||||
|
||||
if result.show:
|
||||
if self.convert and not self.naming_pattern:
|
||||
|
|
|
@ -76,7 +76,7 @@ normal_regexes = {'normal':[
|
|||
(?P<ep_num>\d+) # 02 and separator
|
||||
(([. _-]*x|-) # linking x/- char
|
||||
(?P<extra_ep_num>
|
||||
(?!(1080|720|480)[pi])(?!(?<=x)264) # ignore obviously wrong multi-eps
|
||||
(?!(1080|720|480)[pi])(?!(?<=[hx])264) # ignore obviously wrong multi-eps
|
||||
\d+))* # additional x03/etc
|
||||
[\]. _-]*((?P<extra_info>.+?) # Source_Quality_Etc-
|
||||
((?<![. _-])(?<!WEB) # Make sure this is really the release group
|
||||
|
|
|
@ -355,8 +355,6 @@ def searchForNeededEpisodes(show, episodes):
|
|||
threading.currentThread().name = origThreadName + " :: [" + curProvider.name + "]"
|
||||
|
||||
try:
|
||||
logger.log(u"Updating RSS cache ...")
|
||||
curProvider.cache.updateCache()
|
||||
logger.log(u"Searching RSS cache ...")
|
||||
curFoundResults = curProvider.searchRSS(episodes)
|
||||
except exceptions.AuthException, e:
|
||||
|
|
|
@ -54,6 +54,9 @@ class CacheDBConnection(db.DBConnection):
|
|||
if not self.hasTable(providerName):
|
||||
self.action(
|
||||
"CREATE TABLE [" + providerName + "] (name TEXT, season NUMERIC, episodes TEXT, indexerid NUMERIC, url TEXT, time NUMERIC, quality TEXT)")
|
||||
else:
|
||||
# remove duplicates
|
||||
self.action("DELETE FROM " + providerName + " WHERE url NOT IN (SELECT url FROM " + providerName + " GROUP BY url)")
|
||||
except Exception, e:
|
||||
if str(e) != "table [" + providerName + "] already exists":
|
||||
raise
|
||||
|
@ -67,6 +70,12 @@ class CacheDBConnection(db.DBConnection):
|
|||
raise
|
||||
|
||||
|
||||
# Create unique index for provider table to prevent duplicate entries
|
||||
try:
|
||||
self.action("CREATE UNIQUE INDEX IF NOT EXISTS idx_url ON " + providerName + " (url)")
|
||||
except Exception, e:
|
||||
raise
|
||||
|
||||
class TVCache():
|
||||
def __init__(self, provider):
|
||||
|
||||
|
@ -306,7 +315,7 @@ class TVCache():
|
|||
logger.log(u"Added RSS item: [" + name + "] to cache: [" + self.providerID + "]", logger.DEBUG)
|
||||
|
||||
return [
|
||||
"INSERT INTO [" + self.providerID + "] (name, season, episodes, indexerid, url, time, quality) VALUES (?,?,?,?,?,?,?)",
|
||||
"INSERT OR IGNORE INTO [" + self.providerID + "] (name, season, episodes, indexerid, url, time, quality) VALUES (?,?,?,?,?,?,?)",
|
||||
[name, season, episodeText, parse_result.show.indexerid, url, curTimestamp, quality]]
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue