Commit 24764780 authored by echel0n's avatar echel0n
Browse files

Pre-Release v9.3.22.dev1

parent 3fc98cfc
# Changelog
- * 4a05a28 - 2018-05-13: Fixed issues with searches and UNKNOWN qualities
- * 25a4d34 - 2018-05-13: Pre-Release v9.3.22.dev1
- * 3fc98cf - 2018-05-13: Fixed issues with searches and UNKNOWN qualities
- * 0869c48 - 2018-05-13: Release v9.3.21
- * ea98ece - 2018-05-13: Fixed bug in backlog searcher that was incorrectly comparing date ordinals causing zero results to be found
- * 52d12af - 2018-05-13: Pre-Release v9.3.21.dev4
......
......@@ -67,6 +67,7 @@ SNATCHED_PROPER = 9 # qualified with quality
SUBTITLED = 10 # qualified with quality
FAILED = 11 # episode downloaded or snatched we don't want
SNATCHED_BEST = 12 # episode redownloaded using best quality
MISSED = 13 # episode missed
NAMING_REPEAT = 1
NAMING_EXTEND = 2
......@@ -184,9 +185,10 @@ class Quality(object):
statusPrefixes = {DOWNLOADED: _("Downloaded"),
SNATCHED: _("Snatched"),
SNATCHED_PROPER: _("Snatched (Proper)"),
FAILED: _("Failed"),
SNATCHED_BEST: _("Snatched (Best)"),
ARCHIVED: _("Archived")}
ARCHIVED: _("Archived"),
FAILED: _("Failed"),
MISSED: _("Missed"),}
@staticmethod
def _getStatusStrings(status):
......@@ -295,8 +297,8 @@ class Quality(object):
if (check_name(
[r"480p|\bweb\b|web.?dl|web(rip|mux|hd)|[sph]d.?tv|dsr|tv(rip|mux)|satrip", r"xvid|divx|[xh].?26[45]"],
all)
and not check_name([r"(720|1080)[pi]"], all)
and not check_name([r"hr.ws.pdtv.[xh].?26[45]"], any)):
and not check_name([r"(720|1080)[pi]"], all)
and not check_name([r"hr.ws.pdtv.[xh].?26[45]"], any)):
ret = Quality.SDTV
elif (check_name([r"dvd(rip|mux)|b[rd](rip|mux)|blue?-?ray", r"xvid|divx|[xh].?26[45]"], all)
and not check_name([r"(720|1080)[pi]"], all)
......@@ -361,13 +363,13 @@ class Quality(object):
@staticmethod
def statusFromCompositeStatus(status):
status, quality = Quality.splitCompositeStatus(status)
return status
status, quality = Quality.splitCompositeStatus(status)
return status
@staticmethod
def qualityFromCompositeStatus(status):
status, quality = Quality.splitCompositeStatus(status)
return quality
status, quality = Quality.splitCompositeStatus(status)
return quality
@staticmethod
def qualityFromFileMeta(filename):
......@@ -488,18 +490,18 @@ class Quality(object):
DOWNLOADED = None
SNATCHED = None
SNATCHED_PROPER = None
FAILED = None
SNATCHED_BEST = None
ARCHIVED = None
FAILED = None
IGNORED = None
Quality.DOWNLOADED = [Quality.compositeStatus(DOWNLOADED, x) for x in Quality.qualityStrings.keys()]
Quality.SNATCHED = [Quality.compositeStatus(SNATCHED, x) for x in Quality.qualityStrings.keys()]
Quality.SNATCHED_PROPER = [Quality.compositeStatus(SNATCHED_PROPER, x) for x in Quality.qualityStrings.keys()]
Quality.FAILED = [Quality.compositeStatus(FAILED, x) for x in Quality.qualityStrings.keys()]
Quality.SNATCHED_BEST = [Quality.compositeStatus(SNATCHED_BEST, x) for x in Quality.qualityStrings.keys()]
Quality.ARCHIVED = [Quality.compositeStatus(ARCHIVED, x) for x in Quality.qualityStrings.keys()]
Quality.FAILED = [Quality.compositeStatus(FAILED, x) for x in Quality.qualityStrings.keys()]
Quality.IGNORED = [Quality.compositeStatus(IGNORED, x) for x in Quality.qualityStrings.keys()]
HD720p = Quality.combineQualities([Quality.HDTV, Quality.HDWEBDL, Quality.HDBLURAY], [])
......@@ -607,27 +609,29 @@ class StatusStrings(UserDict):
statusStrings = StatusStrings({UNKNOWN: _("Unknown"),
UNAIRED: _("Unaired"),
SNATCHED: _("Snatched"),
SNATCHED_PROPER: _("Snatched (Proper)"),
SNATCHED_BEST: _("Snatched (Best)"),
DOWNLOADED: _("Downloaded"),
SKIPPED: _("Skipped"),
SNATCHED_PROPER: _("Snatched (Proper)"),
WANTED: _("Wanted"),
ARCHIVED: _("Archived"),
IGNORED: _("Ignored"),
SUBTITLED: _("Subtitled"),
FAILED: _("Failed"),
SNATCHED_BEST: _("Snatched (Best)")})
MISSED: _("Missed")})
class Overview(object):
UNAIRED = UNAIRED # 1
QUAL = 2
SNATCHED = SNATCHED # 2
WANTED = WANTED # 3
GOOD = 4
GOOD = DOWNLOADED # 4
SKIPPED = SKIPPED # 5
MISSED = 6 # 6
SNATCHED_PROPER = SNATCHED_PROPER # 9
SNATCHED_BEST = SNATCHED_BEST # 12
MISSED = MISSED # 13
# For both snatched statuses. Note: SNATCHED/QUAL have same value and break dict.
SNATCHED = SNATCHED_PROPER = SNATCHED_BEST # 9
QUAL = 50
overviewStrings = {SKIPPED: "skipped",
WANTED: "wanted",
......@@ -635,6 +639,8 @@ class Overview(object):
GOOD: "good",
UNAIRED: "unaired",
SNATCHED: "snatched",
SNATCHED_BEST: "snatched",
SNATCHED_PROPER: "snatched",
MISSED: "missed"}
......
......@@ -124,10 +124,15 @@ class BacklogSearcher(object):
if curStatus != WANTED:
if bestQualities:
if curQuality in bestQualities or curQuality != Quality.UNKNOWN and curQuality > max(bestQualities):
if curQuality in bestQualities:
continue
elif curQuality != Quality.UNKNOWN and curQuality > max(bestQualities):
continue
else:
if curQuality in anyQualities:
continue
elif curQuality != Quality.UNKNOWN and curQuality > max(anyQualities):
continue
elif curQuality in anyQualities or curQuality != Quality.UNKNOWN and curQuality > max(anyQualities):
continue
# only fetch if not archive on first match
if curStatus == DOWNLOADED and show.archive_firstmatch:
......
......@@ -143,10 +143,15 @@ class DailySearcher(object):
if curStatus != WANTED:
if bestQualities:
if curQuality in bestQualities or curQuality != Quality.UNKNOWN and curQuality > max(bestQualities):
if curQuality in bestQualities:
continue
elif curQuality != Quality.UNKNOWN and curQuality > max(bestQualities):
continue
else:
if curQuality in anyQualities:
continue
elif curQuality != Quality.UNKNOWN and curQuality > max(anyQualities):
continue
elif curQuality in anyQualities or curQuality != Quality.UNKNOWN and curQuality > max(anyQualities):
continue
# only fetch if not archive on first match
if curStatus == DOWNLOADED and show.archive_firstmatch:
......@@ -156,4 +161,4 @@ class DailySearcher(object):
epObj.wantedQuality = [i for i in allQualities if (i > curQuality and i != Quality.UNKNOWN)]
wanted.append(epObj)
return wanted
\ No newline at end of file
return wanted
......@@ -1360,6 +1360,7 @@ class TVShow(object):
return False
def getOverview(self, epStatus):
epStatus = try_int(epStatus) or UNKNOWN
if epStatus == WANTED:
return Overview.WANTED
......@@ -1369,9 +1370,18 @@ class TVShow(object):
return Overview.SKIPPED
elif epStatus in Quality.ARCHIVED:
return Overview.GOOD
elif epStatus in Quality.DOWNLOADED + Quality.SNATCHED + Quality.SNATCHED_PROPER + Quality.FAILED + Quality.SNATCHED_BEST:
elif epStatus == Quality.FAILED:
return Overview.WANTED
elif epStatus in Quality.SNATCHED:
return Overview.SNATCHED
elif epStatus in Quality.SNATCHED_PROPER:
return Overview.SNATCHED_PROPER
elif epStatus in Quality.SNATCHED_BEST:
return Overview.SNATCHED_BEST
elif epStatus in Quality.DOWNLOADED:
anyQualities, bestQualities = Quality.splitQuality(self.quality)
epStatus, curQuality = Quality.splitCompositeStatus(epStatus)
__, bestQualities = Quality.splitQuality(self.quality)
if bestQualities:
maxBestQuality = max(bestQualities)
minBestQuality = min(bestQualities)
......@@ -1379,16 +1389,10 @@ class TVShow(object):
maxBestQuality = None
minBestQuality = None
epStatus, curQuality = Quality.splitCompositeStatus(epStatus)
if epStatus == FAILED:
return Overview.WANTED
if epStatus == DOWNLOADED and curQuality == Quality.UNKNOWN:
return Overview.QUAL
elif epStatus in (SNATCHED, SNATCHED_PROPER, SNATCHED_BEST):
return Overview.SNATCHED
# elif epStatus == DOWNLOADED and curQuality == Quality.UNKNOWN:
# return Overview.QUAL
# if they don't want re-downloads then we call it good if they have anything
elif maxBestQuality is None:
if maxBestQuality is None:
return Overview.GOOD
# if the want only first match and already have one call it good
elif self.archive_firstmatch and curQuality in bestQualities:
......@@ -1402,6 +1406,8 @@ class TVShow(object):
# if it's >= maxBestQuality then it's good
else:
return Overview.GOOD
else:
sickrage.app.log.error('Could not parse episode status into a valid overview status: {}'.format(epStatus))
def mapIndexers(self):
mapped = {}
......
......@@ -9,8 +9,7 @@
from sickrage.core.updaters import tz_updater
%>
<%block name="content">
<% totalWanted = 0 %>
<% totalQual = 0 %>
<% totalWanted = totalQual = 0 %>
% for curShow in sickrage.app.showlist:
<% totalWanted = totalWanted + showCounts[curShow.indexerid][Overview.WANTED] %>
......@@ -20,10 +19,11 @@
<div class="row">
<div class="col-lg-8 col-md-7 col-sm-6 col-xs-12 pull-right">
<div class="pull-right">
<span class="pull-right listing-key wanted">${_('Wanted:')} <b>${totalWanted}</b></span>
<span class="pull-right listing-key qual">${_('Low Quality:')} <b>${totalQual}</b></span>
<span class="listing-key wanted">${_('Wanted:')} <b>${totalWanted}</b></span>
<span class="listing-key qual">${_('Low Quality:')} <b>${totalQual}</b></span>
</div>
</div>
<div class="col-lg-4 col-md-5 col-sm-6 col-xs-12">
<h1 class="title">${title}</h1>
</div>
......@@ -35,7 +35,7 @@
<div class="input-group-addon">
<span class="fa fa-binoculars"></span>
</div>
<select id="pickShow" class="form-control" title="${_('Choose show')}">
<select id="pickShow" class="form-control form-control-inline input-sm" title="${_('Choose show')}">
% for curShow in sorted(sickrage.app.showlist, key=lambda x: x.name):
% if showCounts[curShow.indexerid][Overview.QUAL] + showCounts[curShow.indexerid][Overview.WANTED] != 0:
<option value="${curShow.indexerid}">${curShow.name}</option>
......@@ -103,5 +103,4 @@
</div>
</div>
</div>
</%block>
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: sickragetv\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2018-05-13 10:02-0700\n"
"PO-Revision-Date: 2018-05-13 13:02-0400\n"
"POT-Creation-Date: 2018-05-13 22:39-0700\n"
"PO-Revision-Date: 2018-05-14 01:39-0400\n"
"Last-Translator: echel0n <[email protected]>\n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
......@@ -510,18 +510,18 @@ msgstr "موفر"
msgid "Quality"
msgstr "جودة"
#: sickrage/core/common.py:185 sickrage/core/common.py:609
#: sickrage/core/common.py:186 sickrage/core/common.py:611
#: sickrage/core/webserver/views/history.mako:132
#: sickrage/core/webserver/views/layouts/main.mako:450
msgid "Snatched"
msgstr "وانتزع"
#: sickrage/core/common.py:184 sickrage/core/common.py:610
#: sickrage/core/common.py:185 sickrage/core/common.py:614
#: sickrage/core/webserver/views/history.mako:133
msgid "Downloaded"
msgstr "تحميل"
#: sickrage/core/common.py:616
#: sickrage/core/common.py:619
#: sickrage/core/webserver/views/config/providers.mako:885
#: sickrage/core/webserver/views/history.mako:135
msgid "Subtitled"
......@@ -4578,13 +4578,13 @@ msgid "Missed:"
msgstr "غاب:"
#: sickrage/core/webserver/views/home/display_show.mako:428
#: sickrage/core/webserver/views/manage/backlog_overview.mako:23
#: sickrage/core/webserver/views/manage/backlog_overview.mako:22
#: sickrage/core/webserver/views/manage/backlog_overview.mako:62
msgid "Wanted:"
msgstr "مطلوب:"
#: sickrage/core/webserver/views/home/display_show.mako:434
#: sickrage/core/webserver/views/manage/backlog_overview.mako:24
#: sickrage/core/webserver/views/manage/backlog_overview.mako:23
#: sickrage/core/webserver/views/manage/backlog_overview.mako:64
msgid "Low Quality:"
msgstr "جودة منخفضة:"
......@@ -5939,63 +5939,67 @@ msgstr "حدد كافة"
msgid "Clear all"
msgstr "مسح الكل"
#: sickrage/core/common.py:78
#: sickrage/core/common.py:79
msgid "Repeat"
msgstr "كرر"
#: sickrage/core/common.py:79
#: sickrage/core/common.py:80
msgid "Repeat (Separated)"
msgstr "تكرار (مفصولة)"
#: sickrage/core/common.py:80
#: sickrage/core/common.py:81
msgid "Duplicate"
msgstr "مكرر"
#: sickrage/core/common.py:81
#: sickrage/core/common.py:82
msgid "Extend"
msgstr "تمديد"
#: sickrage/core/common.py:82
#: sickrage/core/common.py:83
msgid "Extend (Limited)"
msgstr "تمديد (المحدودة)"
#: sickrage/core/common.py:83
#: sickrage/core/common.py:84
msgid "Extend (Limited, E-prefixed)"
msgstr "تمديد (محدودة، مسبوقة ه)"
#: sickrage/core/common.py:186 sickrage/core/common.py:612
#: sickrage/core/common.py:187 sickrage/core/common.py:612
msgid "Snatched (Proper)"
msgstr "وانتزع (سليم)"
#: sickrage/core/common.py:187 sickrage/core/common.py:617
msgid "Failed"
msgstr "فشل"
#: sickrage/core/common.py:188 sickrage/core/common.py:618
#: sickrage/core/common.py:188 sickrage/core/common.py:613
msgid "Snatched (Best)"
msgstr "وانتزع (أفضل)"
#: sickrage/core/common.py:189 sickrage/core/common.py:614
#: sickrage/core/common.py:189 sickrage/core/common.py:617
msgid "Archived"
msgstr "أرشفة"
#: sickrage/core/common.py:607
#: sickrage/core/common.py:190 sickrage/core/common.py:620
msgid "Failed"
msgstr "فشل"
#: sickrage/core/common.py:191 sickrage/core/common.py:621
msgid "Missed"
msgstr ""
#: sickrage/core/common.py:609
msgid "Unknown"
msgstr "المجهول"
#: sickrage/core/common.py:608
#: sickrage/core/common.py:610
msgid "Unaired"
msgstr "[اونيرد]"
#: sickrage/core/common.py:611
#: sickrage/core/common.py:615
msgid "Skipped"
msgstr "تخطي"
#: sickrage/core/common.py:613
#: sickrage/core/common.py:616
msgid "Wanted"
msgstr "مطلوبة"
#: sickrage/core/common.py:615
#: sickrage/core/common.py:618
msgid "Ignored"
msgstr "تجاهل"
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: sickragetv\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2018-05-13 10:02-0700\n"
"PO-Revision-Date: 2018-05-13 13:02-0400\n"
"POT-Creation-Date: 2018-05-13 22:39-0700\n"
"PO-Revision-Date: 2018-05-14 01:39-0400\n"
"Last-Translator: echel0n <[email protected]>\n"
"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
......@@ -510,18 +510,18 @@ msgstr "Proveïdor"
msgid "Quality"
msgstr "Qualitat"
#: sickrage/core/common.py:185 sickrage/core/common.py:609
#: sickrage/core/common.py:186 sickrage/core/common.py:611
#: sickrage/core/webserver/views/history.mako:132
#: sickrage/core/webserver/views/layouts/main.mako:450
msgid "Snatched"
msgstr "Va arrabassar"
#: sickrage/core/common.py:184 sickrage/core/common.py:610
#: sickrage/core/common.py:185 sickrage/core/common.py:614
#: sickrage/core/webserver/views/history.mako:133
msgid "Downloaded"
msgstr "Descarregat"
#: sickrage/core/common.py:616
#: sickrage/core/common.py:619
#: sickrage/core/webserver/views/config/providers.mako:885
#: sickrage/core/webserver/views/history.mako:135
msgid "Subtitled"
......@@ -4578,13 +4578,13 @@ msgid "Missed:"
msgstr "Es va perdre:"
#: sickrage/core/webserver/views/home/display_show.mako:428
#: sickrage/core/webserver/views/manage/backlog_overview.mako:23
#: sickrage/core/webserver/views/manage/backlog_overview.mako:22
#: sickrage/core/webserver/views/manage/backlog_overview.mako:62
msgid "Wanted:"
msgstr "Buscat:"
#: sickrage/core/webserver/views/home/display_show.mako:434
#: sickrage/core/webserver/views/manage/backlog_overview.mako:24
#: sickrage/core/webserver/views/manage/backlog_overview.mako:23
#: sickrage/core/webserver/views/manage/backlog_overview.mako:64
msgid "Low Quality:"
msgstr "Baixa qualitat:"
......@@ -5939,63 +5939,67 @@ msgstr "Selecciona-ho tot"
msgid "Clear all"
msgstr "Esborra-ho tot"
#: sickrage/core/common.py:78
#: sickrage/core/common.py:79
msgid "Repeat"
msgstr "Repetir"
#: sickrage/core/common.py:79
#: sickrage/core/common.py:80
msgid "Repeat (Separated)"
msgstr "Repetició (separat)"
#: sickrage/core/common.py:80
#: sickrage/core/common.py:81
msgid "Duplicate"
msgstr "Duplicat"
#: sickrage/core/common.py:81
#: sickrage/core/common.py:82
msgid "Extend"
msgstr "Estendre"
#: sickrage/core/common.py:82
#: sickrage/core/common.py:83
msgid "Extend (Limited)"
msgstr "Estendre (limitat)"
#: sickrage/core/common.py:83
#: sickrage/core/common.py:84
msgid "Extend (Limited, E-prefixed)"
msgstr "Estendre (limitat, E-prefix)"
#: sickrage/core/common.py:186 sickrage/core/common.py:612
#: sickrage/core/common.py:187 sickrage/core/common.py:612
msgid "Snatched (Proper)"
msgstr "Va arrabassar (apropiada)"
#: sickrage/core/common.py:187 sickrage/core/common.py:617
msgid "Failed"
msgstr "Ha fallat"
#: sickrage/core/common.py:188 sickrage/core/common.py:618
#: sickrage/core/common.py:188 sickrage/core/common.py:613
msgid "Snatched (Best)"
msgstr "Va arrabassar (millor)"
#: sickrage/core/common.py:189 sickrage/core/common.py:614
#: sickrage/core/common.py:189 sickrage/core/common.py:617
msgid "Archived"
msgstr "Arxivats"
#: sickrage/core/common.py:607
#: sickrage/core/common.py:190 sickrage/core/common.py:620
msgid "Failed"
msgstr "Ha fallat"
#: sickrage/core/common.py:191 sickrage/core/common.py:621
msgid "Missed"
msgstr ""
#: sickrage/core/common.py:609
msgid "Unknown"
msgstr "Desconegut"
#: sickrage/core/common.py:608
#: sickrage/core/common.py:610
msgid "Unaired"
msgstr "Unaired"
#: sickrage/core/common.py:611
#: sickrage/core/common.py:615
msgid "Skipped"
msgstr "S'ha omès"
#: sickrage/core/common.py:613
#: sickrage/core/common.py:616
msgid "Wanted"
msgstr "Volia"
#: sickrage/core/common.py:615
#: sickrage/core/common.py:618
msgid "Ignored"
msgstr "Ignorat"
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: sickragetv\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2018-05-13 10:02-0700\n"
"PO-Revision-Date: 2018-05-13 13:02-0400\n"
"POT-Creation-Date: 2018-05-13 22:39-0700\n"
"PO-Revision-Date: 2018-05-14 01:39-0400\n"
"Last-Translator: echel0n <[email protected]>\n"
"Language-Team: Czech\n"
"MIME-Version: 1.0\n"
......@@ -510,18 +510,18 @@ msgstr "Poskytovatel"
msgid "Quality"
msgstr "Kvalita"
#: sickrage/core/common.py:185 sickrage/core/common.py:609
#: sickrage/core/common.py:186 sickrage/core/common.py:611
#: sickrage/core/webserver/views/history.mako:132
#: sickrage/core/webserver/views/layouts/main.mako:450
msgid "Snatched"
msgstr "Vytrhla"
#: sickrage/core/common.py:184 sickrage/core/common.py:610
#: sickrage/core/common.py:185 sickrage/core/common.py:614
#: sickrage/core/webserver/views/history.mako:133
msgid "Downloaded"
msgstr "Stáhnout"
#: sickrage/core/common.py:616
#: sickrage/core/common.py:619
#: sickrage/core/webserver/views/config/providers.mako:885
#: sickrage/core/webserver/views/history.mako:135
msgid "Subtitled"
......@@ -4578,13 +4578,13 @@ msgid "Missed:"
msgstr "Minul:"
#: sickrage/core/webserver/views/home/display_show.mako:428
#: sickrage/core/webserver/views/manage/backlog_overview.mako:23
#: sickrage/core/webserver/views/manage/backlog_overview.mako:22
#: sickrage/core/webserver/views/manage/backlog_overview.mako:62
msgid "Wanted:"
msgstr "Hledá se:"
#: sickrage/core/webserver/views/home/display_show.mako:434
#: sickrage/core/webserver/views/manage/backlog_overview.mako:24
#: sickrage/core/webserver/views/manage/backlog_overview.mako:23
#: sickrage/core/webserver/views/manage/backlog_overview.mako:64
msgid "Low Quality:"
msgstr "Nízká kvalita:"
......@@ -5939,63 +5939,67 @@ msgstr "Vybrat vše"
msgid "Clear all"
msgstr "Vymazat vše"
#: sickrage/core/common.py:78
#: sickrage/core/common.py:79
msgid "Repeat"
msgstr "Opakovat"
#: sickrage/core/common.py:79
#: sickrage/core/common.py:80
msgid "Repeat (Separated)"
msgstr "Opakování (oddělené)"
#: sickrage/core/common.py:80
#: sickrage/core/common.py:81
msgid "Duplicate"
msgstr "Duplikovat"
#: sickrage/core/common.py:81
#: sickrage/core/common.py:82
msgid "Extend"
msgstr "Rozšířit"
#: sickrage/core/common.py:82
#: sickrage/core/common.py:83
msgid "Extend (Limited)"
msgstr "Rozšířit (Limited)"
#: sickrage/core/common.py:83
#: sickrage/core/common.py:84
msgid "Extend (Limited, E-prefixed)"