Browse Source

Merge branch 'master' into develop

pull/1289/head
JackDandy 5 years ago
parent
commit
87d719a494
  1. 7
      CHANGES.md
  2. 5
      sickbeard/providers/generic.py
  3. 25
      sickbeard/webserve.py

7
CHANGES.md

@ -30,6 +30,13 @@
* Change remove deprecated `buildNameCache`
### 0.21.17 (2020-03-03 21:35:00 UTC)
* Fix do not process magnet links in search results
* Fix saving media process settings
* Add handler for Emby user access 'Enable access to all libraries', specifying folder access rights operate as normal
### 0.21.16 (2020-02-26 15:10:00 UTC)
* Change alert users of Python 3.8.1 or 3.7.6 to change Python version due to a known critical issue parsing URLs

5
sickbeard/providers/generic.py

@ -860,13 +860,14 @@ class GenericProvider(object):
pass
title = title and re.sub(r'\s+', '.', u'%s' % title)
url = url and str(url).replace('&', '&')
if url and not re.match('(?i)magnet:', url):
url = str(url).replace('&', '&')
return title, url
def _link(self, url, url_tmpl=None, url_quote=None):
if url:
if url and not re.match('(?i)magnet:', url):
if PY2:
try:
url = url.encode('utf-8')

25
sickbeard/webserve.py

@ -22,6 +22,7 @@ try:
except ImportError:
from lib import simplejson as json
# noinspection PyProtectedMember
from mimetypes import MimeTypes
import base64
@ -5928,22 +5929,26 @@ class History(MainHandler):
mapped = 0
mapping = None
maps = [x.split('=') for x in sickbeard.EMBY_PARENT_MAPS.split(',') if any(x)]
args = dict(params=dict(format='json'), timeout=10, parse_json=True)
for i, cur_host in enumerate(hosts):
base_url = 'http://%s/emby/Users' % cur_host
base_url = 'http://%s/emby' % cur_host
headers.update({'X-MediaBrowser-Token': keys[i]})
users = helpers.get_url(base_url, headers=headers,
params=dict(format='json'), timeout=10, parse_json=True)
users = helpers.get_url(base_url + '/Users', headers=headers, **args)
for user_id in users and [u.get('Id') for u in users if u.get('Id')] or []:
user_url = '%s/%s' % (base_url, user_id)
user = helpers.get_url(user_url, headers=headers,
params=dict(format='json'), timeout=10, parse_json=True)
user_url = '%s/Users/%s' % (base_url, user_id)
user = helpers.get_url(user_url, headers=headers, **args)
for folder_id in user.get('Policy', {}).get('EnabledFolders') or []:
folder_ids = user.get('Policy', {}).get('EnabledFolders') or []
if not folder_ids and user.get('Policy', {}).get('EnableAllFolders'):
folders = helpers.get_url('%s/Library/MediaFolders' % base_url, headers=headers, **args)
folder_ids = [_f.get('Id') for _f in folders.get('Items', {}) if _f.get('IsFolder')
and 'tvshows' == _f.get('CollectionType', '') and _f.get('Id')]
for folder_id in folder_ids:
folder = helpers.get_url('%s/Items/%s' % (user_url, folder_id), headers=headers,
params=dict(format='json'), timeout=10, parse_json=True,
mute_http_error=True)
mute_http_error=True, **args)
if not folder or 'tvshows' != folder.get('CollectionType', ''):
continue
@ -6649,7 +6654,7 @@ class ConfigMediaProcess(Config):
def save_post_processing(self, tv_download_dir=None, process_automatically=None, autopostprocesser_frequency=None,
unpack=None, keep_processed_dir=None, process_method=None,
extra_scripts=None, sg_extra_scripts=None,
extra_scripts='', sg_extra_scripts='',
rename_episodes=None, airdate_episodes=None,
move_associated_files=None, postpone_if_sync_files=None,
naming_custom_abd=None, naming_custom_sports=None, naming_custom_anime=None,

Loading…
Cancel
Save