Commit 8c2de029 authored by echel0n's avatar echel0n
Browse files

Merge branch 'release/9.3.60'

parents 126f2677 ebd6252d
# Changelog
- * ba44b3c - 2018-08-24: Release v9.3.59
- * a3cfd56 - 2018-08-26: Release v9.3.60
- * a92e6b5 - 2018-08-26: Fixed issue with TheTVDB cache storing dict keys as strings instead of integer
- * 1b42b83 - 2018-08-26: Pre-Release v9.3.60.dev1
- * 55e4104 - 2018-08-26: Fixed issue where click event for adding root folders was being fired more then twice.
- * ec16f20 - 2018-08-25: Suppressed InsecureRequestWarnings
- * 8b6981b - 2018-08-25: Fixed unicode issues with timezone updater
- * 9797220 - 2018-08-25: Fixed spacing for status view
- * 8279ece - 2018-08-24: Fixed quality badge for manual searches
- * fb31d87 - 2018-08-24: Release v9.3.59
- * 2a1d2ce - 2018-08-24: Pre-Release v9.3.59.dev3
- * b18bd58 - 2018-08-24: Misc improvements made to websockets code
- * a1cc57d - 2018-08-24: Pre-Release v9.3.59.dev2
......
......@@ -97,20 +97,19 @@ class TraktSearcher(object):
self.amActive = False
def syncWatchlist(self):
if sickrage.app.config.trakt_sync_watchlist and sickrage.app.config.use_trakt:
sickrage.app.log.debug("Syncing SiCKRAGE with Trakt Watchlist")
sickrage.app.log.debug("Syncing SiCKRAGE with Trakt Watchlist")
self.removeShowFromSickRage()
self.removeShowFromSickRage()
if self._getShowWatchlist():
self.addShowToTraktWatchList()
self.updateShows()
if self._getShowWatchlist():
self.addShowToTraktWatchList()
self.updateShows()
if self._getEpisodeWatchlist():
self.addEpisodesToTraktWatchList()
if sickrage.app.config.trakt_remove_show_from_sickrage:
self.removeEpisodesFromTraktWatchList()
self.updateEpisodes()
if self._getEpisodeWatchlist():
self.addEpisodesToTraktWatchList()
if sickrage.app.config.trakt_remove_show_from_sickrage:
self.removeEpisodesFromTraktWatchList()
self.updateEpisodes()
def syncCollection(self):
sickrage.app.log.debug("Syncing SiCKRAGE with Trakt Collection")
......
......@@ -133,8 +133,7 @@ class ProgressIndicator:
class ProgressIndicators():
_pi = {'massUpdate': [],
'massAdd': [],
'dailyShowUpdates': []
}
'dailyShowUpdates': []}
@staticmethod
def getIndicator(name):
......
......@@ -27,6 +27,7 @@ from dateutil import tz
import sickrage
from sickrage.core.helpers import try_int
from sickrage.core.helpers.encoding import ss
from sickrage.core.websession import WebSession
network_dict = {}
......@@ -65,7 +66,7 @@ def update_network_dict():
except RecordNotFound:
sickrage.app.cache_db.insert({
'_t': 'network_timezones',
'network_name': network,
'network_name': ss(network),
'timezone': timezone
})
elif network_dict[network] is not timezone:
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -19,19 +19,19 @@
<div class="stepwizard-step col-auto">
<a href="#step-1" class="btn btn-success btn-circle">1</a>
<p>
<small>${_('Find A Show')}</small>
<small class="text-white">${_('Find A Show')}</small>
</p>
</div>
<div class="stepwizard-step col-auto">
<a href="#step-2" class="btn btn-dark btn-circle disabled">2</a>
<p>
<small>${_('Pick A Folder')}</small>
<small class="text-white">${_('Pick A Folder')}</small>
</p>
</div>
<div class="stepwizard-step col-auto">
<a href="#step-3" class="btn btn-dark btn-circle disabled">3</a>
<p>
<small>${_('Custom Options')}</small>
<small class="text-white">${_('Custom Options')}</small>
</p>
</div>
</div>
......
......@@ -28,7 +28,7 @@
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="card">
<div class="card mb-3">
<div class="card-header">
<h3>${_('Scheduler')}</h3>
</div>
......@@ -105,7 +105,7 @@
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="card mt-1 mb-3">
<div class="card mb-3">
<div class="card-header">
<h3>${_('Show Queue')}</h3>
</div>
......@@ -195,12 +195,12 @@
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="card mt-1 mb-3">
<div class="card mb-3">
<div class="card-header">
<h3>${_('Disk Space')}</h3>
</div>
<div class="card-body">
<table id="DFStatusTable" class="table" width="50%">
<table id="DFStatusTable" class="table" width="100%">
<thead>
<tr>
<th>${_('Type')}</th>
......
......@@ -23,7 +23,7 @@
</div>
<div class="col-lg-9 col-md-8 col-sm-7 component-desc">
<label>
<input class="cb" type="checkbox" class="toggle color-primary is-material" name="flatten_folders"
<input type="checkbox" class="toggle color-primary is-material" name="flatten_folders"
id="flatten_folders" ${('', 'checked')[bool(sickrage.app.config.flatten_folders_default)]}/>
</label>
</div>
......
......@@ -44,10 +44,9 @@
cssClass = "Custom"
qualityString = "Custom"
if overrideClass is None:
cssClass = "badge " + cssClass
else:
cssClass = "badge text-white " + cssClass
if overrideClass:
cssClass = overrideClass
%>
<span ${title} class="${cssClass} text-white">${qualityString}</span>
<span ${title} class="${cssClass}">${qualityString}</span>
</%def>
......@@ -21,8 +21,7 @@
<span class="fas fa-folder-open"></span>
</span>
</div>
<select name="rootDir" id="rootDirs" size="6" class="form-control"
title="${_('Root Directories')}">
<select name="rootDir" id="rootDirs" size="6" class="form-control" title="${_('Root Directories')}">
% for cur_dir in backend_dirs:
<option value="${cur_dir}">${cur_dir}</option>
% endfor
......
......@@ -23,12 +23,13 @@ import ssl
import urllib2
import certifi
import cfscrape as cfscrape
import cfscrape
import requests
from cachecontrol import CacheControlAdapter
from fake_useragent import UserAgent
from requests import Session
from requests.utils import dict_from_cookiejar
from urllib3 import disable_warnings
import sickrage
from sickrage.core.helpers import chmodAsParent, remove_file_failed
......@@ -74,6 +75,8 @@ class WebSession(Session):
self.headers.update({'Accept-Encoding': 'gzip, deflate',
'User-Agent': (sickrage.app.user_agent, UserAgent().random)[random_ua]})
if not verify: disable_warnings()
response = super(WebSession, self).request(method, url, verify=self._get_ssl_cert(verify), *args, **kwargs)
try:
......
......@@ -314,7 +314,15 @@ class Tvdb:
if os.path.isfile(os.path.join(sickrage.app.data_dir, 'thetvdb.json')):
with io.open(os.path.join(sickrage.app.data_dir, 'thetvdb.json'), 'rb') as fp:
try:
self.shows = ShowCache(json.load(fp))
def json_keys2int(x):
if isinstance(x, dict):
try:
return {int(k): v for k, v in x.items()}
except ValueError:
pass
return x
self.shows = ShowCache(json.load(fp, object_hook=json_keys2int))
except:
pass
......
......@@ -26,7 +26,7 @@ from .util import _getLogger
def interface_addresses(family=socket.AF_INET):
try:
for fam, _, _, _, sockaddr in socket.getaddrinfo('', None):
for fam, __, __, __, sockaddr in socket.getaddrinfo('', None):
if family == fam:
yield sockaddr[0]
except socket.gaierror:
......
......@@ -467,7 +467,7 @@ class Action(object):
# Marshall the response to python data types
out = {}
for name, statevar in self.argsdef_out:
_, value = marshal_value(statevar['datatype'], soap_response[name])
__, value = marshal_value(statevar['datatype'], soap_response[name])
out[name] = value
return out
......
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: sickragetv\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2018-08-24 17:54-0700\n"
"PO-Revision-Date: 2018-08-25 00:54\n"
"POT-Creation-Date: 2018-08-26 18:52-0700\n"
"PO-Revision-Date: 2018-08-27 01:53\n"
"Last-Translator: echel0n <[email protected]>\n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
......@@ -49,291 +49,291 @@ msgstr ""
msgid "this error with debug enabled before submitting"
msgstr ""
#: src/js/core.js:559 src/js/core.js:570 src/js/core.js:591
#: src/js/core.js:558 src/js/core.js:569 src/js/core.js:590
msgid "Searching"
msgstr "البحث"
#: src/js/core.js:565 src/js/core.js:596
#: src/js/core.js:564 src/js/core.js:595
msgid "Queued"
msgstr "في قائمة الانتظار"
#: sickrage/core/webserver/views/home/display_show.mako:709
#: sickrage/core/webserver/views/includes/modals.mako:54
#: sickrage/core/webserver/views/includes/modals.mako:75
#: sickrage/core/webserver/views/schedule.mako:196 src/js/core.js:600
#: sickrage/core/webserver/views/schedule.mako:196 src/js/core.js:599
msgid "Manual Search"
msgstr "البحث اليدوي"
#: sickrage/core/webserver/views/home/index.mako:304 src/js/core.js:625
#: src/js/core.js:771 src/js/core.js:814
#: sickrage/core/webserver/views/home/index.mako:304 src/js/core.js:624
#: src/js/core.js:770 src/js/core.js:813
msgid "loading"
msgstr "تحميل"
#: src/js/core.js:830
#: src/js/core.js:829
msgid "Choose Directory"
msgstr "اختيار دليل"
#: sickrage/core/webserver/views.py:3570 src/js/core.js:1467
#: sickrage/core/webserver/views.py:3570 src/js/core.js:1468
msgid "Clear History"
msgstr "مسح المحفوظات"
#: src/js/core.js:1468
#: src/js/core.js:1469
msgid "Are you sure you want to clear all download history ?"
msgstr "هل أنت متأكد من أنك تريد مسح كافة تاريخ التحميل؟"
#: sickrage/core/webserver/views.py:3572 src/js/core.js:1473
#: sickrage/core/webserver/views.py:3572 src/js/core.js:1474
msgid "Trim History"
msgstr "تقليم التاريخ"
#: src/js/core.js:1474
#: src/js/core.js:1475
msgid "Are you sure you want to trim all download history older than 30 days ?"
msgstr "هل أنت متأكد من أنك تريد تقليم كل حمل التاريخ الأقدم من 30 يوما؟"
#: sickrage/core/webserver/views/home/trakt_shows.mako:114 src/js/core.js:2175
#: sickrage/core/webserver/views/home/trakt_shows.mako:114 src/js/core.js:2173
msgid "Remove Show"
msgstr "إزالة عرض"
#: src/js/core.js:2176
#: src/js/core.js:2174
msgid "Are you sure you want to remove"
msgstr ""
#: src/js/core.js:2176
#: src/js/core.js:2174
msgid " from the database?"
msgstr ""
#: src/js/core.js:2176
#: src/js/core.js:2174
msgid "Check to delete files as well. IRREVERSIBLE"
msgstr ""
#: src/js/core.js:2229 src/js/core.js:2261
#: src/js/core.js:2227 src/js/core.js:2259
msgid "Update failed."
msgstr "فشل تحديث."
#: src/js/core.js:2272
#: src/js/core.js:2270
msgid "Select Show Location"
msgstr "حدد موقع العرض"
#: src/js/core.js:2411
#: src/js/core.js:2412
msgid "loading folders..."
msgstr ""
#: src/js/core.js:2427
#: src/js/core.js:2428
msgid "Select Unprocessed Episode Folder"
msgstr "حدد مجلد الحلقة غير المجهزة"
#: src/js/core.js:2797
#: src/js/core.js:2798
msgid "search timed out, try increasing timeout for indexer"
msgstr "مهلة البحث، حاول زيادة مهلة للمفهرس"
#: src/js/core.js:2801
#: src/js/core.js:2802
msgid "Search Results:"
msgstr ""
#: src/js/core.js:2805
#: src/js/core.js:2806
msgid "No results found, try a different search or language."
msgstr ""
#: src/js/core.js:2824
#: src/js/core.js:2825
msgid " (will debut on "
msgstr ""
#: src/js/core.js:2826
#: src/js/core.js:2827
msgid " (started on "
msgstr ""
#: src/js/core.js:2871
#: src/js/core.js:2872
msgid "Saved Defaults"
msgstr "حفظ الإعدادات الافتراضية"
#: src/js/core.js:2871
#: src/js/core.js:2872
msgid "Your \"add show\" defaults have been set to your current selections."
msgstr "تم تعيين الافتراضيات \"إضافة إظهار\" الخاصة بك إلى التحديدات الحالية."
#: src/js/core.js:2928
#: src/js/core.js:2929
msgid " Saving..."
msgstr ""
#: src/js/core.js:2970
#: src/js/core.js:2971
msgid "Reset Config to Defaults"
msgstr "إعادة تعيين التكوين إلى الإعدادات الافتراضية"
#: src/js/core.js:2971
#: src/js/core.js:2972
msgid "Are you sure you want to reset config to defaults?"
msgstr "هل أنت متأكد من أنك تريد إعادة تعيين التكوين إلى الإعدادات الافتراضية؟"
#: src/js/core.js:3063
#: src/js/core.js:3066
msgid "Select path to pip"
msgstr "حدد مسار برنامج تطبيق السلام"
#: src/js/core.js:3069
#: src/js/core.js:3072
msgid "Select path to git"
msgstr "حدد المسار إلى بوابة"
#: src/js/core.js:3077 src/js/core.js:3095 src/js/core.js:3885 src/js/core.js:3903
#: src/js/core.js:3924 src/js/core.js:3946 src/js/core.js:3969 src/js/core.js:3991
#: src/js/core.js:4019 src/js/core.js:4036 src/js/core.js:4080 src/js/core.js:4165
#: src/js/core.js:4223 src/js/core.js:4240 src/js/core.js:4270 src/js/core.js:4327
#: src/js/core.js:4403 src/js/core.js:4422 src/js/core.js:4438
#: src/js/core.js:3080 src/js/core.js:3098 src/js/core.js:3888 src/js/core.js:3906
#: src/js/core.js:3927 src/js/core.js:3949 src/js/core.js:3972 src/js/core.js:3994
#: src/js/core.js:4022 src/js/core.js:4039 src/js/core.js:4083 src/js/core.js:4168
#: src/js/core.js:4226 src/js/core.js:4243 src/js/core.js:4273 src/js/core.js:4330
#: src/js/core.js:4406 src/js/core.js:4425 src/js/core.js:4441
msgid "Please fill out the necessary fields above."
msgstr "الرجاء ملء الحقول الضرورية المذكورة أعلاه."
#: src/js/core.js:3133
#: src/js/core.js:3136
msgid "Select Subtitles Download Directory"
msgstr "دليل تحميل ترجمات مختارة"
#: src/js/core.js:3249
#: src/js/core.js:3252
msgid "Select .nzb blackhole/watch location"
msgstr "حدد.nzb blackhole/مشاهدة الموقع"
#: src/js/core.js:3250
#: src/js/core.js:3253
msgid "Select .torrent blackhole/watch location"
msgstr "قم بتحديد موقع blackhole/مشاهدة تورنت]"
#: src/js/core.js:3251
#: src/js/core.js:3254
msgid "Select .torrent download location"
msgstr "حدد موقع تحميل تورنت]"
#: sickrage/core/webserver/views/config/search.mako:981 src/js/core.js:3318
#: sickrage/core/webserver/views/config/search.mako:981 src/js/core.js:3321
msgid "Minimum seeding time is"
msgstr "الحد الأدنى البذر مرة"
#: src/js/core.js:3320
#: src/js/core.js:3323
msgid "URL to your uTorrent client (e.g. http://localhost:8000)"
msgstr "عنوان URL الخاص بك العميل uTorrent (مثلاً http://localhost:8000)"
#: src/js/core.js:3323
#: src/js/core.js:3326
msgid "Stop seeding when inactive for"
msgstr "توقف بذر عندما نشط"
#: src/js/core.js:3329
#: src/js/core.js:3332
msgid "URL to your Transmission client (e.g. http://localhost:9091)"
msgstr "عنوان URL للعميل الإرسال الخاص بك (مثل http://localhost:9091)"
#: src/js/core.js:3339
#: src/js/core.js:3342
msgid "URL to your Deluge client (e.g. http://localhost:8112)"
msgstr "عنوان URL الخاص بك العميل طوفان (مثلاً http://localhost:8112)"
#: src/js/core.js:3348
#: src/js/core.js:3351
msgid "IP or Hostname of your Deluge Daemon (e.g. scgi://localhost:58846)"
msgstr "IP أو اسم المضيف من الخاصة بك \"شيطان طوفان\" (مثلاً scgi://localhost:58846)"
#: src/js/core.js:3355
#: src/js/core.js:3358
msgid "URL to your Synology DS client (e.g. http://localhost:5000)"
msgstr "عنوان URL الخاص بك عميل Synology DS (مثلاً http://localhost:5000)"
#: src/js/core.js:3360
#: src/js/core.js:3363
msgid "URL to your rTorrent client (e.g. scgi://localhost:5000"
msgstr ""
#: src/js/core.js:3360
#: src/js/core.js:3363
msgid " or https://localhost/rutorrent/plugins/httprpc/action.php)"
msgstr ""
#: src/js/core.js:3370
#: src/js/core.js:3373
msgid "URL to your qbittorrent client (e.g. http://localhost:8080)"
msgstr "عنوان URL للعميل الخاص بك قبيتورينت (مثل http://localhost:8080)"
#: src/js/core.js:3380
#: src/js/core.js:3383
msgid "URL to your MLDonkey (e.g. http://localhost:4080)"
msgstr "عنوان URL الخاص بك ملدونكيي (مثل http://localhost:4080)"
#: src/js/core.js:3391
#: src/js/core.js:3394
msgid "URL to your putio client (e.g. http://localhost:8080)"
msgstr "عنوان URL الخاص بك العميل بوتيو (مثلاً http://localhost:8080)"
#: src/js/core.js:3560
#: src/js/core.js:3563
msgid "validating..."
msgstr ""
#: src/js/core.js:3561
#: src/js/core.js:3564
msgid "Select TV Download Directory"
msgstr "حدد دليل التحميل التلفزيون"
#: src/js/core.js:3562
#: src/js/core.js:3565
msgid "Select UNPACK Directory"
msgstr ""
#: src/js/core.js:3576
#: src/js/core.js:3579
msgid "Unrar Executable not found."
msgstr "لم يتم العثور على الملف القابل للتنفيذ فك الضغط."
#: src/js/core.js:3619 src/js/core.js:3654 src/js/core.js:3689 src/js/core.js:3740
#: src/js/core.js:3622 src/js/core.js:3657 src/js/core.js:3692 src/js/core.js:3743
msgid "This pattern is invalid."
msgstr "وهذا النمط غير صحيح."
#: src/js/core.js:3623 src/js/core.js:3658 src/js/core.js:3693 src/js/core.js:3744
#: src/js/core.js:3626 src/js/core.js:3661 src/js/core.js:3696 src/js/core.js:3747
msgid "This pattern would be invalid without the folders, using it will force \"Flatten\" off for all shows."
msgstr "سوف يكون هذا النمط غير صالحة دون المجلدات، استخدام أنه سيفرض \"سطح\" قبالة لكافة العروض."
#: src/js/core.js:3627 src/js/core.js:3662 src/js/core.js:3697 src/js/core.js:3749
#: src/js/core.js:3630 src/js/core.js:3665 src/js/core.js:3700 src/js/core.js:3752
msgid "This pattern is valid."
msgstr "هذا النمط صحيح."
#: src/js/core.js:4073
#: src/js/core.js:4076
msgid "<b>Step1:</b> Confirm Authorization"
msgstr "<b>Step1:</b> تأكيد الإذن"
#: src/js/core.js:4130 src/js/core.js:4184
#: src/js/core.js:4133 src/js/core.js:4187
msgid "Please fill in the Popcorn IP address"
msgstr "الرجاء إدخال عنوان IP الفشار"
#: src/js/core.js:4337
#: src/js/core.js:4340
msgid "Check blacklist name; the value need to be a trakt slug"
msgstr "تحقق من اسم القائمة السوداء؛ القيمة بحاجة إلى أن تكون سبيكة trakt"
#: src/js/core.js:4369
#: src/js/core.js:4372
msgid "You must specify an SMTP hostname!"
msgstr ""
#: src/js/core.js:4372
#: src/js/core.js:4375
msgid "You must specify an SMTP port!"
msgstr ""
#: src/js/core.js:4374
#: src/js/core.js:4377
msgid "SMTP port must be between 0 and 65535!"
msgstr ""
#: src/js/core.js:4380
#: src/js/core.js:4383
msgid "Enter an email address to send the test to:"
msgstr "أدخل عنوان البريد إلكتروني لإرسال الاختبار إلى:"
#: src/js/core.js:4382
#: src/js/core.js:4385
msgid "You must provide a recipient email address!"
msgstr ""
#: src/js/core.js:4452
#: src/js/core.js:4455
msgid "Device list updated. Please choose a device to push to."
msgstr "تحديث قائمة الأجهزة. الرجاء اختيار جهاز للدفع إلى."
#: src/js/core.js:4513
#: src/js/core.js:4516
msgid "You didn't supply a Pushbullet api key"
msgstr "لا تقوم أنت بتوفير مفتاح المعهد بوشبوليت"
#: src/js/core.js:4543
#: src/js/core.js:4546
msgid "Don't forget to save your new pushbullet settings."
msgstr "لا ننسى لحفظ الإعدادات الجديدة بوشبوليت."
#: src/js/core.js:4615
#: src/js/core.js:4618
msgid "Select backup folder to save to"
msgstr "حدد مجلد النسخ الاحتياطية لحفظ"
#: src/js/core.js:4620
#: src/js/core.js:4623
msgid "Select backup files to restore"
msgstr "حدد ملفات النسخ الاحتياطي لاستعادة"
#: src/js/core.js:5165
#: src/js/core.js:5168
msgid "No providers available to configure."
msgstr "لا مقدمي الخدمات المتاحة لتكوين."
#: sickrage/core/webserver/views/manage/mass_update.mako:16 src/js/core.js:5375
#: sickrage/core/webserver/views/manage/mass_update.mako:16 src/js/core.js:5378
msgid "Mass Delete"
msgstr "حذف الشامل"
#: src/js/core.js:5376
#: src/js/core.js:5379
msgid "You have selected to delete show(s). Are you sure you wish to continue? All files will be removed from your system."
msgstr "لقد اخترت حذف show(s). هل تريد المتابعة بالتأكيد؟ سيتم إزالة كافة الملفات من النظام الخاص بك."
#: src/js/core.js:5453
#: src/js/core.js:5456
msgid "DELETED"
msgstr ""
......@@ -3823,7 +3823,7 @@ msgid "Add"
msgstr "إضافة"
#: sickrage/core/webserver/views/config/providers.mako:1056
#: sickrage/core/webserver/views/includes/root_dirs.mako:39
#: sickrage/core/webserver/views/includes/root_dirs.mako:38
#: sickrage/core/webserver/views/manage/mass_edit.mako:78
msgid "Delete"
msgstr "حذف"
......@@ -5532,23 +5532,23 @@ msgstr "النوعية الأولى:"
msgid "Preferred Quality:"
msgstr "الجودة المفضلة:"