Commit 06f43225 authored by echel0n's avatar echel0n
Browse files

Merge branch 'release/10.0.60'

parents 8e5e7aad 153f23b7
...@@ -2,8 +2,14 @@ ...@@ -2,8 +2,14 @@
   
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
   
#### [10.0.60](https://git.sickrage.ca/SiCKRAGE/sickrage/compare/10.0.59...10.0.60)
- added in missing mimetype mkv [`956a357`](https://git.sickrage.ca/SiCKRAGE/sickrage/commit/956a357160f4377e8ea2b0f86331394c322b71e4)
#### [10.0.59](https://git.sickrage.ca/SiCKRAGE/sickrage/compare/10.0.58...10.0.59) #### [10.0.59](https://git.sickrage.ca/SiCKRAGE/sickrage/compare/10.0.58...10.0.59)
   
> 6 May 2022
- resolved gettext and fstring issues [`182a6c0`](https://git.sickrage.ca/SiCKRAGE/sickrage/commit/182a6c0ae9b368a57c566965e6d65d1339786378) - resolved gettext and fstring issues [`182a6c0`](https://git.sickrage.ca/SiCKRAGE/sickrage/commit/182a6c0ae9b368a57c566965e6d65d1339786378)
- updated english translations [`2f4b447`](https://git.sickrage.ca/SiCKRAGE/sickrage/commit/2f4b447824dfcb2dfa0e8edd429f1cba9cf6e184) - updated english translations [`2f4b447`](https://git.sickrage.ca/SiCKRAGE/sickrage/commit/2f4b447824dfcb2dfa0e8edd429f1cba9cf6e184)
- added retries for rarbg search provider [`dc46165`](https://git.sickrage.ca/SiCKRAGE/sickrage/commit/dc4616541ba350e8f3848cc3cbc9250eb8be2d22) - added retries for rarbg search provider [`dc46165`](https://git.sickrage.ca/SiCKRAGE/sickrage/commit/dc4616541ba350e8f3848cc3cbc9250eb8be2d22)
......
{ {
"name": "sickrage", "name": "sickrage",
"version": "10.0.59", "version": "10.0.60",
"private": true, "private": true,
"repository": { "repository": {
"type": "git", "type": "git",
......
[bumpversion] [bumpversion]
current_version = 10.0.59 current_version = 10.0.60
commit = False commit = False
tag = False tag = False
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<release>[a-z]+)(?P<dev>\d+))? parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<release>[a-z]+)(?P<dev>\d+))?
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
# along with SiCKRAGE. If not, see <http://www.gnu.org/licenses/>. # along with SiCKRAGE. If not, see <http://www.gnu.org/licenses/>.
# ############################################################################## # ##############################################################################
__version__ = "10.0.59" __version__ = "10.0.60"
__install_type__ = "" __install_type__ = ""
import argparse import argparse
......
sickrage/checksums.md5 = d41d8cd98f00b204e9800998ecf8427e sickrage/checksums.md5 = d41d8cd98f00b204e9800998ecf8427e
sickrage/__init__.py = 5a7614e57f66bde348965f582943ab11 sickrage/__init__.py = 4a77152359d0934c913d97fc1e9118f8
sickrage/version.txt = 916d0cd29891064f5b68f0ddf7ff36e7 sickrage/version.txt = 564287ddf17394e5127657f63a8d1080
sickrage/clients/__init__.py = abafc862109398700c9fee676cdeef6b sickrage/clients/__init__.py = abafc862109398700c9fee676cdeef6b
sickrage/clients/nzb/nzbget.py = 2a23083d4915fed22c73f4966588cac8 sickrage/clients/nzb/nzbget.py = 2a23083d4915fed22c73f4966588cac8
sickrage/clients/nzb/sabnzbd.py = f76666e47017abaf366f4a3e8b71c47b sickrage/clients/nzb/sabnzbd.py = f76666e47017abaf366f4a3e8b71c47b
...@@ -16,7 +16,7 @@ sickrage/clients/torrent/mlnet.py = 0e73345f3516a57eeaf9dea40ecbbddc ...@@ -16,7 +16,7 @@ sickrage/clients/torrent/mlnet.py = 0e73345f3516a57eeaf9dea40ecbbddc
sickrage/clients/torrent/putio.py = e3635cb458be1bd9e6dbdf10ceaa2bd4 sickrage/clients/torrent/putio.py = e3635cb458be1bd9e6dbdf10ceaa2bd4
sickrage/clients/torrent/deluged.py = f7291242ab46a4668c0b54cd7821dff0 sickrage/clients/torrent/deluged.py = f7291242ab46a4668c0b54cd7821dff0
sickrage/clients/torrent/__init__.py = 014e84083401e6b05a9626cb29bd8467 sickrage/clients/torrent/__init__.py = 014e84083401e6b05a9626cb29bd8467
sickrage/locale/messages.pot = 49084558c02703257f4af98fe785e3cf sickrage/locale/messages.pot = 70e7db29b3ed5bfe7e6df48bee008394
sickrage/locale/no_NO/LC_MESSAGES/messages.po = 665add0ac4385bce84e16cb1dba3267a sickrage/locale/no_NO/LC_MESSAGES/messages.po = 665add0ac4385bce84e16cb1dba3267a
sickrage/locale/no_NO/LC_MESSAGES/messages.json = a8e45d067d9f0e279a23e959db8fa1e7 sickrage/locale/no_NO/LC_MESSAGES/messages.json = a8e45d067d9f0e279a23e959db8fa1e7
sickrage/locale/no_NO/LC_MESSAGES/messages.mo = 81d7c78f3be5a5c414493c37657a1097 sickrage/locale/no_NO/LC_MESSAGES/messages.mo = 81d7c78f3be5a5c414493c37657a1097
...@@ -50,9 +50,9 @@ sickrage/locale/zh_TW/LC_MESSAGES/messages.mo = d946e6bf24f511ffa16bd567484998fb ...@@ -50,9 +50,9 @@ sickrage/locale/zh_TW/LC_MESSAGES/messages.mo = d946e6bf24f511ffa16bd567484998fb
sickrage/locale/el_GR/LC_MESSAGES/messages.po = 9d8087cfea2d4348f804c043f3d3e740 sickrage/locale/el_GR/LC_MESSAGES/messages.po = 9d8087cfea2d4348f804c043f3d3e740
sickrage/locale/el_GR/LC_MESSAGES/messages.json = d0043052f4d192e19eaec90b2d907e5d sickrage/locale/el_GR/LC_MESSAGES/messages.json = d0043052f4d192e19eaec90b2d907e5d
sickrage/locale/el_GR/LC_MESSAGES/messages.mo = e6c8522c5232bd7835e5f85c0e5d93f3 sickrage/locale/el_GR/LC_MESSAGES/messages.mo = e6c8522c5232bd7835e5f85c0e5d93f3
sickrage/locale/en_US/LC_MESSAGES/messages.po = 591d7a7b034d3795d9ee68c961fcdd68 sickrage/locale/en_US/LC_MESSAGES/messages.po = 6da8949c4e2ceede4fccb1711d96adab
sickrage/locale/en_US/LC_MESSAGES/messages.json = 34be851b221b72688c9c5c7caa9f450a sickrage/locale/en_US/LC_MESSAGES/messages.json = 34be851b221b72688c9c5c7caa9f450a
sickrage/locale/en_US/LC_MESSAGES/messages.mo = 605f4311f5a0882c3ada126619d277a5 sickrage/locale/en_US/LC_MESSAGES/messages.mo = 59ae88953ca0b73db48740cd056cea00
sickrage/locale/ar_SA/LC_MESSAGES/messages.po = 905109fc0c7ea4b653122b7397d2d55b sickrage/locale/ar_SA/LC_MESSAGES/messages.po = 905109fc0c7ea4b653122b7397d2d55b
sickrage/locale/ar_SA/LC_MESSAGES/messages.json = 8c47f610aec954cc75530578b9e1af6a sickrage/locale/ar_SA/LC_MESSAGES/messages.json = 8c47f610aec954cc75530578b9e1af6a
sickrage/locale/ar_SA/LC_MESSAGES/messages.mo = 40c217dfcc15eef7b61ddab8318825cc sickrage/locale/ar_SA/LC_MESSAGES/messages.mo = 40c217dfcc15eef7b61ddab8318825cc
...@@ -172,7 +172,7 @@ sickrage/metadata_providers/tivo.py = d690a863583e1e867c406228e192217f ...@@ -172,7 +172,7 @@ sickrage/metadata_providers/tivo.py = d690a863583e1e867c406228e192217f
sickrage/series_providers/helpers.py = 20f4de562e6bdbab2e6baa6d54cadd6a sickrage/series_providers/helpers.py = 20f4de562e6bdbab2e6baa6d54cadd6a
sickrage/series_providers/exceptions.py = 6b85b3a3a22ec33db1aff5b4244ae78c sickrage/series_providers/exceptions.py = 6b85b3a3a22ec33db1aff5b4244ae78c
sickrage/series_providers/cache.py = 633c4957cd49472265794310c6f31ad1 sickrage/series_providers/cache.py = 633c4957cd49472265794310c6f31ad1
sickrage/series_providers/thetvdb.py = 6261d5d7be6e284974aa4eac3d45a11c sickrage/series_providers/thetvdb.py = 529b60fcd23e61681f4b6c828d2337ac
sickrage/series_providers/__init__.py = 1ce8ff5179635877f3e42fe4f0bd3d71 sickrage/series_providers/__init__.py = 1ce8ff5179635877f3e42fe4f0bd3d71
sickrage/notification_providers/libnotify.py = 36f35e6ea22d9abbefd94916eb60507b sickrage/notification_providers/libnotify.py = 36f35e6ea22d9abbefd94916eb60507b
sickrage/notification_providers/pushover.py = 82f4deeae4c78ad24cc5520d3d821e48 sickrage/notification_providers/pushover.py = 82f4deeae4c78ad24cc5520d3d821e48
...@@ -246,7 +246,7 @@ sickrage/core/helpers/compat.py = 13a5ce81a9ef355d983d0803c282339d ...@@ -246,7 +246,7 @@ sickrage/core/helpers/compat.py = 13a5ce81a9ef355d983d0803c282339d
sickrage/core/helpers/encryption.py = 8a74f080644fcfe249e56e8a31c2f62e sickrage/core/helpers/encryption.py = 8a74f080644fcfe249e56e8a31c2f62e
sickrage/core/helpers/srdatetime.py = 1ec93b21792f45dbcd8a574c02db4d34 sickrage/core/helpers/srdatetime.py = 1ec93b21792f45dbcd8a574c02db4d34
sickrage/core/helpers/browser.py = 6da2ce70dea2674b01543ad1a4f216b2 sickrage/core/helpers/browser.py = 6da2ce70dea2674b01543ad1a4f216b2
sickrage/core/helpers/__init__.py = 74300c3667346e7b899d1c1e99e35f95 sickrage/core/helpers/__init__.py = e1d62199754a5212748ae4a36ff332e7
sickrage/core/logger/__init__.py = 2625a5f175cfaa15fdfa405eb0048c49 sickrage/core/logger/__init__.py = 2625a5f175cfaa15fdfa405eb0048c49
sickrage/core/updaters/show_updater.py = 878333d1124ffff735a51552042e69c0 sickrage/core/updaters/show_updater.py = 878333d1124ffff735a51552042e69c0
sickrage/core/updaters/tz_updater.py = 45ce45d6e44e5b8ab28bda9520200514 sickrage/core/updaters/tz_updater.py = 45ce45d6e44e5b8ab28bda9520200514
...@@ -353,7 +353,7 @@ sickrage/core/webserver/handlers/manage/queues.py = f92d4a8b34b1872e529886f4aa80 ...@@ -353,7 +353,7 @@ sickrage/core/webserver/handlers/manage/queues.py = f92d4a8b34b1872e529886f4aa80
sickrage/core/webserver/handlers/manage/__init__.py = 6b79f83afdd5565b06310e22245f882b sickrage/core/webserver/handlers/manage/__init__.py = 6b79f83afdd5565b06310e22245f882b
sickrage/core/webserver/handlers/api/schemas.py = 7fcfd3dee63378ba5bd8fcbaebbf49ef sickrage/core/webserver/handlers/api/schemas.py = 7fcfd3dee63378ba5bd8fcbaebbf49ef
sickrage/core/webserver/handlers/api/__init__.py = d4e5ae21437bff15091baf20e3632059 sickrage/core/webserver/handlers/api/__init__.py = d4e5ae21437bff15091baf20e3632059
sickrage/core/webserver/handlers/api/v1/__init__.py = d93a4b1481e3dc5d15932ad460d0eb11 sickrage/core/webserver/handlers/api/v1/__init__.py = 07e1cf8ba7e91a89b582f7df8547167f
sickrage/core/webserver/handlers/api/v2/__init__.py = 331c145796355d52ae1818bf9fd69ced sickrage/core/webserver/handlers/api/v2/__init__.py = 331c145796355d52ae1818bf9fd69ced
sickrage/core/webserver/handlers/api/v2/file_browser/schemas.py = 014e84083401e6b05a9626cb29bd8467 sickrage/core/webserver/handlers/api/v2/file_browser/schemas.py = 014e84083401e6b05a9626cb29bd8467
sickrage/core/webserver/handlers/api/v2/file_browser/__init__.py = 5e348f6f96a80a98dca3ae2b9151ac33 sickrage/core/webserver/handlers/api/v2/file_browser/__init__.py = 5e348f6f96a80a98dca3ae2b9151ac33
...@@ -433,7 +433,7 @@ sickrage/core/webserver/static/images/backdrops/config.jpg = ddbe8915317f7860d91 ...@@ -433,7 +433,7 @@ sickrage/core/webserver/static/images/backdrops/config.jpg = ddbe8915317f7860d91
sickrage/core/webserver/static/images/backdrops/home.jpg = 804dfc976638bbf45df310a3627e2d5c sickrage/core/webserver/static/images/backdrops/home.jpg = 804dfc976638bbf45df310a3627e2d5c
sickrage/core/webserver/static/images/backdrops/schedule.jpg = 0c0e5f4dcee42bfcfb73de100f1d3015 sickrage/core/webserver/static/images/backdrops/schedule.jpg = 0c0e5f4dcee42bfcfb73de100f1d3015
sickrage/core/webserver/static/images/backdrops/history.jpg = b4911bfe3ec57a894b5a16fa1ab479cf sickrage/core/webserver/static/images/backdrops/history.jpg = b4911bfe3ec57a894b5a16fa1ab479cf
sickrage/core/webserver/static/js/core.min.js = 59e826b45ec60b5079e7e9511801374a sickrage/core/webserver/static/js/core.min.js = 0f311a4622469c3edd1125778d64538d
sickrage/core/webserver/static/js/core.js.map = cdf19c1422438fb68dd84471031b2c56 sickrage/core/webserver/static/js/core.js.map = cdf19c1422438fb68dd84471031b2c56
sickrage/core/webserver/views/login.mako = 3f6c8e8325928539d6bb70a77b378116 sickrage/core/webserver/views/login.mako = 3f6c8e8325928539d6bb70a77b378116
sickrage/core/webserver/views/login_failed.mako = 5684d10edff37970a2285d7d5bb815eb sickrage/core/webserver/views/login_failed.mako = 5684d10edff37970a2285d7d5bb815eb
......
...@@ -63,12 +63,14 @@ from sickrage.core.enums import TorrentMethod ...@@ -63,12 +63,14 @@ from sickrage.core.enums import TorrentMethod
from sickrage.core.helpers import encryption from sickrage.core.helpers import encryption
from sickrage.core.websession import WebSession from sickrage.core.websession import WebSession
mimetypes.add_type('video/x-matroska', '.mkv')
mimetypes.add_type('video/divx', '.divx') mimetypes.add_type('video/divx', '.divx')
mimetypes.add_type("video/x-flv", ".flv") mimetypes.add_type("video/x-flv", ".flv")
mimetypes.add_type("video/x-f4v", ".f4v") mimetypes.add_type("video/x-f4v", ".f4v")
mimetypes.add_type("video/x-dvd-iso", ".iso") mimetypes.add_type("video/x-dvd-iso", ".iso")
mimetypes.add_type("video/x-dvd-iso", ".img") mimetypes.add_type("video/x-dvd-iso", ".img")
mimetypes.add_type("video/x-dvd-iso", ".nrg") mimetypes.add_type("video/x-dvd-iso", ".nrg")
mimetypes.add_type("video/x-dvd-iso", ".ifo")
mimetypes.add_type("video/dvd", ".vob") mimetypes.add_type("video/dvd", ".vob")
mimetypes.add_type("video/mpeg", ".wtv") mimetypes.add_type("video/mpeg", ".wtv")
mimetypes.add_type("application/x-bittorrent", ".torrent") mimetypes.add_type("application/x-bittorrent", ".torrent")
......
...@@ -318,6 +318,9 @@ class ApiV1Handler(ApiV1BaseHandler): ...@@ -318,6 +318,9 @@ class ApiV1Handler(ApiV1BaseHandler):
and to detect missing/required params and to detect missing/required params
""" """
if key == "series_id" and "tvdbid" in kwargs:
key = "tvdbid"
if key: if key:
missing = True missing = True
org_default = default org_default = default
...@@ -820,7 +823,9 @@ class CMD_EpisodeSetStatus(ApiV1Handler): ...@@ -820,7 +823,9 @@ class CMD_EpisodeSetStatus(ApiV1Handler):
self.series_provider_id, args = self.check_params("series_provider_id", sickrage.app.config.general.series_provider_default.value, False, "string", self.series_provider_id, args = self.check_params("series_provider_id", sickrage.app.config.general.series_provider_default.value, False, "string",
[x.name.lower() for x in SeriesProviderID], *args, **kwargs) [x.name.lower() for x in SeriesProviderID], *args, **kwargs)
self.s, args = self.check_params("season", None, True, "int", [], *args, **kwargs) self.s, args = self.check_params("season", None, True, "int", [], *args, **kwargs)
self.status, args = self.check_params("status", None, True, "string", ["WANTED", "SKIPPED", "IGNORED", "FAILED"], *args, **kwargs) self.status, args = self.check_params("status", None, True, "string",
[EpisodeStatus.WANTED.name.lower(), EpisodeStatus.SKIPPED.name.lower(), EpisodeStatus.IGNORED.name.lower(),
EpisodeStatus.FAILED.name.lower()], *args, **kwargs)
self.e, args = self.check_params("episode", None, False, "int", [], *args, **kwargs) self.e, args = self.check_params("episode", None, False, "int", [], *args, **kwargs)
self.force, args = self.check_params("force", False, False, "bool", [], *args, **kwargs) self.force, args = self.check_params("force", False, False, "bool", [], *args, **kwargs)
...@@ -831,7 +836,7 @@ class CMD_EpisodeSetStatus(ApiV1Handler): ...@@ -831,7 +836,7 @@ class CMD_EpisodeSetStatus(ApiV1Handler):
return _responds(RESULT_FAILURE, msg="Show not found") return _responds(RESULT_FAILURE, msg="Show not found")
# convert string status to EpisodeStatus # convert string status to EpisodeStatus
self.status = EpisodeStatus[self.status] self.status = EpisodeStatus[self.status.upper()]
if self.e: if self.e:
try: try:
...@@ -1111,6 +1116,8 @@ class CMD_Backlog(ApiV1Handler): ...@@ -1111,6 +1116,8 @@ class CMD_Backlog(ApiV1Handler):
if showEps: if showEps:
shows.append({ shows.append({
"series_id": s.series_id, "series_id": s.series_id,
"series_provider_id": s.series_provider.slug,
"tvdbid": map_series_providers(s.series_provider_id, s.series_id, s.name)[SeriesProviderID.THETVDB.name],
"show_name": s.name, "show_name": s.name,
"status": s.status, "status": s.status,
"episodes": showEps "episodes": showEps
...@@ -1545,22 +1552,24 @@ class CMD_SiCKRAGESearchSeriesProvider(ApiV1Handler): ...@@ -1545,22 +1552,24 @@ class CMD_SiCKRAGESearchSeriesProvider(ApiV1Handler):
return _responds(RESULT_SUCCESS, {"results": results, "langid": series_provider_language}) return _responds(RESULT_SUCCESS, {"results": results, "langid": series_provider_language})
elif self.series_id: elif self.series_id:
resp = series_provider.search(self.series_id, language=series_provider_language) resp = series_provider.search(str(self.series_id), language=series_provider_language)
if resp: if resp:
if not resp.get('name', None): for result in resp:
sickrage.app.log.debug("Found show with series_id: " + str(self.series_id) + ", however it contained no show name") if not result.get('name', None):
return _responds(RESULT_FAILURE, msg="Show contains no name, invalid result") continue
if not resp.get('firstAired', None): if not result.get('firstAired', None):
sickrage.app.log.debug("Found show with series_id: " + str(self.series_id) + ", however it contained no first air date") continue
return _responds(RESULT_FAILURE, msg="Show contains no first air date, invalid result")
if not result.get('id', None) == str(self.series_id):
continue
# found show # found show
results = [{ results = [{
'series_id': int(resp['id']), 'series_id': int(result['id']),
"name": resp['name'], "name": result['name'],
'first_aired': resp['firstAired'] 'first_aired': result['firstAired']
}] }]
return _responds(RESULT_SUCCESS, {"results": results, "langid": series_provider_language}) return _responds(RESULT_SUCCESS, {"results": results, "langid": series_provider_language})
...@@ -1622,8 +1631,7 @@ class CMD_SiCKRAGESetDefaults(ApiV1Handler): ...@@ -1622,8 +1631,7 @@ class CMD_SiCKRAGESetDefaults(ApiV1Handler):
self.future_show_paused, args = self.check_params("future_show_paused", None, False, "bool", [], *args, self.future_show_paused, args = self.check_params("future_show_paused", None, False, "bool", [], *args,
**kwargs) **kwargs)
self.flatten_folders, args = self.check_params("flatten_folders", None, False, "bool", [], *args, **kwargs) self.flatten_folders, args = self.check_params("flatten_folders", None, False, "bool", [], *args, **kwargs)
self.status, args = self.check_params("status", None, False, "string", ["wanted", "skipped", "ignored"], *args, self.status, args = self.check_params("status", None, False, "string", ["wanted", "skipped", "ignored"], *args, **kwargs)
**kwargs)
def run(self): def run(self):
""" Set SiCKRAGE's user default configuration value """ """ Set SiCKRAGE's user default configuration value """
...@@ -1643,7 +1651,7 @@ class CMD_SiCKRAGESetDefaults(ApiV1Handler): ...@@ -1643,7 +1651,7 @@ class CMD_SiCKRAGESetDefaults(ApiV1Handler):
if self.status: if self.status:
# only allow the status options we want # only allow the status options we want
if self.status not in (EpisodeStatus.WANTED, EpisodeStatus.SKIPPED, EpisodeStatus.ARCHIVED, EpisodeStatus.IGNORED): if EpisodeStatus[self.status.upper()] not in (EpisodeStatus.WANTED, EpisodeStatus.SKIPPED, EpisodeStatus.ARCHIVED, EpisodeStatus.IGNORED):
raise InternalApiError("Status Prohibited") raise InternalApiError("Status Prohibited")
sickrage.app.config.general.status_default = self.status sickrage.app.config.general.status_default = self.status
...@@ -1757,7 +1765,7 @@ class CMD_Show(ApiV1Handler): ...@@ -1757,7 +1765,7 @@ class CMD_Show(ApiV1Handler):
showDict["skip_downloaded"] = (0, 1)[show_object.skip_downloaded] showDict["skip_downloaded"] = (0, 1)[show_object.skip_downloaded]
showDict["series_id"] = show_object.series_id showDict["series_id"] = show_object.series_id
showDict["series_provider_id"] = show_object.series_provider.name showDict["series_provider_id"] = show_object.series_provider.slug
showDict["tvdbid"] = map_series_providers(show_object.series_provider_id, show_object.series_id, show_object.name)[SeriesProviderID.THETVDB.name] showDict["tvdbid"] = map_series_providers(show_object.series_provider_id, show_object.series_id, show_object.name)[SeriesProviderID.THETVDB.name]
showDict["imdbid"] = show_object.imdb_id showDict["imdbid"] = show_object.imdb_id
...@@ -1804,11 +1812,9 @@ class CMD_ShowAddExisting(ApiV1Handler): ...@@ -1804,11 +1812,9 @@ class CMD_ShowAddExisting(ApiV1Handler):
self.initial, args = self.check_params("initial", None, False, "list", any_quality_list, *args, **kwargs) self.initial, args = self.check_params("initial", None, False, "list", any_quality_list, *args, **kwargs)
self.archive, args = self.check_params("archive", None, False, "list", best_quality_list, *args, **kwargs) self.archive, args = self.check_params("archive", None, False, "list", best_quality_list, *args, **kwargs)
self.skip_downloaded, args = self.check_params("skip_downloaded", None, False, "int", [], *args, **kwargs) self.skip_downloaded, args = self.check_params("skip_downloaded", None, False, "int", [], *args, **kwargs)
self.flatten_folders, args = self.check_params("flatten_folders", self.flatten_folders, args = self.check_params("flatten_folders", bool(sickrage.app.config.general.flatten_folders_default), False, "bool", [], *args,
bool(sickrage.app.config.general.flatten_folders_default), False, **kwargs)
"bool", [], *args, **kwargs) self.subtitles, args = self.check_params("subtitles", int(sickrage.app.config.subtitles.enable), False, "int", [], *args, **kwargs)
self.subtitles, args = self.check_params("subtitles", int(sickrage.app.config.subtitles.enable), False, "int",
[], *args, **kwargs)
def run(self): def run(self):
""" Add an existing show in SiCKRAGE """ """ Add an existing show in SiCKRAGE """
...@@ -1855,9 +1861,15 @@ class CMD_ShowAddExisting(ApiV1Handler): ...@@ -1855,9 +1861,15 @@ class CMD_ShowAddExisting(ApiV1Handler):
newQuality = Quality.combine_qualities(iqualityID, aqualityID) newQuality = Quality.combine_qualities(iqualityID, aqualityID)
sickrage.app.show_queue.add_show( sickrage.app.show_queue.add_show(
series_provider_id=SeriesProviderID[self.series_provider_id.upper()], series_id=int(self.series_id), showDir=self.location, series_provider_id=SeriesProviderID[self.series_provider_id.upper()],
default_status=sickrage.app.config.general.status_default, quality=newQuality, flatten_folders=int(self.flatten_folders), series_id=int(self.series_id),
subtitles=self.subtitles, default_status_after=sickrage.app.config.general.status_default_after, skip_downloaded=self.skip_downloaded showDir=self.location,
default_status=sickrage.app.config.general.status_default,
quality=newQuality,
flatten_folders=int(self.flatten_folders),
subtitles=self.subtitles,
default_status_after=sickrage.app.config.general.status_default_after,
skip_downloaded=self.skip_downloaded
) )
return _responds(RESULT_SUCCESS, {"name": series_name}, series_name + " has been queued to be added") return _responds(RESULT_SUCCESS, {"name": series_name}, series_name + " has been queued to be added")
...@@ -1902,13 +1914,18 @@ class CMD_ShowAddNew(ApiV1Handler): ...@@ -1902,13 +1914,18 @@ class CMD_ShowAddNew(ApiV1Handler):
self.archive, args = self.check_params("archive", None, False, "list", best_quality_list, *args, **kwargs) self.archive, args = self.check_params("archive", None, False, "list", best_quality_list, *args, **kwargs)
self.flatten_folders, args = self.check_params("flatten_folders", bool(sickrage.app.config.general.flatten_folders_default), False, "bool", [], *args, self.flatten_folders, args = self.check_params("flatten_folders", bool(sickrage.app.config.general.flatten_folders_default), False, "bool", [], *args,
**kwargs) **kwargs)
self.status, args = self.check_params("status", None, False, "string", ["wanted", "skipped", "ignored"], *args, **kwargs) self.status, args = self.check_params("status", None, False, "string",
[EpisodeStatus.WANTED.name.lower(), EpisodeStatus.SKIPPED.name.lower(), EpisodeStatus.IGNORED.name.lower()],
*args, **kwargs)
self.lang, args = self.check_params("lang", sickrage.app.config.general.series_provider_default_language, False, "string", [], *args, **kwargs) self.lang, args = self.check_params("lang", sickrage.app.config.general.series_provider_default_language, False, "string", [], *args, **kwargs)
self.subtitles, args = self.check_params("subtitles", bool(sickrage.app.config.subtitles.enable), False, "bool", [], *args, **kwargs) self.subtitles, args = self.check_params("subtitles", bool(sickrage.app.config.subtitles.enable), False, "bool", [], *args, **kwargs)
self.scene, args = self.check_params("scene", bool(sickrage.app.config.general.scene_default), False, "bool", [], *args, **kwargs) self.scene, args = self.check_params("scene", bool(sickrage.app.config.general.scene_default), False, "bool", [], *args, **kwargs)
self.anime, args = self.check_params("anime", bool(sickrage.app.config.general.anime_default), False, "bool", [], *args, **kwargs) self.anime, args = self.check_params("anime", bool(sickrage.app.config.general.anime_default), False, "bool", [], *args, **kwargs)
self.search_format, args = self.check_params("search_format", sickrage.app.config.general.search_format_default, False, "string", [], *args, **kwargs) self.search_format, args = self.check_params("search_format", sickrage.app.config.general.search_format_default.name.lower(), False, "string",
self.future_status, args = self.check_params("future_status", None, False, "string", ["wanted", "skipped", "ignored"], *args, **kwargs) [x.name.lower() for x in SearchFormat], *args, **kwargs)
self.future_status, args = self.check_params("future_status", None, False, "string",
[EpisodeStatus.WANTED.name.lower(), EpisodeStatus.SKIPPED.name.lower(),
EpisodeStatus.IGNORED.name.lower()], *args, **kwargs)
self.skip_downloaded, args = self.check_params("skip_downloaded", bool(sickrage.app.config.general.skip_downloaded_default), False, "bool", [], *args, self.skip_downloaded, args = self.check_params("skip_downloaded", bool(sickrage.app.config.general.skip_downloaded_default), False, "bool", [], *args,
**kwargs) **kwargs)
self.add_show_year, args = self.check_params("add_show_year", bool(sickrage.app.config.general.add_show_year_default), False, "bool", [], *args, self.add_show_year, args = self.check_params("add_show_year", bool(sickrage.app.config.general.add_show_year_default), False, "bool", [], *args,
...@@ -1932,6 +1949,17 @@ class CMD_ShowAddNew(ApiV1Handler): ...@@ -1932,6 +1949,17 @@ class CMD_ShowAddNew(ApiV1Handler):
if not os.path.isdir(self.location): if not os.path.isdir(self.location):
return _responds(RESULT_FAILURE, msg="'" + self.location + "' is not a valid location") return _responds(RESULT_FAILURE, msg="'" + self.location + "' is not a valid location")
# convert string status to EpisodeStatus
if self.status:
self.status = EpisodeStatus[self.status.upper()]
# convert string future status to EpisodeStatus
if self.future_status:
self.future_status = EpisodeStatus[self.future_status.upper()]
# convert string search format to SearchFormat
self.search_format = SearchFormat[self.search_format.upper()]
# use default quality as a failsafe # use default quality as a failsafe
new_quality = int(sickrage.app.config.general.quality_default) new_quality = int(sickrage.app.config.general.quality_default)
iquality_id = [] iquality_id = []
...@@ -2001,9 +2029,19 @@ class CMD_ShowAddNew(ApiV1Handler): ...@@ -2001,9 +2029,19 @@ class CMD_ShowAddNew(ApiV1Handler):
chmod_as_parent(show_path) chmod_as_parent(show_path)
sickrage.app.show_queue.add_show( sickrage.app.show_queue.add_show(
series_provider_id=SeriesProviderID[self.series_provider_id.upper()], series_id=int(self.series_id), showDir=show_path, default_status=new_status, series_provider_id=SeriesProviderID[self.series_provider_id.upper()],
quality=new_quality, flatten_folders=int(self.flatten_folders), lang=self.lang, subtitles=self.subtitles, anime=self.anime, scene=self.scene, series_id=int(self.series_id),
search_format=self.search_format, default_status_after=default_ep_status_after, skip_downloaded=self.skip_downloaded showDir=show_path,
default_status=new_status,
quality=new_quality,
flatten_folders=int(self.flatten_folders),
lang=self.lang,
subtitles=self.subtitles,
anime=self.anime,
scene=self.scene,
search_format=self.search_format,
default_status_after=default_ep_status_after,
skip_downloaded=self.skip_downloaded
) )
return _responds(RESULT_SUCCESS, {"name": series_name}, series_name + " has been queued to be added") return _responds(RESULT_SUCCESS, {"name": series_name}, series_name + " has been queued to be added")
...@@ -2350,7 +2388,7 @@ class CMD_ShowSeasons(ApiV1Handler): ...@@ -2350,7 +2388,7 @@ class CMD_ShowSeasons(ApiV1Handler):
self.series_id, args = self.check_params("series_id", None, True, "int", [], *args, **kwargs) self.series_id, args = self.check_params("series_id", None, True, "int", [], *args, **kwargs)
self.series_provider_id, args = self.check_params("series_provider_id", sickrage.app.config.general.series_provider_default.value, False, "string", self.series_provider_id, args = self.check_params("series_provider_id", sickrage.app.config.general.series_provider_default.value, False, "string",
[x.name.lower() for x in SeriesProviderID], *args, **kwargs) [x.name.lower() for x in SeriesProviderID], *args, **kwargs)
self.season, args = self.check_params("season", None, False, "int", [], *args, **kwargs) self.season, args = self.check_params("season", "2017", False, "int", [], *args, **kwargs)
def run(self): def run(self):
""" Get the list of episodes for one or all seasons of a show """ """ Get the list of episodes for one or all seasons of a show """
...@@ -2371,7 +2409,7 @@ class CMD_ShowSeasons(ApiV1Handler): ...@@ -2371,7 +2409,7 @@ class CMD_ShowSeasons(ApiV1Handler):
for row in db_data: for row in db_data:
episode_dict = row.as_dict() episode_dict = row.as_dict()
episode_dict['series_provider_id'] = SeriesProviderID(episode_dict['series_provider_id']).display_name episode_dict['series_provider_id'] = show_obj.series_provider.slug
status, quality = Quality.split_composite_status(int(episode_dict['status'])) status, quality = Quality.split_composite_status(int(episode_dict['status']))
episode_dict['status'] = status.display_name episode_dict['status'] = status.display_name
...@@ -2389,10 +2427,16 @@ class CMD_ShowSeasons(ApiV1Handler): ...@@ -2389,10 +2427,16 @@ class CMD_ShowSeasons(ApiV1Handler):
curSeason = int(episode_dict['season']) curSeason = int(episode_dict['season'])
curEpisode = int(episode_dict['episode']) curEpisode = int(episode_dict['episode'])
if curSeason not in seasons: if self.season is None:
seasons[curSeason] = {} if curSeason not in seasons:
seasons[curSeason] = {}
seasons[curSeason][curEpisode] = episode_dict
else:
if curEpisode not in seasons:
seasons[curEpisode] = {}
seasons[curSeason][curEpisode] = episode_dict seasons[curEpisode] = episode_dict
return _responds(RESULT_SUCCESS, seasons) return _responds(RESULT_SUCCESS, seasons)
...@@ -2623,7 +2667,8 @@ class CMD_Shows(ApiV1Handler): ...@@ -2623,7 +2667,8 @@ class CMD_Shows(ApiV1Handler):
"search_format": SearchFormat(curShow.search_format).display_name, "search_format": SearchFormat(curShow.search_format).display_name,
"anime": (0, 1)[curShow.anime], "anime": (0, 1)[curShow.anime],
"series_id": curShow.series_id, "series_id": curShow.series_id,
"series_provider_id": curShow.series_provider.name, "series_provider_id": curShow.series_provider.slug,
"tvdbid": map_series_providers(curShow.series_provider_id, curShow.series_id, curShow.name)[SeriesProviderID.THETVDB.name],
"network": curShow.network, "network": curShow.network,
"show_name": curShow.name, "show_name": curShow.name,
"status": curShow.status, "status": curShow.status,
......
...@@ -81729,7 +81729,7 @@ var debugs = {}; ...@@ -81729,7 +81729,7 @@ var debugs = {};
var debugEnviron; var debugEnviron;
exports.debuglog = function(set) { exports.debuglog = function(set) {
if (isUndefined(debugEnviron)) if (isUndefined(debugEnviron))
debugEnviron = Object({"SENTRY_DSN":'https://[email protected]/2',"PACKAGE_VERSION":"10.0.59"}).NODE_DEBUG || ''; debugEnviron = Object({"SENTRY_DSN":'https://[email protected]/2',"PACKAGE_VERSION":"10.0.60"}).NODE_DEBUG || '';
set = set.toUpperCase(); set = set.toUpperCase();
if (!debugs[set]) { if (!debugs[set]) {
if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
...@@ -82538,7 +82538,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de ...@@ -82538,7 +82538,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
   
Sentry.init({ Sentry.init({
dsn: 'https://[email protected]/2', dsn: 'https://[email protected]/2',
release: "10.0.59", release: "10.0.60",
beforeSend: function beforeSend(event, hint) { beforeSend: function beforeSend(event, hint) {
if (event.exception) { if (event.exception) {
event.exception.values[0].stacktrace.frames.forEach(function (frame) { event.exception.values[0].stacktrace.frames.forEach(function (frame) {
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: sickrage 10.0.59.dev1\n" "Project-Id-Version: sickrage 10.0.60.dev3\n"
"Report-Msgid-Bugs-To: [email protected]\n" "Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2022-05-06 08:56+0000\n" "POT-Creation-Date: 2022-05-08 00:12+0000\n"
"PO-Revision-Date: 2022-05-06 08:56+0000\n" "PO-Revision-Date: 2022-05-08 00:12+0000\n"
"Last-Translator: FULL NAME <[email protected]>\n" "Last-Translator: FULL NAME <[email protected]>\n"
"Language: en_US\n" "Language: en_US\n"
"Language-Team: en_US <[email protected]>\n" "Language-Team: en_US <[email protected]>\n"
...@@ -4168,7 +4168,7 @@ msgstr "" ...@@ -4168,7 +4168,7 @@ msgstr ""
msgid "Test Connection" msgid "Test Connection"
msgstr "" msgstr ""
#: sickrage/core/webserver/handlers/api/v1/__init__.py:948 #: sickrage/core/webserver/handlers/api/v1/__init__.py:953
#: sickrage/core/webserver/views/config/subtitles.mako:10 #: sickrage/core/webserver/views/config/subtitles.mako:10
#: sickrage/core/webserver/views/config/subtitles.mako:26 #: sickrage/core/webserver/views/config/subtitles.mako:26
#: sickrage/core/webserver/views/home/display_show.mako:725 #: sickrage/core/webserver/views/home/display_show.mako:725
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: sickrage 10.0.59.dev1\n" "Project-Id-Version: sickrage 10.0.60.dev