From 308c3b607ced1b45fa69c12f16770d80b6e74c84 Mon Sep 17 00:00:00 2001 From: Kfir Hadas <sharkykh@gmail.com> Date: Mon, 5 Jun 2017 14:06:13 +0300 Subject: [PATCH] Fix providers, fix tests, fix build... (#3826) * Fix Nyaa * Mark broken providers * Set ilCorsaroNero as public * Remove old KAT cassette * Disable tests for LimeTorrents, SkyTorrents, ilCorsaroNero * Disable torrent search test (was using KAT) * Fix magic_skip * Fix tox (flake8 not running) * flake8 first * flake8: Exclude .tox, fix setup.py * flake8: Include rather than exclude * Apply isort to sickbeard (possible breakages!) * Apply isort to sickrage (possible breakages!) --- gui/slick/views/config_providers.mako | 2 +- setup.py | 1 + sickbeard/auto_postprocessor.py | 2 + sickbeard/blackandwhitelist.py | 3 +- sickbeard/browser.py | 3 +- sickbeard/bs4_parser.py | 2 + sickbeard/classes.py | 2 - sickbeard/clients/download_station_client.py | 7 +- sickbeard/clients/generic.py | 11 +- sickbeard/clients/mlnet_client.py | 2 + sickbeard/clients/putio_client.py | 3 +- sickbeard/clients/qbittorrent_client.py | 4 +- sickbeard/clients/rtorrent_client.py | 6 +- sickbeard/clients/transmission_client.py | 4 +- sickbeard/clients/utorrent_client.py | 6 +- sickbeard/common.py | 8 +- sickbeard/config.py | 9 +- sickbeard/databases/cache_db.py | 2 + sickbeard/databases/failed_db.py | 2 + sickbeard/databases/mainDB.py | 16 +- sickbeard/db.py | 4 +- sickbeard/event_queue.py | 2 - sickbeard/failed_history.py | 2 - sickbeard/helpers.py | 21 +- sickbeard/history.py | 2 + sickbeard/image_cache.py | 4 +- sickbeard/imdbPopular.py | 3 +- sickbeard/indexers/indexer_api.py | 7 +- sickbeard/indexers/indexer_config.py | 4 +- sickbeard/indexers/indexer_exceptions.py | 6 +- sickbeard/logger.py | 8 +- sickbeard/metadata/generic.py | 26 +- sickbeard/metadata/helpers.py | 3 +- sickbeard/metadata/kodi.py | 5 +- sickbeard/metadata/kodi_12plus.py | 10 +- sickbeard/metadata/mede8er.py | 7 +- sickbeard/metadata/mediabrowser.py | 9 +- sickbeard/metadata/ps3.py | 3 +- sickbeard/metadata/tivo.py | 4 +- sickbeard/metadata/wdtv.py | 4 +- sickbeard/name_cache.py | 6 +- sickbeard/name_parser/parser.py | 3 +- sickbeard/network_timezones.py | 3 +- sickbeard/notifiers/boxcar2.py | 4 +- sickbeard/notifiers/discord.py | 8 +- sickbeard/notifiers/emailnotify.py | 10 +- sickbeard/notifiers/emby.py | 3 - sickbeard/notifiers/freemobile.py | 6 +- sickbeard/notifiers/growl.py | 4 +- sickbeard/notifiers/join.py | 6 +- sickbeard/notifiers/kodi.py | 12 +- sickbeard/notifiers/libnotify.py | 3 +- sickbeard/notifiers/nma.py | 3 +- sickbeard/notifiers/nmj.py | 6 +- sickbeard/notifiers/nmjv2.py | 6 +- sickbeard/notifiers/plex.py | 12 +- sickbeard/notifiers/prowl.py | 13 +- sickbeard/notifiers/pushalot.py | 2 +- sickbeard/notifiers/pushbullet.py | 5 +- sickbeard/notifiers/pushover.py | 7 +- sickbeard/notifiers/pytivo.py | 7 +- sickbeard/notifiers/slack.py | 8 +- sickbeard/notifiers/synoindex.py | 1 - sickbeard/notifiers/synologynotifier.py | 4 +- sickbeard/notifiers/telegram.py | 8 +- sickbeard/notifiers/trakt.py | 5 +- sickbeard/notifiers/tweet.py | 7 +- sickbeard/notifiers/twilio_notify.py | 7 +- sickbeard/numdict.py | 2 + sickbeard/nzbSplitter.py | 9 +- sickbeard/nzbget.py | 5 +- sickbeard/postProcessor.py | 10 +- sickbeard/post_processing_queue.py | 2 +- sickbeard/processTV.py | 10 +- sickbeard/properFinder.py | 2 +- sickbeard/providers/abnormal.py | 3 +- sickbeard/providers/alpharatio.py | 3 +- sickbeard/providers/archetorrent.py | 3 +- sickbeard/providers/binsearch.py | 3 +- sickbeard/providers/bitcannon.py | 4 +- sickbeard/providers/btn.py | 7 +- sickbeard/providers/cpasbien.py | 1 - sickbeard/providers/danishbits.py | 4 +- sickbeard/providers/elitetorrent.py | 3 +- sickbeard/providers/filelist.py | 3 +- sickbeard/providers/gftracker.py | 2 - sickbeard/providers/hd4free.py | 1 - sickbeard/providers/hdbits.py | 3 +- sickbeard/providers/hdspace.py | 7 +- sickbeard/providers/hdtorrents.py | 5 +- sickbeard/providers/hdtorrents_it.py | 5 +- sickbeard/providers/horriblesubs.py | 1 - sickbeard/providers/hounddawgs.py | 3 +- sickbeard/providers/ilcorsaronero.py | 6 +- sickbeard/providers/immortalseed.py | 4 +- sickbeard/providers/iptorrents.py | 1 - sickbeard/providers/kat.py | 6 +- sickbeard/providers/limetorrents.py | 5 +- sickbeard/providers/morethantv.py | 4 +- sickbeard/providers/ncore.py | 2 +- sickbeard/providers/nebulance.py | 5 +- sickbeard/providers/newpct.py | 7 +- sickbeard/providers/newznab.py | 6 +- sickbeard/providers/norbits.py | 5 +- sickbeard/providers/nyaa.py | 15 +- sickbeard/providers/omgwtfnzbs.py | 1 - sickbeard/providers/pretome.py | 7 +- sickbeard/providers/rarbg.py | 1 - sickbeard/providers/rsstorrent.py | 5 +- sickbeard/providers/scc.py | 7 +- sickbeard/providers/scenetime.py | 1 - sickbeard/providers/shazbat.py | 1 - sickbeard/providers/skytorrents.py | 5 +- sickbeard/providers/speedcd.py | 2 - sickbeard/providers/t411.py | 7 +- sickbeard/providers/thepiratebay.py | 3 +- sickbeard/providers/tntvillage.py | 3 +- sickbeard/providers/tokyotoshokan.py | 1 - sickbeard/providers/torrent9.py | 1 - sickbeard/providers/torrentbytes.py | 1 - sickbeard/providers/torrentday.py | 5 +- sickbeard/providers/torrentleech.py | 3 +- sickbeard/providers/torrentproject.py | 2 - sickbeard/providers/torrentz.py | 1 - sickbeard/providers/tvchaosuk.py | 1 + sickbeard/providers/xthor.py | 1 - sickbeard/rssfeeds.py | 1 - sickbeard/sab.py | 3 +- sickbeard/sbdatetime.py | 2 + sickbeard/scene_exceptions.py | 3 +- sickbeard/search.py | 3 +- sickbeard/searchBacklog.py | 4 +- sickbeard/search_queue.py | 1 + sickbeard/showUpdater.py | 16 +- sickbeard/show_name_helpers.py | 4 +- sickbeard/show_queue.py | 13 +- sickbeard/subtitles.py | 5 +- sickbeard/traktChecker.py | 3 +- sickbeard/traktTrending.py | 5 +- sickbeard/tv.py | 49 +- sickbeard/tvcache.py | 4 +- sickbeard/ui.py | 2 + sickbeard/versionChecker.py | 3 +- sickbeard/webapi.py | 21 +- sickbeard/webserve.py | 80 ++- sickbeard/webserveInit.py | 9 +- sickrage/helper/common.py | 7 +- sickrage/helper/encoding.py | 6 +- sickrage/helper/exceptions.py | 4 +- sickrage/helper/media_info.py | 9 +- sickrage/helper/quality.py | 2 + sickrage/media/GenericMedia.py | 4 +- sickrage/media/ShowBanner.py | 2 + sickrage/media/ShowFanArt.py | 2 + sickrage/media/ShowNetworkLogo.py | 3 + sickrage/media/ShowPoster.py | 2 + sickrage/providers/GenericProvider.py | 9 +- sickrage/providers/nzb/NZBProvider.py | 2 - sickrage/providers/subtitle/itasa.py | 19 +- sickrage/providers/subtitle/subscenter.py | 11 +- sickrage/providers/torrent/TorrentProvider.py | 6 +- sickrage/recompiled/tags.py | 3 +- sickrage/show/ComingEpisodes.py | 8 +- sickrage/show/History.py | 10 +- sickrage/show/Show.py | 7 +- sickrage/show/recommendations/anidb.py | 5 +- sickrage/show/recommendations/imdb.py | 4 +- sickrage/show/recommendations/recommended.py | 1 - sickrage/system/Restart.py | 3 +- sickrage/system/Shutdown.py | 3 +- sickrage/tagger/episode.py | 3 +- .../torrent/cassettes/kickasstorrents.yaml | 427 -------------- .../providers/torrent/cassettes/nyaa.yaml | 535 +++++++----------- .../providers/torrent/parsing_tests.py | 9 +- tests/torrent_tests.py | 1 + tox.ini | 6 +- 176 files changed, 653 insertions(+), 1315 deletions(-) delete mode 100644 tests/sickrage_tests/providers/torrent/cassettes/kickasstorrents.yaml diff --git a/gui/slick/views/config_providers.mako b/gui/slick/views/config_providers.mako index aa61e0e63..925bde981 100644 --- a/gui/slick/views/config_providers.mako +++ b/gui/slick/views/config_providers.mako @@ -70,7 +70,7 @@ % for curProvider in sickbeard.providers.sortedProviderList(): <% ## These will show the '!' not saying they are broken - broken_providers = {} + broken_providers = {'torrentproject', 'cpasbien'} if curProvider.provider_type == GenericProvider.NZB and not sickbeard.USE_NZBS: continue elif curProvider.provider_type == GenericProvider.TORRENT and not sickbeard.USE_TORRENTS: diff --git a/setup.py b/setup.py index 51af4fbfd..2b096395b 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -* """ Use setup tools to install sickrage """ diff --git a/sickbeard/auto_postprocessor.py b/sickbeard/auto_postprocessor.py index 75f2a7034..331282cf0 100644 --- a/sickbeard/auto_postprocessor.py +++ b/sickbeard/auto_postprocessor.py @@ -17,6 +17,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import threading import sickbeard diff --git a/sickbeard/blackandwhitelist.py b/sickbeard/blackandwhitelist.py index 6660b2321..1f3e0bebb 100644 --- a/sickbeard/blackandwhitelist.py +++ b/sickbeard/blackandwhitelist.py @@ -20,9 +20,8 @@ from __future__ import print_function, unicode_literals -from adba.aniDBerrors import AniDBCommandTimeoutError - import sickbeard +from adba.aniDBerrors import AniDBCommandTimeoutError from sickbeard import db, helpers, logger diff --git a/sickbeard/browser.py b/sickbeard/browser.py index 52279afef..7e722b581 100644 --- a/sickbeard/browser.py +++ b/sickbeard/browser.py @@ -24,9 +24,8 @@ import os import string from operator import itemgetter -import six - import sickbeard +import six from sickbeard import logger from sickrage.helper.encoding import ek diff --git a/sickbeard/bs4_parser.py b/sickbeard/bs4_parser.py index 1baf61e96..61fcfbe49 100644 --- a/sickbeard/bs4_parser.py +++ b/sickbeard/bs4_parser.py @@ -18,6 +18,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from bs4 import BeautifulSoup diff --git a/sickbeard/classes.py b/sickbeard/classes.py index d47180d4c..0999c27fb 100644 --- a/sickbeard/classes.py +++ b/sickbeard/classes.py @@ -26,8 +26,6 @@ import sys import sickbeard from sickbeard.common import Quality, USER_AGENT from sickrage.helper.common import dateTimeFormat - - from six.moves import urllib diff --git a/sickbeard/clients/download_station_client.py b/sickbeard/clients/download_station_client.py index 04d48f9b0..8e72417c4 100644 --- a/sickbeard/clients/download_station_client.py +++ b/sickbeard/clients/download_station_client.py @@ -19,18 +19,17 @@ # Uses the Synology Download Station API: http://download.synology.com/download/Document/DeveloperGuide/Synology_Download_Station_Web_API.pdf from __future__ import unicode_literals -from requests.compat import urljoin + import os import re import sickbeard +import six +from requests.compat import urljoin from sickbeard import logger from sickbeard.clients.generic import GenericClient -import six - - class DownloadStationAPI(GenericClient): """ Class to send torrents/NZBs or links to them to DownloadStation diff --git a/sickbeard/clients/generic.py b/sickbeard/clients/generic.py index 160055735..4352c7eb8 100644 --- a/sickbeard/clients/generic.py +++ b/sickbeard/clients/generic.py @@ -21,16 +21,15 @@ from __future__ import unicode_literals import re import time -from hashlib import sha1 -from requests.compat import urlencode -from requests.models import HTTPError from base64 import b16encode, b32decode -import bencode +from hashlib import sha1 +import bencode import sickbeard -from sickbeard import logger, helpers - import six +from requests.compat import urlencode +from requests.models import HTTPError +from sickbeard import helpers, logger class GenericClient(object): # pylint: disable=too-many-instance-attributes diff --git a/sickbeard/clients/mlnet_client.py b/sickbeard/clients/mlnet_client.py index dd99eee34..d3f879cbf 100644 --- a/sickbeard/clients/mlnet_client.py +++ b/sickbeard/clients/mlnet_client.py @@ -18,6 +18,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from sickbeard.clients.generic import GenericClient diff --git a/sickbeard/clients/putio_client.py b/sickbeard/clients/putio_client.py index caa8d18dc..23b07a17c 100644 --- a/sickbeard/clients/putio_client.py +++ b/sickbeard/clients/putio_client.py @@ -17,8 +17,9 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -from putiopy import Client as PutioClient, ClientError +from __future__ import unicode_literals +from putiopy import Client as PutioClient, ClientError from sickbeard import helpers from sickbeard.clients.generic import GenericClient diff --git a/sickbeard/clients/qbittorrent_client.py b/sickbeard/clients/qbittorrent_client.py index 877807315..9b80a6eff 100644 --- a/sickbeard/clients/qbittorrent_client.py +++ b/sickbeard/clients/qbittorrent_client.py @@ -18,12 +18,14 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from time import sleep import sickbeard +from requests.auth import HTTPDigestAuth from sickbeard.clients.generic import GenericClient from sickrage.helper.common import try_int -from requests.auth import HTTPDigestAuth class qbittorrentAPI(GenericClient): diff --git a/sickbeard/clients/rtorrent_client.py b/sickbeard/clients/rtorrent_client.py index f01171595..28d96960d 100644 --- a/sickbeard/clients/rtorrent_client.py +++ b/sickbeard/clients/rtorrent_client.py @@ -26,11 +26,9 @@ from __future__ import print_function, unicode_literals -from rtorrent import RTorrent # pylint: disable=import-error - import sickbeard - -from sickbeard import logger, ex +from rtorrent import RTorrent # pylint: disable=import-error +from sickbeard import ex, logger from sickbeard.clients.generic import GenericClient diff --git a/sickbeard/clients/transmission_client.py b/sickbeard/clients/transmission_client.py index b2e96e76a..85b670a4d 100644 --- a/sickbeard/clients/transmission_client.py +++ b/sickbeard/clients/transmission_client.py @@ -18,9 +18,11 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -from base64 import b64encode +from __future__ import unicode_literals + import json import re +from base64 import b64encode import sickbeard from sickbeard.clients.generic import GenericClient diff --git a/sickbeard/clients/utorrent_client.py b/sickbeard/clients/utorrent_client.py index 419e18805..f3a8a595d 100644 --- a/sickbeard/clients/utorrent_client.py +++ b/sickbeard/clients/utorrent_client.py @@ -21,13 +21,11 @@ from __future__ import unicode_literals import re from collections import OrderedDict -from requests.compat import urljoin import sickbeard -from sickbeard.clients.generic import GenericClient - - import six +from requests.compat import urljoin +from sickbeard.clients.generic import GenericClient class uTorrentAPI(GenericClient): diff --git a/sickbeard/common.py b/sickbeard/common.py index 2381f29bd..3cdc99d4e 100644 --- a/sickbeard/common.py +++ b/sickbeard/common.py @@ -32,16 +32,14 @@ import re import uuid from os import path -from fake_useragent import UserAgent, settings as UA_SETTINGS - -# noinspection PyUnresolvedReferences -from six.moves import reduce - +from fake_useragent import settings as UA_SETTINGS, UserAgent from sickbeard.numdict import NumDict from sickrage.helper import video_screen_size from sickrage.helper.encoding import ek from sickrage.recompiled import tags from sickrage.tagger.episode import EpisodeTags +# noinspection PyUnresolvedReferences +from six.moves import reduce gettext.install('messages', unicode=1, codeset='UTF-8', names=["ngettext"]) diff --git a/sickbeard/config.py b/sickbeard/config.py index 38ef53bfc..1cefe8154 100644 --- a/sickbeard/config.py +++ b/sickbeard/config.py @@ -25,17 +25,14 @@ import os.path import platform import re -import six - -# noinspection PyUnresolvedReferences -from six.moves.urllib import parse - import rarfile - import sickbeard +import six from sickbeard import db, helpers, logger, naming from sickrage.helper.common import try_int from sickrage.helper.encoding import ek +# noinspection PyUnresolvedReferences +from six.moves.urllib import parse # Address poor support for scgi over unix domain sockets # this is not nicely handled by python currently diff --git a/sickbeard/databases/cache_db.py b/sickbeard/databases/cache_db.py index 1fe32f5e1..468fb3a1d 100644 --- a/sickbeard/databases/cache_db.py +++ b/sickbeard/databases/cache_db.py @@ -18,6 +18,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from sickbeard import db diff --git a/sickbeard/databases/failed_db.py b/sickbeard/databases/failed_db.py index 0cfdb5594..2e8a75d49 100644 --- a/sickbeard/databases/failed_db.py +++ b/sickbeard/databases/failed_db.py @@ -18,6 +18,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from sickbeard import db from sickbeard.common import Quality diff --git a/sickbeard/databases/mainDB.py b/sickbeard/databases/mainDB.py index 752d760d5..fe8a8908d 100644 --- a/sickbeard/databases/mainDB.py +++ b/sickbeard/databases/mainDB.py @@ -22,22 +22,16 @@ from __future__ import print_function, unicode_literals import datetime - -import warnings -import sickbeard import os.path +import warnings -from sickbeard import db, common, helpers, logger - -from sickbeard.name_parser.parser import NameParser, InvalidNameException, InvalidShowException +import sickbeard +import six +from sickbeard import common, db, helpers, logger, subtitles +from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickrage.helper.common import dateTimeFormat, episode_num from sickrage.helper.encoding import ek -from sickbeard import subtitles - -import six - - MIN_DB_VERSION = 9 # oldest db version we support migrating from MAX_DB_VERSION = 44 diff --git a/sickbeard/db.py b/sickbeard/db.py index aa209d8e9..dc7cbaaad 100644 --- a/sickbeard/db.py +++ b/sickbeard/db.py @@ -29,13 +29,11 @@ import warnings from sqlite3 import OperationalError import sickbeard +import six from sickbeard import logger from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex -import six - - db_cons = {} db_locks = {} diff --git a/sickbeard/event_queue.py b/sickbeard/event_queue.py index df47fe68b..4bbda4dfc 100644 --- a/sickbeard/event_queue.py +++ b/sickbeard/event_queue.py @@ -7,8 +7,6 @@ import traceback from sickbeard import logger from sickrage.helper.exceptions import ex - - from six.moves.queue import Empty, Queue diff --git a/sickbeard/failed_history.py b/sickbeard/failed_history.py index d05657be1..8c1a6a877 100644 --- a/sickbeard/failed_history.py +++ b/sickbeard/failed_history.py @@ -28,8 +28,6 @@ from sickbeard.common import FAILED, Quality, WANTED from sickrage.helper.encoding import ss from sickrage.helper.exceptions import EpisodeNotFoundException, ex from sickrage.show.History import History - - from six.moves import urllib diff --git a/sickbeard/helpers.py b/sickbeard/helpers.py index ed59353e0..ec5d5946f 100644 --- a/sickbeard/helpers.py +++ b/sickbeard/helpers.py @@ -31,7 +31,6 @@ import operator import os import platform import random -import rarfile import re import shutil import socket @@ -48,25 +47,23 @@ from itertools import cycle, izip import adba import certifi import cfscrape +import rarfile import requests +import sickbeard +import six from cachecontrol import CacheControl -from requests.utils import urlparse from requests.compat import urljoin -import six - -# noinspection PyUnresolvedReferences -from six.moves import urllib -# noinspection PyProtectedMember -from tornado._locale_data import LOCALE_NAMES - -import sickbeard +from requests.utils import urlparse from sickbeard import classes, db, logger from sickbeard.common import USER_AGENT -from sickrage.helper import MEDIA_EXTENSIONS, SUBTITLE_EXTENSIONS, episode_num, pretty_file_size +from sickrage.helper import episode_num, MEDIA_EXTENSIONS, pretty_file_size, SUBTITLE_EXTENSIONS from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex from sickrage.show.Show import Show - +# noinspection PyUnresolvedReferences +from six.moves import urllib +# noinspection PyProtectedMember +from tornado._locale_data import LOCALE_NAMES # Add some missing languages LOCALE_NAMES.update({ diff --git a/sickbeard/history.py b/sickbeard/history.py index a78d00b5b..f663cf708 100644 --- a/sickbeard/history.py +++ b/sickbeard/history.py @@ -18,6 +18,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import datetime import db diff --git a/sickbeard/image_cache.py b/sickbeard/image_cache.py index fdefb8421..44c313b45 100644 --- a/sickbeard/image_cache.py +++ b/sickbeard/image_cache.py @@ -22,15 +22,15 @@ from __future__ import print_function, unicode_literals import os.path +import sickbeard from hachoir_core.log import log from hachoir_metadata import extractMetadata from hachoir_parser import createParser - -import sickbeard from sickbeard import helpers, logger from sickbeard.metadata.generic import GenericMetadata from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ShowDirectoryNotFoundException + log.use_print = False diff --git a/sickbeard/imdbPopular.py b/sickbeard/imdbPopular.py index 684a01b7c..f146b4621 100644 --- a/sickbeard/imdbPopular.py +++ b/sickbeard/imdbPopular.py @@ -7,9 +7,8 @@ import posixpath import re from datetime import date -from bs4 import BeautifulSoup - import sickbeard +from bs4 import BeautifulSoup from sickbeard import helpers from sickrage.helper.encoding import ek diff --git a/sickbeard/indexers/indexer_api.py b/sickbeard/indexers/indexer_api.py index 57eb496b1..0ade80c21 100644 --- a/sickbeard/indexers/indexer_api.py +++ b/sickbeard/indexers/indexer_api.py @@ -18,14 +18,15 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import os + import sickbeard +from indexer_config import indexerConfig, initConfig from sickrage.helper.common import try_int from sickrage.helper.encoding import ek -from indexer_config import initConfig -from indexer_config import indexerConfig - class indexerApi(object): def __init__(self, indexerID=None): diff --git a/sickbeard/indexers/indexer_config.py b/sickbeard/indexers/indexer_config.py index e23d02820..58bccd475 100644 --- a/sickbeard/indexers/indexer_config.py +++ b/sickbeard/indexers/indexer_config.py @@ -1,7 +1,9 @@ # coding=utf-8 -from tvdb_api.tvdb_api import Tvdb +from __future__ import unicode_literals + from sickbeard import helpers +from tvdb_api.tvdb_api import Tvdb initConfig = { 'valid_languages': [ diff --git a/sickbeard/indexers/indexer_exceptions.py b/sickbeard/indexers/indexer_exceptions.py index cd5d7ed75..b5de2ef40 100644 --- a/sickbeard/indexers/indexer_exceptions.py +++ b/sickbeard/indexers/indexer_exceptions.py @@ -19,8 +19,10 @@ """Custom exceptions used or raised by indexer_api""" -from tvdb_api.tvdb_exceptions import (tvdb_exception, tvdb_error, tvdb_userabort, tvdb_shownotfound, tvdb_showincomplete, - tvdb_seasonnotfound, tvdb_episodenotfound, tvdb_attributenotfound) +from __future__ import unicode_literals + +from tvdb_api.tvdb_exceptions import (tvdb_attributenotfound, tvdb_episodenotfound, tvdb_error, tvdb_exception, tvdb_seasonnotfound, tvdb_showincomplete, + tvdb_shownotfound, tvdb_userabort) indexerExcepts = ["indexer_exception", "indexer_error", "indexer_userabort", "indexer_shownotfound", "indexer_showincomplete", "indexer_seasonnotfound", "indexer_episodenotfound", "indexer_attributenotfound"] diff --git a/sickbeard/logger.py b/sickbeard/logger.py index eb4c6b174..38151be23 100644 --- a/sickbeard/logger.py +++ b/sickbeard/logger.py @@ -36,17 +36,15 @@ import threading import traceback from logging import NullHandler +import sickbeard import six from github import InputFileContent, RateLimitExceededException, TwoFactorException - -# noinspection PyUnresolvedReferences -from six.moves.urllib.parse import quote - -import sickbeard from sickbeard import classes from sickrage.helper.common import dateTimeFormat from sickrage.helper.encoding import ek, ss from sickrage.helper.exceptions import ex +# noinspection PyUnresolvedReferences +from six.moves.urllib.parse import quote # pylint: disable=line-too-long diff --git a/sickbeard/metadata/generic.py b/sickbeard/metadata/generic.py index e5735481f..5e385b161 100644 --- a/sickbeard/metadata/generic.py +++ b/sickbeard/metadata/generic.py @@ -20,32 +20,32 @@ from __future__ import print_function, unicode_literals -import os import io +import os import re +import fanart as fanart_module +import sickbeard +import six +from fanart.core import Request as fanartRequest +from sickbeard import helpers, logger +from sickbeard.metadata import helpers as metadata_helpers +from sickbeard.show_name_helpers import allPossibleShowNames +from sickrage.helper.common import replace_extension, try_int +from sickrage.helper.encoding import ek +from sickrage.helper.exceptions import ex +from tmdb_api.tmdb_api import TMDB + try: import xml.etree.cElementTree as etree except ImportError: import xml.etree.ElementTree as etree -import sickbeard -from sickbeard import helpers -from sickbeard import logger -from sickbeard.metadata import helpers as metadata_helpers -from sickbeard.show_name_helpers import allPossibleShowNames -from sickrage.helper.common import replace_extension, try_int -from sickrage.helper.exceptions import ex -from sickrage.helper.encoding import ek -from tmdb_api.tmdb_api import TMDB -import fanart as fanart_module -from fanart.core import Request as fanartRequest -import six class GenericMetadata(object): diff --git a/sickbeard/metadata/helpers.py b/sickbeard/metadata/helpers.py index 8596f2d34..2a2e1aaca 100644 --- a/sickbeard/metadata/helpers.py +++ b/sickbeard/metadata/helpers.py @@ -20,8 +20,7 @@ from __future__ import print_function, unicode_literals -from sickbeard import helpers -from sickbeard import logger +from sickbeard import helpers, logger meta_session = helpers.make_session() diff --git a/sickbeard/metadata/kodi.py b/sickbeard/metadata/kodi.py index 3748436fb..afdbb234b 100644 --- a/sickbeard/metadata/kodi.py +++ b/sickbeard/metadata/kodi.py @@ -18,10 +18,11 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import os -from sickbeard.metadata import generic -from sickbeard.metadata import kodi_12plus +from sickbeard.metadata import generic, kodi_12plus from sickrage.helper.common import replace_extension from sickrage.helper.encoding import ek diff --git a/sickbeard/metadata/kodi_12plus.py b/sickbeard/metadata/kodi_12plus.py index 04dac5882..f0f985399 100644 --- a/sickbeard/metadata/kodi_12plus.py +++ b/sickbeard/metadata/kodi_12plus.py @@ -19,19 +19,17 @@ from __future__ import print_function, unicode_literals -import re import datetime -from babelfish import Country +import re import sickbeard +import six +from babelfish import Country +from sickbeard import helpers, logger from sickbeard.metadata import generic -from sickbeard import logger, helpers from sickrage.helper.common import dateFormat from sickrage.helper.exceptions import ex, ShowNotFoundException -import six - - try: import xml.etree.cElementTree as etree except ImportError: diff --git a/sickbeard/metadata/mede8er.py b/sickbeard/metadata/mede8er.py index f1cd05327..379aea3d4 100644 --- a/sickbeard/metadata/mede8er.py +++ b/sickbeard/metadata/mede8er.py @@ -20,15 +20,14 @@ from __future__ import print_function, unicode_literals +import datetime import io import os -import datetime import sickbeard -from sickbeard import logger, helpers -from sickbeard.metadata import mediabrowser import six - +from sickbeard import helpers, logger +from sickbeard.metadata import mediabrowser from sickrage.helper.common import dateFormat, replace_extension from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex, ShowNotFoundException diff --git a/sickbeard/metadata/mediabrowser.py b/sickbeard/metadata/mediabrowser.py index fbe060ccc..0f4108ca9 100644 --- a/sickbeard/metadata/mediabrowser.py +++ b/sickbeard/metadata/mediabrowser.py @@ -25,18 +25,13 @@ import os import re import sickbeard - +import six +from sickbeard import helpers, logger from sickbeard.metadata import generic - -from sickbeard import logger, helpers - from sickrage.helper.common import dateFormat, replace_extension from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex, ShowNotFoundException -import six - - try: import xml.etree.cElementTree as etree except ImportError: diff --git a/sickbeard/metadata/ps3.py b/sickbeard/metadata/ps3.py index 6824c633d..db822d96c 100644 --- a/sickbeard/metadata/ps3.py +++ b/sickbeard/metadata/ps3.py @@ -18,10 +18,11 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import os from sickbeard.metadata import generic - from sickrage.helper.encoding import ek diff --git a/sickbeard/metadata/tivo.py b/sickbeard/metadata/tivo.py index ffa6d0bbf..75cf47500 100644 --- a/sickbeard/metadata/tivo.py +++ b/sickbeard/metadata/tivo.py @@ -21,12 +21,12 @@ from __future__ import print_function, unicode_literals +import datetime import io import os -import datetime import sickbeard -from sickbeard import logger, helpers +from sickbeard import helpers, logger from sickbeard.metadata import generic from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex, ShowNotFoundException diff --git a/sickbeard/metadata/wdtv.py b/sickbeard/metadata/wdtv.py index a1cbad720..a44f80864 100644 --- a/sickbeard/metadata/wdtv.py +++ b/sickbeard/metadata/wdtv.py @@ -25,10 +25,8 @@ import os import re import sickbeard - +from sickbeard import helpers, logger from sickbeard.metadata import generic - -from sickbeard import logger, helpers from sickrage.helper.common import dateFormat, replace_extension from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex, ShowNotFoundException diff --git a/sickbeard/name_cache.py b/sickbeard/name_cache.py index fbe817198..bef228eb1 100644 --- a/sickbeard/name_cache.py +++ b/sickbeard/name_cache.py @@ -17,13 +17,13 @@ # # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import threading import sickbeard -from sickbeard import db - import six - +from sickbeard import db # from sickbeard import logger diff --git a/sickbeard/name_parser/parser.py b/sickbeard/name_parser/parser.py index 37029f309..4ba359c90 100644 --- a/sickbeard/name_parser/parser.py +++ b/sickbeard/name_parser/parser.py @@ -27,9 +27,8 @@ from collections import OrderedDict from threading import Lock import dateutil -import six - import sickbeard +import six from sickbeard import common, db, helpers, logger, scene_exceptions, scene_numbering from sickbeard.name_parser import regexes from sickrage.helper.common import remove_extension diff --git a/sickbeard/network_timezones.py b/sickbeard/network_timezones.py index 0a02b1bd5..e93cffb52 100644 --- a/sickbeard/network_timezones.py +++ b/sickbeard/network_timezones.py @@ -23,9 +23,8 @@ from __future__ import print_function, unicode_literals import datetime import re -from dateutil import tz import six - +from dateutil import tz from sickbeard import db, helpers, logger from sickrage.helper.common import try_int diff --git a/sickbeard/notifiers/boxcar2.py b/sickbeard/notifiers/boxcar2.py index b04cac8bb..70159f23d 100644 --- a/sickbeard/notifiers/boxcar2.py +++ b/sickbeard/notifiers/boxcar2.py @@ -21,9 +21,9 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import unicode_literals -import sickbeard -from sickbeard import logger, common +import sickbeard +from sickbeard import common, logger class Notifier(object): diff --git a/sickbeard/notifiers/discord.py b/sickbeard/notifiers/discord.py index 1e86e3645..3a0dffed3 100644 --- a/sickbeard/notifiers/discord.py +++ b/sickbeard/notifiers/discord.py @@ -19,14 +19,12 @@ from __future__ import unicode_literals import json -import requests +import requests import sickbeard -from sickbeard import logger, common -from sickrage.helper.exceptions import ex - - import six +from sickbeard import common, logger +from sickrage.helper.exceptions import ex class Notifier(object): diff --git a/sickbeard/notifiers/emailnotify.py b/sickbeard/notifiers/emailnotify.py index 4ce981698..3cdbad6f5 100644 --- a/sickbeard/notifiers/emailnotify.py +++ b/sickbeard/notifiers/emailnotify.py @@ -24,19 +24,17 @@ ############################################################################## from __future__ import unicode_literals + +import ast +import re import smtplib # import traceback -import ast from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.utils import formatdate -import re - import sickbeard - -from sickbeard import logger -from sickbeard import db +from sickbeard import db, logger from sickrage.helper.encoding import ss diff --git a/sickbeard/notifiers/emby.py b/sickbeard/notifiers/emby.py index 35d3b55fe..7a7e22948 100644 --- a/sickbeard/notifiers/emby.py +++ b/sickbeard/notifiers/emby.py @@ -21,13 +21,10 @@ from __future__ import print_function, unicode_literals import sickbeard - from sickbeard import logger from sickrage.helper.exceptions import ex - from six.moves import urllib - try: import json except ImportError: diff --git a/sickbeard/notifiers/freemobile.py b/sickbeard/notifiers/freemobile.py index 58ee0d621..35d26c97b 100644 --- a/sickbeard/notifiers/freemobile.py +++ b/sickbeard/notifiers/freemobile.py @@ -23,10 +23,10 @@ from __future__ import print_function, unicode_literals import sickbeard -from sickbeard import logger -from sickbeard.common import notifyStrings, NOTIFY_SNATCH, NOTIFY_DOWNLOAD, NOTIFY_SUBTITLE_DOWNLOAD, NOTIFY_GIT_UPDATE, NOTIFY_GIT_UPDATE_TEXT, NOTIFY_LOGIN, NOTIFY_LOGIN_TEXT - import six +from sickbeard import logger +from sickbeard.common import (NOTIFY_DOWNLOAD, NOTIFY_GIT_UPDATE, NOTIFY_GIT_UPDATE_TEXT, NOTIFY_LOGIN, NOTIFY_LOGIN_TEXT, NOTIFY_SNATCH, + NOTIFY_SUBTITLE_DOWNLOAD, notifyStrings) from six.moves import urllib diff --git a/sickbeard/notifiers/growl.py b/sickbeard/notifiers/growl.py index 13ede0cc6..2cd2f5950 100644 --- a/sickbeard/notifiers/growl.py +++ b/sickbeard/notifiers/growl.py @@ -23,9 +23,9 @@ from __future__ import print_function, unicode_literals import socket import sickbeard -from sickbeard import logger, common -from sickrage.helper.exceptions import ex from libgrowl import gntp +from sickbeard import common, logger +from sickrage.helper.exceptions import ex class Notifier(object): diff --git a/sickbeard/notifiers/join.py b/sickbeard/notifiers/join.py index dd8f89c7e..a082762af 100644 --- a/sickbeard/notifiers/join.py +++ b/sickbeard/notifiers/join.py @@ -19,12 +19,10 @@ from __future__ import unicode_literals - import sickbeard from sickbeard import logger -from sickbeard.common import NOTIFY_DOWNLOAD, NOTIFY_GIT_UPDATE, NOTIFY_GIT_UPDATE_TEXT, NOTIFY_LOGIN, NOTIFY_LOGIN_TEXT, NOTIFY_SNATCH, \ - NOTIFY_SUBTITLE_DOWNLOAD, notifyStrings - +from sickbeard.common import (NOTIFY_DOWNLOAD, NOTIFY_GIT_UPDATE, NOTIFY_GIT_UPDATE_TEXT, NOTIFY_LOGIN, NOTIFY_LOGIN_TEXT, NOTIFY_SNATCH, + NOTIFY_SUBTITLE_DOWNLOAD, notifyStrings) from six.moves import urllib diff --git a/sickbeard/notifiers/kodi.py b/sickbeard/notifiers/kodi.py index 77268e0c8..c6e5dd8e7 100644 --- a/sickbeard/notifiers/kodi.py +++ b/sickbeard/notifiers/kodi.py @@ -20,18 +20,16 @@ from __future__ import print_function, unicode_literals -import socket import base64 +import socket import time import sickbeard -from sickbeard import logger, common -from sickrage.helper.exceptions import ex -from sickrage.helper.encoding import ss import six -from six.moves import urllib -from six.moves import http_client - +from sickbeard import common, logger +from sickrage.helper.encoding import ss +from sickrage.helper.exceptions import ex +from six.moves import http_client, urllib try: import xml.etree.cElementTree as etree diff --git a/sickbeard/notifiers/libnotify.py b/sickbeard/notifiers/libnotify.py index 2cdf75247..7496f9776 100644 --- a/sickbeard/notifiers/libnotify.py +++ b/sickbeard/notifiers/libnotify.py @@ -20,12 +20,11 @@ from __future__ import print_function, unicode_literals -import os import cgi +import os import warnings import sickbeard - from sickbeard import common from sickrage.helper.encoding import ek diff --git a/sickbeard/notifiers/nma.py b/sickbeard/notifiers/nma.py index 449d6d225..028bbccb9 100644 --- a/sickbeard/notifiers/nma.py +++ b/sickbeard/notifiers/nma.py @@ -3,9 +3,8 @@ from __future__ import print_function, unicode_literals import sickbeard - -from sickbeard import logger, common from pynma import pynma +from sickbeard import common, logger class Notifier(object): diff --git a/sickbeard/notifiers/nmj.py b/sickbeard/notifiers/nmj.py index 26fb58e83..2e90e5560 100644 --- a/sickbeard/notifiers/nmj.py +++ b/sickbeard/notifiers/nmj.py @@ -20,16 +20,14 @@ from __future__ import print_function, unicode_literals -import sickbeard -import telnetlib import re +import telnetlib +import sickbeard from sickbeard import logger from sickrage.helper.exceptions import ex - from six.moves import urllib - try: import xml.etree.cElementTree as etree except ImportError: diff --git a/sickbeard/notifiers/nmjv2.py b/sickbeard/notifiers/nmjv2.py index 66afd2e60..0595ac42b 100644 --- a/sickbeard/notifiers/nmjv2.py +++ b/sickbeard/notifiers/nmjv2.py @@ -21,15 +21,13 @@ from __future__ import print_function, unicode_literals -from xml.dom.minidom import parseString -import sickbeard import time +from xml.dom.minidom import parseString +import sickbeard from sickbeard import logger - from six.moves import urllib - try: import xml.etree.cElementTree as etree except ImportError: diff --git a/sickbeard/notifiers/plex.py b/sickbeard/notifiers/plex.py index 449c561bc..c91b516f4 100644 --- a/sickbeard/notifiers/plex.py +++ b/sickbeard/notifiers/plex.py @@ -21,17 +21,19 @@ from __future__ import print_function, unicode_literals import re + +import sickbeard +import six +from sickbeard import common, logger +from sickbeard.helpers import getURL, make_session +from sickrage.helper.exceptions import ex + try: import xml.etree.cElementTree as etree except ImportError: import xml.etree.ElementTree as etree -import sickbeard -from sickbeard import logger, common -from sickbeard.helpers import getURL, make_session -import six -from sickrage.helper.exceptions import ex class Notifier(object): diff --git a/sickbeard/notifiers/prowl.py b/sickbeard/notifiers/prowl.py index 230b8c660..3582480ad 100644 --- a/sickbeard/notifiers/prowl.py +++ b/sickbeard/notifiers/prowl.py @@ -22,8 +22,15 @@ from __future__ import unicode_literals +import ast import socket +import time + +import sickbeard from requests.compat import urlencode +from sickbeard import common, db, logger +from sickrage.helper.encoding import ss +from six.moves.http_client import HTTPException, HTTPSConnection try: # this only exists in 2.6 @@ -33,13 +40,7 @@ except ImportError: class SSLError(Exception): pass -import sickbeard -from six.moves.http_client import HTTPSConnection, HTTPException -import time -import ast -from sickbeard import logger, common, db -from sickrage.helper.encoding import ss class Notifier(object): diff --git a/sickbeard/notifiers/pushalot.py b/sickbeard/notifiers/pushalot.py index 385cb9f29..a6bdb6869 100644 --- a/sickbeard/notifiers/pushalot.py +++ b/sickbeard/notifiers/pushalot.py @@ -22,7 +22,7 @@ from __future__ import unicode_literals import sickbeard -from sickbeard import logger, common +from sickbeard import common, logger class Notifier(object): diff --git a/sickbeard/notifiers/pushbullet.py b/sickbeard/notifiers/pushbullet.py index b5c5346f7..4f9a95af2 100644 --- a/sickbeard/notifiers/pushbullet.py +++ b/sickbeard/notifiers/pushbullet.py @@ -19,11 +19,12 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import unicode_literals -from requests.compat import urljoin + import re import sickbeard -from sickbeard import logger, helpers, common +from requests.compat import urljoin +from sickbeard import common, helpers, logger class Notifier(object): diff --git a/sickbeard/notifiers/pushover.py b/sickbeard/notifiers/pushover.py index fca635ff6..9c479b787 100644 --- a/sickbeard/notifiers/pushover.py +++ b/sickbeard/notifiers/pushover.py @@ -25,11 +25,10 @@ import time import sickbeard from sickbeard import logger -from sickbeard.common import notifyStrings, NOTIFY_SNATCH, NOTIFY_DOWNLOAD, NOTIFY_SUBTITLE_DOWNLOAD, NOTIFY_GIT_UPDATE, NOTIFY_GIT_UPDATE_TEXT, NOTIFY_LOGIN_TEXT, NOTIFY_LOGIN +from sickbeard.common import (NOTIFY_DOWNLOAD, NOTIFY_GIT_UPDATE, NOTIFY_GIT_UPDATE_TEXT, NOTIFY_LOGIN, NOTIFY_LOGIN_TEXT, NOTIFY_SNATCH, + NOTIFY_SUBTITLE_DOWNLOAD, notifyStrings) from sickrage.helper.exceptions import ex - -from six.moves import urllib, http_client - +from six.moves import http_client, urllib API_URL = "https://api.pushover.net/1/messages.json" diff --git a/sickbeard/notifiers/pytivo.py b/sickbeard/notifiers/pytivo.py index 8dd71edad..183bc7194 100644 --- a/sickbeard/notifiers/pytivo.py +++ b/sickbeard/notifiers/pytivo.py @@ -21,15 +21,14 @@ from __future__ import print_function, unicode_literals import os -import sickbeard +import sickbeard from requests.compat import urlencode -from six.moves.urllib.error import HTTPError -from six.moves.urllib.request import Request, urlopen - from sickbeard import logger from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex +from six.moves.urllib.error import HTTPError +from six.moves.urllib.request import Request, urlopen class Notifier(object): diff --git a/sickbeard/notifiers/slack.py b/sickbeard/notifiers/slack.py index ad6786163..80a677129 100644 --- a/sickbeard/notifiers/slack.py +++ b/sickbeard/notifiers/slack.py @@ -19,14 +19,12 @@ from __future__ import unicode_literals import json -import requests +import requests import sickbeard -from sickbeard import logger, common -from sickrage.helper.exceptions import ex - - import six +from sickbeard import common, logger +from sickrage.helper.exceptions import ex class Notifier(object): diff --git a/sickbeard/notifiers/synoindex.py b/sickbeard/notifiers/synoindex.py index 6081bc0c7..64d115c83 100644 --- a/sickbeard/notifiers/synoindex.py +++ b/sickbeard/notifiers/synoindex.py @@ -24,7 +24,6 @@ import os import subprocess import sickbeard - from sickbeard import logger from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex diff --git a/sickbeard/notifiers/synologynotifier.py b/sickbeard/notifiers/synologynotifier.py index 93afa0926..c39c65191 100644 --- a/sickbeard/notifiers/synologynotifier.py +++ b/sickbeard/notifiers/synologynotifier.py @@ -23,9 +23,7 @@ import os import subprocess import sickbeard - -from sickbeard import logger -from sickbeard import common +from sickbeard import common, logger from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex diff --git a/sickbeard/notifiers/telegram.py b/sickbeard/notifiers/telegram.py index 31731abf4..496df590a 100644 --- a/sickbeard/notifiers/telegram.py +++ b/sickbeard/notifiers/telegram.py @@ -21,15 +21,11 @@ from __future__ import unicode_literals - import sickbeard from sickbeard import logger -from sickbeard.common import notifyStrings, NOTIFY_GIT_UPDATE, NOTIFY_GIT_UPDATE_TEXT, NOTIFY_LOGIN, NOTIFY_LOGIN_TEXT, \ - NOTIFY_SNATCH, NOTIFY_DOWNLOAD, NOTIFY_SUBTITLE_DOWNLOAD - +from sickbeard.common import (NOTIFY_DOWNLOAD, NOTIFY_GIT_UPDATE, NOTIFY_GIT_UPDATE_TEXT, NOTIFY_LOGIN, NOTIFY_LOGIN_TEXT, NOTIFY_SNATCH, + NOTIFY_SUBTITLE_DOWNLOAD, notifyStrings) from sickrage.helper import HTTP_STATUS_CODES - - from six.moves import urllib diff --git a/sickbeard/notifiers/trakt.py b/sickbeard/notifiers/trakt.py index d8bba7491..12d537d9c 100644 --- a/sickbeard/notifiers/trakt.py +++ b/sickbeard/notifiers/trakt.py @@ -21,12 +21,11 @@ from __future__ import print_function, unicode_literals import sickbeard +from libtrakt import TraktAPI +from libtrakt.exceptions import traktAuthException, traktException, traktServerBusy from sickbeard import logger from sickrage.helper.exceptions import ex -from libtrakt import TraktAPI -from libtrakt.exceptions import traktException, traktServerBusy, traktAuthException - class Notifier(object): """ diff --git a/sickbeard/notifiers/tweet.py b/sickbeard/notifiers/tweet.py index 6950ea0c6..d77f5425c 100644 --- a/sickbeard/notifiers/tweet.py +++ b/sickbeard/notifiers/tweet.py @@ -20,9 +20,10 @@ from __future__ import print_function, unicode_literals +import oauth2 as oauth +import pythontwitter as twitter import sickbeard - -from sickbeard import logger, common +from sickbeard import common, logger from sickrage.helper.exceptions import ex try: @@ -30,8 +31,6 @@ try: except ImportError: from cgi import parse_qsl -import oauth2 as oauth -import pythontwitter as twitter class Notifier(object): diff --git a/sickbeard/notifiers/twilio_notify.py b/sickbeard/notifiers/twilio_notify.py index deec6a00d..d2eaabf54 100644 --- a/sickbeard/notifiers/twilio_notify.py +++ b/sickbeard/notifiers/twilio_notify.py @@ -20,13 +20,12 @@ from __future__ import print_function, unicode_literals -import sickbeard import re -from sickbeard import logger, common -from sickrage.helper.exceptions import ex - +import sickbeard import twilio +from sickbeard import common, logger +from sickrage.helper.exceptions import ex class Notifier(object): diff --git a/sickbeard/numdict.py b/sickbeard/numdict.py index 069646641..ecf83a7ec 100644 --- a/sickbeard/numdict.py +++ b/sickbeard/numdict.py @@ -5,7 +5,9 @@ class NumDict - A dict with numeric keys """ from __future__ import print_function, unicode_literals + from collections import MutableMapping + import six diff --git a/sickbeard/nzbSplitter.py b/sickbeard/nzbSplitter.py index 0e93c4181..e0af927c2 100644 --- a/sickbeard/nzbSplitter.py +++ b/sickbeard/nzbSplitter.py @@ -24,15 +24,16 @@ from __future__ import print_function, unicode_literals import re +from sickbeard import classes, helpers, logger +from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser +from sickrage.helper.encoding import ek, ss +from sickrage.helper.exceptions import ex + try: import xml.etree.cElementTree as ETree except ImportError: import xml.etree.ElementTree as ETree -from sickbeard import logger, classes, helpers -from sickbeard.name_parser.parser import NameParser, InvalidNameException, InvalidShowException -from sickrage.helper.encoding import ek, ss -from sickrage.helper.exceptions import ex def get_season_nzbs(name, url_data, season): diff --git a/sickbeard/nzbget.py b/sickbeard/nzbget.py index 366274e3e..3d2d3cc6d 100644 --- a/sickbeard/nzbget.py +++ b/sickbeard/nzbget.py @@ -27,10 +27,7 @@ import sickbeard from sickbeard import logger from sickbeard.common import Quality from sickrage.helper.common import try_int -from six.moves import xmlrpc_client - - -from six.moves import http_client +from six.moves import http_client, xmlrpc_client def sendNZB(nzb, proper=False): # pylint: disable=too-many-locals, too-many-statements, too-many-branches, too-many-return-statements diff --git a/sickbeard/postProcessor.py b/sickbeard/postProcessor.py index ac3487fdf..83afdf767 100644 --- a/sickbeard/postProcessor.py +++ b/sickbeard/postProcessor.py @@ -28,21 +28,17 @@ import stat import subprocess import adba - import sickbeard +import six from sickbeard import common, db, failed_history, helpers, history, logger, notifiers, show_name_helpers from sickbeard.helpers import verify_freespace from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickrage.helper import glob -from sickrage.helper.common import SUBTITLE_EXTENSIONS, remove_extension, replace_extension +from sickrage.helper.common import remove_extension, replace_extension, SUBTITLE_EXTENSIONS from sickrage.helper.encoding import ek -from sickrage.helper.exceptions import EpisodeNotFoundException, EpisodePostProcessingFailedException, \ - ShowDirectoryNotFoundException, ex +from sickrage.helper.exceptions import EpisodeNotFoundException, EpisodePostProcessingFailedException, ex, ShowDirectoryNotFoundException from sickrage.show.Show import Show - -import six - METHOD_COPY = "copy" METHOD_MOVE = "move" METHOD_HARDLINK = "hardlink" diff --git a/sickbeard/post_processing_queue.py b/sickbeard/post_processing_queue.py index 0f527ba76..1f9d7e1a6 100644 --- a/sickbeard/post_processing_queue.py +++ b/sickbeard/post_processing_queue.py @@ -25,7 +25,7 @@ import traceback import sickbeard from sickbeard import common, config, generic_queue, logger, processTV -from sickbeard.processTV import process_dir, log_helper +from sickbeard.processTV import log_helper, process_dir from sickrage.helper.encoding import ek MANUAL_POST_PROCESS = 120 diff --git a/sickbeard/processTV.py b/sickbeard/processTV.py index d8c74a4f8..39a03745c 100644 --- a/sickbeard/processTV.py +++ b/sickbeard/processTV.py @@ -24,17 +24,15 @@ import os import shutil import stat -from rarfile import RarFile, RarWarning, RarFatalError, RarCRCError, NoRarEntry, NotRarFile, \ - RarLockedArchiveError, RarWriteError, RarOpenError, RarUserError, RarMemoryError, BadRarName, BadRarFile, \ - RarNoFilesError, RarWrongPassword, RarCannotExec, RarSignalExit, RarUnknownError, Error, \ - RarUserBreak, RarCreateError, RarExecError, NoCrypto, NeedFirstVolume, PasswordRequired - import sickbeard +from rarfile import (BadRarFile, BadRarName, Error, NeedFirstVolume, NoCrypto, NoRarEntry, NotRarFile, PasswordRequired, RarCannotExec, RarCRCError, + RarCreateError, RarExecError, RarFatalError, RarFile, RarLockedArchiveError, RarMemoryError, RarNoFilesError, RarOpenError, RarSignalExit, + RarUnknownError, RarUserBreak, RarUserError, RarWarning, RarWriteError, RarWrongPassword) from sickbeard import common, db, failedProcessor, helpers, logger, postProcessor from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickrage.helper.common import is_sync_file, is_torrent_or_nzb_file from sickrage.helper.encoding import ek, ss -from sickrage.helper.exceptions import EpisodePostProcessingFailedException, FailedPostProcessingFailedException, ex +from sickrage.helper.exceptions import EpisodePostProcessingFailedException, ex, FailedPostProcessingFailedException class ProcessResult(object): # pylint: disable=too-few-public-methods diff --git a/sickbeard/properFinder.py b/sickbeard/properFinder.py index 9c71b7c07..be97e993a 100644 --- a/sickbeard/properFinder.py +++ b/sickbeard/properFinder.py @@ -29,7 +29,7 @@ import traceback import sickbeard from sickbeard import db, helpers, logger -from sickbeard.common import DOWNLOADED, Quality, SNATCHED, SNATCHED_PROPER, cpu_presets +from sickbeard.common import cpu_presets, DOWNLOADED, Quality, SNATCHED, SNATCHED_PROPER from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickbeard.search import pickBestResult, snatchEpisode from sickrage.helper.exceptions import AuthException, ex diff --git a/sickbeard/providers/abnormal.py b/sickbeard/providers/abnormal.py index 9ee1a399e..21f3a7aca 100644 --- a/sickbeard/providers/abnormal.py +++ b/sickbeard/providers/abnormal.py @@ -21,12 +21,11 @@ from __future__ import unicode_literals import re + from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/alpharatio.py b/sickbeard/providers/alpharatio.py index 7606c976b..73ee672a2 100644 --- a/sickbeard/providers/alpharatio.py +++ b/sickbeard/providers/alpharatio.py @@ -19,14 +19,13 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import unicode_literals + import re from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/archetorrent.py b/sickbeard/providers/archetorrent.py index 26270f81b..51e6c80a2 100644 --- a/sickbeard/providers/archetorrent.py +++ b/sickbeard/providers/archetorrent.py @@ -22,12 +22,11 @@ from __future__ import unicode_literals import re + from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/binsearch.py b/sickbeard/providers/binsearch.py index a1941508d..f9ae5b145 100644 --- a/sickbeard/providers/binsearch.py +++ b/sickbeard/providers/binsearch.py @@ -21,10 +21,9 @@ from __future__ import unicode_literals import re -from requests.compat import urljoin +from requests.compat import urljoin from sickbeard import logger, tvcache - from sickrage.providers.nzb.NZBProvider import NZBProvider diff --git a/sickbeard/providers/bitcannon.py b/sickbeard/providers/bitcannon.py index 6a0b5d90c..7c01df08f 100644 --- a/sickbeard/providers/bitcannon.py +++ b/sickbeard/providers/bitcannon.py @@ -20,11 +20,9 @@ from __future__ import unicode_literals -from requests.compat import urljoin import validators - +from requests.compat import urljoin from sickbeard import logger, tvcache - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/btn.py b/sickbeard/providers/btn.py index 28c31b418..ead42b524 100644 --- a/sickbeard/providers/btn.py +++ b/sickbeard/providers/btn.py @@ -20,18 +20,17 @@ from __future__ import print_function, unicode_literals -from datetime import datetime -import jsonrpclib import math import socket import time +from datetime import datetime +import jsonrpclib import sickbeard +import six from sickbeard import classes, logger, scene_exceptions, tvcache from sickbeard.common import cpu_presets from sickbeard.helpers import sanitizeSceneName -import six - from sickrage.helper.common import episode_num from sickrage.helper.exceptions import AuthException, ex from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/cpasbien.py b/sickbeard/providers/cpasbien.py index b5b946182..bae40652c 100644 --- a/sickbeard/providers/cpasbien.py +++ b/sickbeard/providers/cpasbien.py @@ -24,7 +24,6 @@ import re from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/danishbits.py b/sickbeard/providers/danishbits.py index 21f94cab5..f9d831b4d 100644 --- a/sickbeard/providers/danishbits.py +++ b/sickbeard/providers/danishbits.py @@ -20,11 +20,11 @@ from __future__ import print_function, unicode_literals -from requests.utils import dict_from_cookiejar import json + +from requests.utils import dict_from_cookiejar from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/elitetorrent.py b/sickbeard/providers/elitetorrent.py index 79c95083e..887ffecaf 100644 --- a/sickbeard/providers/elitetorrent.py +++ b/sickbeard/providers/elitetorrent.py @@ -25,11 +25,10 @@ import time import traceback import sickbeard +import six from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser from sickbeard.common import cpu_presets -import six - from sickrage.helper.common import try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/filelist.py b/sickbeard/providers/filelist.py index 692f6f80b..af1787c9c 100644 --- a/sickbeard/providers/filelist.py +++ b/sickbeard/providers/filelist.py @@ -18,14 +18,13 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import unicode_literals + import re from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/gftracker.py b/sickbeard/providers/gftracker.py index e436ceb8f..e7f66274c 100644 --- a/sickbeard/providers/gftracker.py +++ b/sickbeard/providers/gftracker.py @@ -23,10 +23,8 @@ from __future__ import print_function, unicode_literals import re from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/hd4free.py b/sickbeard/providers/hd4free.py index c4a0ff279..5d96d6c7c 100644 --- a/sickbeard/providers/hd4free.py +++ b/sickbeard/providers/hd4free.py @@ -22,7 +22,6 @@ from __future__ import print_function, unicode_literals from requests.compat import urljoin from sickbeard import logger, tvcache - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/hdbits.py b/sickbeard/providers/hdbits.py index ad41ad71c..9eef83b95 100644 --- a/sickbeard/providers/hdbits.py +++ b/sickbeard/providers/hdbits.py @@ -20,10 +20,9 @@ from __future__ import print_function, unicode_literals import datetime -from requests.compat import urlencode, urljoin +from requests.compat import urlencode, urljoin from sickbeard import classes, logger, tvcache - from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/hdspace.py b/sickbeard/providers/hdspace.py index 792aa84f1..7a63b7170 100644 --- a/sickbeard/providers/hdspace.py +++ b/sickbeard/providers/hdspace.py @@ -22,14 +22,13 @@ from __future__ import print_function, unicode_literals import re -from requests.utils import dict_from_cookiejar -from bs4 import BeautifulSoup +from bs4 import BeautifulSoup +from requests.utils import dict_from_cookiejar from sickbeard import logger, tvcache -from six.moves.urllib.parse import quote_plus - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider +from six.moves.urllib.parse import quote_plus class HDSpaceProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes diff --git a/sickbeard/providers/hdtorrents.py b/sickbeard/providers/hdtorrents.py index 6322271f2..6de831554 100644 --- a/sickbeard/providers/hdtorrents.py +++ b/sickbeard/providers/hdtorrents.py @@ -21,14 +21,13 @@ from __future__ import print_function, unicode_literals import re -from requests.utils import dict_from_cookiejar +from requests.utils import dict_from_cookiejar from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser -from six.moves.urllib.parse import quote_plus - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider +from six.moves.urllib.parse import quote_plus class HDTorrentsProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes diff --git a/sickbeard/providers/hdtorrents_it.py b/sickbeard/providers/hdtorrents_it.py index 2200e4cf2..5c430cc93 100644 --- a/sickbeard/providers/hdtorrents_it.py +++ b/sickbeard/providers/hdtorrents_it.py @@ -21,14 +21,13 @@ from __future__ import print_function, unicode_literals import re -from requests.utils import dict_from_cookiejar +from requests.utils import dict_from_cookiejar from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser -from six.moves.urllib.parse import quote_plus - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider +from six.moves.urllib.parse import quote_plus class HDTorrentsProvider_IT(TorrentProvider): # pylint: disable=too-many-instance-attributes diff --git a/sickbeard/providers/horriblesubs.py b/sickbeard/providers/horriblesubs.py index 0ad524f1c..02dc82100 100755 --- a/sickbeard/providers/horriblesubs.py +++ b/sickbeard/providers/horriblesubs.py @@ -22,7 +22,6 @@ from __future__ import print_function, unicode_literals from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/hounddawgs.py b/sickbeard/providers/hounddawgs.py index 60d0d35a0..6b8b8ebc0 100644 --- a/sickbeard/providers/hounddawgs.py +++ b/sickbeard/providers/hounddawgs.py @@ -22,11 +22,10 @@ from __future__ import print_function, unicode_literals import re import traceback -from requests.utils import dict_from_cookiejar +from requests.utils import dict_from_cookiejar from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/ilcorsaronero.py b/sickbeard/providers/ilcorsaronero.py index c8a8ca396..d81bb1259 100644 --- a/sickbeard/providers/ilcorsaronero.py +++ b/sickbeard/providers/ilcorsaronero.py @@ -17,6 +17,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import re import traceback import urllib @@ -24,8 +26,7 @@ import urllib from sickbeard import db, logger, tvcache from sickbeard.bs4_parser import BS4Parser from sickbeard.common import Quality -from sickbeard.name_parser.parser import NameParser, InvalidNameException, InvalidShowException - +from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider @@ -55,6 +56,7 @@ class ilCorsaroNeroProvider(TorrentProvider): # pylint: disable=too-many-instan TorrentProvider.__init__(self, 'ilCorsaroNero') + self.public = True self._uid = None self._hash = None self.cat = None diff --git a/sickbeard/providers/immortalseed.py b/sickbeard/providers/immortalseed.py index 64c4c6499..412766acd 100755 --- a/sickbeard/providers/immortalseed.py +++ b/sickbeard/providers/immortalseed.py @@ -24,12 +24,10 @@ import re from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - -from sickrage.helper.exceptions import AuthException from sickrage.helper.common import convert_size, try_int +from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/iptorrents.py b/sickbeard/providers/iptorrents.py index 927ecf2c1..d3e5a22f7 100644 --- a/sickbeard/providers/iptorrents.py +++ b/sickbeard/providers/iptorrents.py @@ -25,7 +25,6 @@ import re import validators from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser from sickrage.helper.common import convert_size, try_int diff --git a/sickbeard/providers/kat.py b/sickbeard/providers/kat.py index 471425c7b..996764f5b 100644 --- a/sickbeard/providers/kat.py +++ b/sickbeard/providers/kat.py @@ -19,13 +19,11 @@ from __future__ import unicode_literals +import sickbeard import validators from requests.compat import urljoin -from sickbeard.bs4_parser import BS4Parser - -import sickbeard from sickbeard import logger, tvcache - +from sickbeard.bs4_parser import BS4Parser from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/limetorrents.py b/sickbeard/providers/limetorrents.py index dbfaa4e2e..b8be2c2e9 100644 --- a/sickbeard/providers/limetorrents.py +++ b/sickbeard/providers/limetorrents.py @@ -22,11 +22,10 @@ from __future__ import print_function, unicode_literals import re import traceback -from bs4 import BeautifulSoup -import sickbeard +import sickbeard +from bs4 import BeautifulSoup from sickbeard import logger, tvcache - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/morethantv.py b/sickbeard/providers/morethantv.py index 7f090da40..81d6dd063 100644 --- a/sickbeard/providers/morethantv.py +++ b/sickbeard/providers/morethantv.py @@ -24,12 +24,10 @@ import re from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - -from sickrage.helper.exceptions import AuthException from sickrage.helper.common import convert_size, try_int +from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/ncore.py b/sickbeard/providers/ncore.py index 212b60d3e..bc8f1f652 100644 --- a/sickbeard/providers/ncore.py +++ b/sickbeard/providers/ncore.py @@ -14,8 +14,8 @@ from __future__ import print_function, unicode_literals -import re import json +import re from sickbeard import logger, tvcache from sickrage.helper.common import convert_size, try_int diff --git a/sickbeard/providers/nebulance.py b/sickbeard/providers/nebulance.py index 90b6c4487..70d88217a 100644 --- a/sickbeard/providers/nebulance.py +++ b/sickbeard/providers/nebulance.py @@ -21,12 +21,11 @@ from __future__ import print_function, unicode_literals import re import traceback -from requests.utils import dict_from_cookiejar -from requests.compat import urljoin +from requests.compat import urljoin +from requests.utils import dict_from_cookiejar from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import try_int from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/newpct.py b/sickbeard/providers/newpct.py index cebbc38e1..afe21f2c4 100644 --- a/sickbeard/providers/newpct.py +++ b/sickbeard/providers/newpct.py @@ -19,13 +19,12 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import print_function, unicode_literals -from requests.compat import urljoin + import re -from sickbeard import helpers -from sickbeard import logger, tvcache +from requests.compat import urljoin +from sickbeard import helpers, logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/newznab.py b/sickbeard/providers/newznab.py index 6bab2af61..4a1efaac4 100644 --- a/sickbeard/providers/newznab.py +++ b/sickbeard/providers/newznab.py @@ -19,17 +19,17 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import unicode_literals -from requests.compat import urljoin + import os import re import time -import validators import sickbeard +import validators +from requests.compat import urljoin from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser from sickbeard.common import cpu_presets - from sickrage.helper.common import convert_size, try_int from sickrage.helper.encoding import ek, ss from sickrage.providers.nzb.NZBProvider import NZBProvider diff --git a/sickbeard/providers/norbits.py b/sickbeard/providers/norbits.py index 18185c548..6c762c204 100644 --- a/sickbeard/providers/norbits.py +++ b/sickbeard/providers/norbits.py @@ -19,12 +19,11 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import unicode_literals -from requests.compat import urlencode +from requests.compat import urlencode from sickbeard import logger, tvcache - -from sickrage.helper.exceptions import AuthException from sickrage.helper.common import convert_size, try_int +from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider try: diff --git a/sickbeard/providers/nyaa.py b/sickbeard/providers/nyaa.py index e10323457..2d2f9507d 100644 --- a/sickbeard/providers/nyaa.py +++ b/sickbeard/providers/nyaa.py @@ -23,7 +23,6 @@ from __future__ import print_function, unicode_literals import re from sickbeard import logger, tvcache - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider @@ -80,16 +79,10 @@ class NyaaProvider(TorrentProvider): # pylint: disable=too-many-instance-attrib if not all([title, download_url]): continue - try: - seeders = try_int(curItem['nyaa:seeders']) - leechers = try_int(curItem['nyaa:leechers']) - torrent_size = curItem['nyaa:size'] - info_hash = curItem['nyaa:infohash'] - except KeyError: # Transition phase because of https://github.com/nyaadevs/nyaa/pull/140 - seeders = try_int(curItem['seeders']) - leechers = try_int(curItem['leechers']) - torrent_size = curItem['size'] - info_hash = curItem['infohash'] + seeders = try_int(curItem['nyaa_seeders']) + leechers = try_int(curItem['nyaa_leechers']) + torrent_size = curItem['nyaa_size'] + info_hash = curItem['nyaa_infohash'] if seeders < self.minseed or leechers < self.minleech: if mode != 'RSS': diff --git a/sickbeard/providers/omgwtfnzbs.py b/sickbeard/providers/omgwtfnzbs.py index 72b82cfea..52061e8f5 100644 --- a/sickbeard/providers/omgwtfnzbs.py +++ b/sickbeard/providers/omgwtfnzbs.py @@ -22,7 +22,6 @@ from __future__ import unicode_literals import sickbeard from sickbeard import logger, tvcache - from sickrage.helper.common import try_int from sickrage.providers.nzb.NZBProvider import NZBProvider diff --git a/sickbeard/providers/pretome.py b/sickbeard/providers/pretome.py index ae6286a6d..b91faacda 100644 --- a/sickbeard/providers/pretome.py +++ b/sickbeard/providers/pretome.py @@ -22,15 +22,14 @@ from __future__ import print_function, unicode_literals import re import traceback -from requests.utils import dict_from_cookiejar +from requests.utils import dict_from_cookiejar from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser -# noinspection PyUnresolvedReferences -from six.moves.urllib.parse import quote - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider +# noinspection PyUnresolvedReferences +from six.moves.urllib.parse import quote class PretomeProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes diff --git a/sickbeard/providers/rarbg.py b/sickbeard/providers/rarbg.py index 3eeff5fa8..1d5034b68 100644 --- a/sickbeard/providers/rarbg.py +++ b/sickbeard/providers/rarbg.py @@ -27,7 +27,6 @@ import sickbeard from sickbeard import logger, tvcache from sickbeard.common import cpu_presets from sickbeard.indexers.indexer_config import INDEXER_TVDB - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/rsstorrent.py b/sickbeard/providers/rsstorrent.py index 57e3eef61..5353e2848 100644 --- a/sickbeard/providers/rsstorrent.py +++ b/sickbeard/providers/rsstorrent.py @@ -23,12 +23,11 @@ from __future__ import unicode_literals import io import os import re -from requests.utils import add_dict_to_cookiejar -import bencode +import bencode import sickbeard +from requests.utils import add_dict_to_cookiejar from sickbeard import helpers, logger, tvcache - from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/scc.py b/sickbeard/providers/scc.py index de20c1640..b569b9445 100644 --- a/sickbeard/providers/scc.py +++ b/sickbeard/providers/scc.py @@ -22,17 +22,16 @@ from __future__ import print_function, unicode_literals import re import time -from requests.compat import urljoin -from requests.utils import dict_from_cookiejar import sickbeard +from requests.compat import urljoin +from requests.utils import dict_from_cookiejar from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser from sickbeard.common import cpu_presets -from six.moves.urllib.parse import quote - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider +from six.moves.urllib.parse import quote class SCCProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes diff --git a/sickbeard/providers/scenetime.py b/sickbeard/providers/scenetime.py index c5f04e033..5c322d2dd 100644 --- a/sickbeard/providers/scenetime.py +++ b/sickbeard/providers/scenetime.py @@ -21,7 +21,6 @@ from __future__ import print_function, unicode_literals from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser from sickrage.helper.common import convert_size, try_int diff --git a/sickbeard/providers/shazbat.py b/sickbeard/providers/shazbat.py index 40ed2a1af..875ac518c 100644 --- a/sickbeard/providers/shazbat.py +++ b/sickbeard/providers/shazbat.py @@ -21,7 +21,6 @@ from __future__ import unicode_literals from requests.compat import urljoin - from sickbeard import logger, tvcache from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/skytorrents.py b/sickbeard/providers/skytorrents.py index 8a760096c..aa2bd61ec 100644 --- a/sickbeard/providers/skytorrents.py +++ b/sickbeard/providers/skytorrents.py @@ -19,13 +19,12 @@ from __future__ import unicode_literals -import feedparser import re + +import feedparser import validators from requests.compat import urljoin - from sickbeard import logger, tvcache - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/speedcd.py b/sickbeard/providers/speedcd.py index f0ed4726f..34086dda8 100644 --- a/sickbeard/providers/speedcd.py +++ b/sickbeard/providers/speedcd.py @@ -24,10 +24,8 @@ import re from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/t411.py b/sickbeard/providers/t411.py index 041229db8..24f67b0c9 100644 --- a/sickbeard/providers/t411.py +++ b/sickbeard/providers/t411.py @@ -20,14 +20,13 @@ from __future__ import print_function, unicode_literals -from requests.auth import AuthBase -import six import time import traceback +import six +from requests.auth import AuthBase from sickbeard import logger, tvcache -from sickrage.helper.common import try_int -from sickrage.helper.common import convert_size +from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/thepiratebay.py b/sickbeard/providers/thepiratebay.py index 4a5b9fa35..27d624e5f 100644 --- a/sickbeard/providers/thepiratebay.py +++ b/sickbeard/providers/thepiratebay.py @@ -21,12 +21,11 @@ from __future__ import unicode_literals import re + import validators from requests.compat import urljoin - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/tntvillage.py b/sickbeard/providers/tntvillage.py index 95626a3f1..31c68966f 100644 --- a/sickbeard/providers/tntvillage.py +++ b/sickbeard/providers/tntvillage.py @@ -26,8 +26,7 @@ import traceback from sickbeard import db, logger, tvcache from sickbeard.bs4_parser import BS4Parser from sickbeard.common import Quality -from sickbeard.name_parser.parser import NameParser, InvalidNameException, InvalidShowException - +from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickrage.helper.common import convert_size, try_int from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/tokyotoshokan.py b/sickbeard/providers/tokyotoshokan.py index 954c28029..f65c192af 100644 --- a/sickbeard/providers/tokyotoshokan.py +++ b/sickbeard/providers/tokyotoshokan.py @@ -24,7 +24,6 @@ import re from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/torrent9.py b/sickbeard/providers/torrent9.py index 80b61d659..58fa1fd85 100644 --- a/sickbeard/providers/torrent9.py +++ b/sickbeard/providers/torrent9.py @@ -24,7 +24,6 @@ import re from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/torrentbytes.py b/sickbeard/providers/torrentbytes.py index 170a28af0..8aa4d38ae 100644 --- a/sickbeard/providers/torrentbytes.py +++ b/sickbeard/providers/torrentbytes.py @@ -24,7 +24,6 @@ import re from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser from sickrage.helper.common import convert_size, try_int diff --git a/sickbeard/providers/torrentday.py b/sickbeard/providers/torrentday.py index 8fba9d455..bcf37b6f7 100644 --- a/sickbeard/providers/torrentday.py +++ b/sickbeard/providers/torrentday.py @@ -21,12 +21,11 @@ from __future__ import unicode_literals import re + +import validators from requests.compat import urljoin from requests.utils import dict_from_cookiejar -import validators - from sickbeard import logger, tvcache - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/torrentleech.py b/sickbeard/providers/torrentleech.py index bdf960d17..91d0f2345 100644 --- a/sickbeard/providers/torrentleech.py +++ b/sickbeard/providers/torrentleech.py @@ -21,12 +21,11 @@ from __future__ import unicode_literals import re + from requests.compat import urljoin from requests.utils import dict_from_cookiejar - from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/torrentproject.py b/sickbeard/providers/torrentproject.py index c2562bfa5..0f6d31295 100644 --- a/sickbeard/providers/torrentproject.py +++ b/sickbeard/providers/torrentproject.py @@ -21,9 +21,7 @@ from __future__ import print_function, unicode_literals import validators - from sickbeard import logger, tvcache - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/torrentz.py b/sickbeard/providers/torrentz.py index 995254f7a..016dc79f4 100644 --- a/sickbeard/providers/torrentz.py +++ b/sickbeard/providers/torrentz.py @@ -25,7 +25,6 @@ import traceback from sickbeard import logger, tvcache from sickbeard.bs4_parser import BS4Parser - from sickrage.helper.common import convert_size, try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/providers/tvchaosuk.py b/sickbeard/providers/tvchaosuk.py index fce7831df..51d2d30f4 100644 --- a/sickbeard/providers/tvchaosuk.py +++ b/sickbeard/providers/tvchaosuk.py @@ -18,6 +18,7 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import print_function, unicode_literals + import re from sickbeard import logger, tvcache diff --git a/sickbeard/providers/xthor.py b/sickbeard/providers/xthor.py index cd63143df..a55e82b89 100644 --- a/sickbeard/providers/xthor.py +++ b/sickbeard/providers/xthor.py @@ -21,7 +21,6 @@ from __future__ import print_function, unicode_literals from sickbeard import logger, tvcache - from sickrage.helper.common import try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider diff --git a/sickbeard/rssfeeds.py b/sickbeard/rssfeeds.py index 979694777..5d8f7d22f 100644 --- a/sickbeard/rssfeeds.py +++ b/sickbeard/rssfeeds.py @@ -2,7 +2,6 @@ from __future__ import print_function, unicode_literals from feedparser.api import parse - from sickbeard import logger from sickrage.helper.exceptions import ex diff --git a/sickbeard/sab.py b/sickbeard/sab.py index e2dd536f2..f6e256d7d 100644 --- a/sickbeard/sab.py +++ b/sickbeard/sab.py @@ -22,9 +22,8 @@ from __future__ import unicode_literals import datetime -from requests.compat import urljoin - import sickbeard +from requests.compat import urljoin from sickbeard import helpers, logger session = helpers.make_session() diff --git a/sickbeard/sbdatetime.py b/sickbeard/sbdatetime.py index c279efa1b..1dbefdb8b 100644 --- a/sickbeard/sbdatetime.py +++ b/sickbeard/sbdatetime.py @@ -18,6 +18,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import datetime import functools import locale diff --git a/sickbeard/scene_exceptions.py b/sickbeard/scene_exceptions.py index c7ca1f5e7..2880d0fc5 100644 --- a/sickbeard/scene_exceptions.py +++ b/sickbeard/scene_exceptions.py @@ -25,9 +25,8 @@ import threading import time import adba -import six - import sickbeard +import six from sickbeard import db, helpers, logger from sickbeard.indexers.indexer_config import INDEXER_TVDB diff --git a/sickbeard/search.py b/sickbeard/search.py index dcd4d7fc1..613ab5997 100644 --- a/sickbeard/search.py +++ b/sickbeard/search.py @@ -27,8 +27,7 @@ import threading import traceback import sickbeard -from sickbeard import clients, common, db, failed_history, helpers, history, logger, notifiers, nzbSplitter, nzbget, \ - sab, show_name_helpers, ui +from sickbeard import clients, common, db, failed_history, helpers, history, logger, notifiers, nzbget, nzbSplitter, sab, show_name_helpers, ui from sickbeard.common import MULTI_EP_RESULT, Quality, SEASON_RESULT, SNATCHED, SNATCHED_BEST, SNATCHED_PROPER from sickrage.helper.encoding import ek from sickrage.helper.exceptions import AuthException, ex diff --git a/sickbeard/searchBacklog.py b/sickbeard/searchBacklog.py index 61f32160e..cfdb3b6b6 100644 --- a/sickbeard/searchBacklog.py +++ b/sickbeard/searchBacklog.py @@ -23,10 +23,8 @@ import datetime import threading import sickbeard -from sickbeard import common, db, logger, scheduler, search_queue, ui - - import six +from sickbeard import common, db, logger, scheduler, search_queue, ui class BacklogSearchScheduler(scheduler.Scheduler): diff --git a/sickbeard/search_queue.py b/sickbeard/search_queue.py index c81ceacbc..332c007c9 100644 --- a/sickbeard/search_queue.py +++ b/sickbeard/search_queue.py @@ -18,6 +18,7 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. from __future__ import print_function, unicode_literals + import time import traceback diff --git a/sickbeard/showUpdater.py b/sickbeard/showUpdater.py index 34e603440..9a8701101 100644 --- a/sickbeard/showUpdater.py +++ b/sickbeard/showUpdater.py @@ -19,19 +19,21 @@ from __future__ import unicode_literals +import datetime +import threading +import time + +import sickbeard +from sickbeard import db, helpers, logger, network_timezones, ui +from sickbeard.indexers.indexer_config import INDEXER_TVDB, INDEXER_TVRAGE +from sickrage.helper.exceptions import CantRefreshShowException, CantUpdateShowException, ex + try: import xml.etree.cElementTree as etree except ImportError: import xml.etree.ElementTree as etree -import time -import datetime -import threading -import sickbeard -from sickbeard import logger, ui, db, network_timezones, helpers -from sickbeard.indexers.indexer_config import INDEXER_TVRAGE, INDEXER_TVDB -from sickrage.helper.exceptions import CantRefreshShowException, CantUpdateShowException, ex class ShowUpdater(object): # pylint: disable=too-few-public-methods diff --git a/sickbeard/show_name_helpers.py b/sickbeard/show_name_helpers.py index e8ad23bf4..d0a9a40ba 100644 --- a/sickbeard/show_name_helpers.py +++ b/sickbeard/show_name_helpers.py @@ -24,14 +24,12 @@ import os import re import sickbeard +import six from sickbeard import common, logger from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickbeard.scene_exceptions import get_scene_exceptions from sickrage.helper.encoding import ek -import six - - resultFilters = [ "sub(bed|ed|pack|s)", "(dir|sub|nfo)fix", diff --git a/sickbeard/show_queue.py b/sickbeard/show_queue.py index efbecba53..39ba26b25 100644 --- a/sickbeard/show_queue.py +++ b/sickbeard/show_queue.py @@ -19,14 +19,14 @@ from __future__ import unicode_literals -from collections import namedtuple import os import traceback +from collections import namedtuple +import sickbeard +import six from imdb import _exceptions as imdb_exceptions from libtrakt import TraktAPI - -import sickbeard from sickbeard import generic_queue, logger, name_cache, notifiers, ui from sickbeard.blackandwhitelist import BlackAndWhiteList from sickbeard.common import WANTED @@ -34,14 +34,11 @@ from sickbeard.helpers import chmodAsParent, get_showname_from_indexer, makeDir, from sickbeard.tv import TVShow from sickrage.helper.common import sanitize_filename from sickrage.helper.encoding import ek -from sickrage.helper.exceptions import CantRefreshShowException, CantRemoveShowException, CantUpdateShowException, \ - EpisodeDeletedException, MultipleShowObjectsException, ShowDirectoryNotFoundException +from sickrage.helper.exceptions import (CantRefreshShowException, CantRemoveShowException, CantUpdateShowException, EpisodeDeletedException, + MultipleShowObjectsException, ShowDirectoryNotFoundException) from sickrage.show.Show import Show -import six - - class ShowQueue(generic_queue.GenericQueue): def __init__(self): super(ShowQueue, self).__init__() diff --git a/sickbeard/subtitles.py b/sickbeard/subtitles.py index 269c9c5c1..0ac190f42 100644 --- a/sickbeard/subtitles.py +++ b/sickbeard/subtitles.py @@ -28,19 +28,18 @@ import subprocess import threading import traceback +import sickbeard import six import subliminal from babelfish import Language, language_converters from guessit import guessit -from subliminal import Episode, ProviderPool, provider_manager - -import sickbeard from sickbeard import db, history, logger from sickbeard.common import Quality from sickbeard.helpers import is_media_file from sickrage.helper.common import dateTimeFormat, episode_num from sickrage.helper.exceptions import ex from sickrage.show.Show import Show +from subliminal import Episode, provider_manager, ProviderPool # https://github.com/Diaoul/subliminal/issues/536 # provider_manager.register('napiprojekt = subliminal.providers.napiprojekt:NapiProjektProvider') diff --git a/sickbeard/traktChecker.py b/sickbeard/traktChecker.py index a728312cc..2cb650c5a 100644 --- a/sickbeard/traktChecker.py +++ b/sickbeard/traktChecker.py @@ -23,10 +23,9 @@ import datetime import os import traceback +import sickbeard from libtrakt import TraktAPI from libtrakt.exceptions import traktException - -import sickbeard from sickbeard import db, helpers, logger, search_queue from sickbeard.common import Quality, SKIPPED, UNKNOWN, WANTED from sickrage.helper.common import episode_num, sanitize_filename diff --git a/sickbeard/traktTrending.py b/sickbeard/traktTrending.py index 54682c443..ccae94d1e 100644 --- a/sickbeard/traktTrending.py +++ b/sickbeard/traktTrending.py @@ -5,10 +5,9 @@ from __future__ import print_function, unicode_literals import os import posixpath -from libtrakt.trakt import TraktAPI -from libtrakt.exceptions import traktException - import sickbeard +from libtrakt.exceptions import traktException +from libtrakt.trakt import TraktAPI from sickbeard import helpers, logger from sickbeard.indexers.indexer_config import INDEXER_TVDB from sickrage.helper.encoding import ek diff --git a/sickbeard/tv.py b/sickbeard/tv.py index 80c9c71f8..12d937ed5 100644 --- a/sickbeard/tv.py +++ b/sickbeard/tv.py @@ -23,10 +23,27 @@ from __future__ import unicode_literals import datetime import os.path import re +import shutil import stat import threading import traceback +import sickbeard +import six +from imdb import imdb +from sickbeard import db, helpers, image_cache, logger, network_timezones, notifiers, postProcessor, subtitles +from sickbeard.blackandwhitelist import BlackAndWhiteList +from sickbeard.common import (ARCHIVED, DOWNLOADED, FAILED, IGNORED, NAMING_DUPLICATE, NAMING_EXTEND, NAMING_LIMITED_EXTEND, NAMING_LIMITED_EXTEND_E_PREFIXED, + NAMING_SEPARATED_REPEAT, Overview, Quality, SKIPPED, SNATCHED, SNATCHED_PROPER, statusStrings, UNAIRED, UNKNOWN, WANTED) +from sickbeard.indexers.indexer_config import INDEXER_TVRAGE +from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser +from sickrage.helper import glob +from sickrage.helper.common import dateTimeFormat, episode_num, remove_extension, replace_extension, sanitize_filename, try_int +from sickrage.helper.encoding import ek +from sickrage.helper.exceptions import (EpisodeDeletedException, EpisodeNotFoundException, ex, MultipleEpisodesInDatabaseException, + MultipleShowObjectsException, MultipleShowsInDatabaseException, NoNFOException, ShowDirectoryNotFoundException, + ShowNotFoundException) +from sickrage.show.Show import Show from unidecode import unidecode try: @@ -39,38 +56,6 @@ try: except ImportError: pass -from imdb import imdb - -import sickbeard -from sickbeard import db -from sickbeard import helpers, logger -from sickbeard import image_cache -from sickbeard import notifiers -from sickbeard import postProcessor -from sickbeard import subtitles -from sickbeard.blackandwhitelist import BlackAndWhiteList -from sickbeard import network_timezones -from sickbeard.indexers.indexer_config import INDEXER_TVRAGE -from sickbeard.name_parser.parser import NameParser, InvalidNameException, InvalidShowException - -from sickrage.helper import glob -from sickrage.helper.common import dateTimeFormat, remove_extension, replace_extension, sanitize_filename, try_int, episode_num -from sickrage.helper.encoding import ek -from sickrage.helper.exceptions import EpisodeDeletedException, EpisodeNotFoundException, ex -from sickrage.helper.exceptions import MultipleEpisodesInDatabaseException, MultipleShowsInDatabaseException -from sickrage.helper.exceptions import MultipleShowObjectsException, NoNFOException, ShowDirectoryNotFoundException -from sickrage.helper.exceptions import ShowNotFoundException -from sickrage.show.Show import Show - -from sickbeard.common import Quality, Overview, statusStrings -from sickbeard.common import DOWNLOADED, SNATCHED, SNATCHED_PROPER, ARCHIVED, IGNORED, UNAIRED, WANTED, SKIPPED, \ - UNKNOWN, FAILED -from sickbeard.common import NAMING_DUPLICATE, NAMING_EXTEND, NAMING_LIMITED_EXTEND, NAMING_SEPARATED_REPEAT, \ - NAMING_LIMITED_EXTEND_E_PREFIXED - -import shutil -import six - def dirty_setter(attr_name): def wrapper(self, val): diff --git a/sickbeard/tvcache.py b/sickbeard/tvcache.py index 65da27111..a5632473a 100644 --- a/sickbeard/tvcache.py +++ b/sickbeard/tvcache.py @@ -24,6 +24,7 @@ import itertools import time import sickbeard +import six from sickbeard import db, logger, show_name_helpers from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickbeard.rssfeeds import getFeed @@ -31,9 +32,6 @@ from sickrage.helper.exceptions import AuthException, ex from sickrage.show.Show import Show -import six - - class CacheDBConnection(db.DBConnection): def __init__(self, provider_name): super(CacheDBConnection, self).__init__('cache.db') diff --git a/sickbeard/ui.py b/sickbeard/ui.py index f893b1e33..66be33ebd 100644 --- a/sickbeard/ui.py +++ b/sickbeard/ui.py @@ -17,6 +17,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + import datetime import sickbeard diff --git a/sickbeard/versionChecker.py b/sickbeard/versionChecker.py index 47cbd0c76..903ec5e6a 100644 --- a/sickbeard/versionChecker.py +++ b/sickbeard/versionChecker.py @@ -31,12 +31,11 @@ import time import traceback import sickbeard +import six from sickbeard import db, helpers, logger, notifiers, ui from sickrage.helper.encoding import ek from sickrage.helper.exceptions import ex -import six - class CheckVersion(object): """ diff --git a/sickbeard/webapi.py b/sickbeard/webapi.py index 11186b240..c2bcee5d8 100644 --- a/sickbeard/webapi.py +++ b/sickbeard/webapi.py @@ -32,15 +32,15 @@ import time import traceback import sickbeard -from sickbeard import classes, db, helpers, image_cache, logger, network_timezones, sbdatetime, search_queue, \ - ui -from sickbeard.common import ARCHIVED, DOWNLOADED, FAILED, IGNORED, Overview, Quality, SKIPPED, SNATCHED, \ - SNATCHED_PROPER, UNAIRED, UNKNOWN, WANTED, statusStrings -from sickbeard.versionChecker import CheckVersion +import six +from sickbeard import classes, db, helpers, image_cache, logger, network_timezones, sbdatetime, search_queue, ui +from sickbeard.common import (ARCHIVED, DOWNLOADED, FAILED, IGNORED, Overview, Quality, SKIPPED, SNATCHED, SNATCHED_PROPER, statusStrings, UNAIRED, UNKNOWN, + WANTED) from sickbeard.postProcessor import PROCESS_METHODS +from sickbeard.versionChecker import CheckVersion from sickrage.helper.common import dateFormat, dateTimeFormat, pretty_file_size, sanitize_filename, timeFormat, try_int from sickrage.helper.encoding import ek -from sickrage.helper.exceptions import CantUpdateShowException, ShowDirectoryNotFoundException, ex +from sickrage.helper.exceptions import CantUpdateShowException, ex, ShowDirectoryNotFoundException from sickrage.helper.quality import get_quality_string from sickrage.media.ShowBanner import ShowBanner from sickrage.media.ShowFanArt import ShowFanArt @@ -51,6 +51,10 @@ from sickrage.show.History import History from sickrage.show.Show import Show from sickrage.system.Restart import Restart from sickrage.system.Shutdown import Shutdown +# noinspection PyUnresolvedReferences +from six.moves import urllib +# pylint: disable=import-error +from tornado.web import RequestHandler try: import json @@ -58,13 +62,8 @@ except ImportError: # pylint: disable=import-error import simplejson as json -# pylint: disable=import-error -from tornado.web import RequestHandler -import six -# noinspection PyUnresolvedReferences -from six.moves import urllib indexer_ids = ["indexerid", "tvdbid"] diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py index a986b64a7..2ac752de1 100644 --- a/sickbeard/webserve.py +++ b/sickbeard/webserve.py @@ -27,63 +27,41 @@ import os import re import time import traceback -try: - import json -except ImportError: - import simplejson as json - -from requests.compat import urljoin -import markdown2 - -from mako.template import Template as MakoTemplate -from mako.lookup import TemplateLookup -from mako.exceptions import RichTraceback -from mako.runtime import UNDEFINED - -from mimetypes import guess_type - -from operator import attrgetter - -from tornado.routes import route -from tornado.web import RequestHandler, StaticFileHandler, HTTPError, authenticated -from tornado.gen import coroutine -from tornado.ioloop import IOLoop -from tornado.process import cpu_count -from tornado.concurrent import run_on_executor - # noinspection PyCompatibility from concurrent.futures import ThreadPoolExecutor +from mimetypes import guess_type +from operator import attrgetter -from dateutil import tz import adba +import markdown2 +import sickbeard +import six +from dateutil import tz from libtrakt import TraktAPI from libtrakt.exceptions import traktException - -import sickbeard -from sickbeard import config, sab, clients, notifiers, ui, logger, \ - helpers, classes, db, search_queue, naming, subtitles as subtitle_module, \ - network_timezones -from sickbeard.providers import newznab, rsstorrent -from sickbeard.common import Quality, Overview, statusStrings, cpu_presets, \ - SNATCHED, UNAIRED, IGNORED, WANTED, FAILED, SKIPPED, NAMING_LIMITED_EXTEND_E_PREFIXED - +from mako.exceptions import RichTraceback +from mako.lookup import TemplateLookup +from mako.runtime import UNDEFINED +from mako.template import Template as MakoTemplate +from requests.compat import urljoin +from sickbeard import classes, clients, config, db, helpers, logger, naming, network_timezones, notifiers, sab, search_queue, subtitles as subtitle_module, ui from sickbeard.blackandwhitelist import BlackAndWhiteList, short_group_names from sickbeard.browser import foldersAtPath -from sickbeard.scene_numbering import get_scene_numbering, set_scene_numbering, get_scene_numbering_for_show, \ - get_xem_numbering_for_show, get_scene_absolute_numbering_for_show, get_xem_absolute_numbering_for_show, \ - get_scene_absolute_numbering - -from sickbeard.webapi import function_mapper +from sickbeard.common import (cpu_presets, FAILED, IGNORED, NAMING_LIMITED_EXTEND_E_PREFIXED, Overview, Quality, SKIPPED, SNATCHED, statusStrings, UNAIRED, + WANTED) +from sickbeard.helpers import get_showname_from_indexer from sickbeard.imdbPopular import imdb_popular +from sickbeard.providers import newznab, rsstorrent +from sickbeard.scene_numbering import (get_scene_absolute_numbering, get_scene_absolute_numbering_for_show, get_scene_numbering, get_scene_numbering_for_show, + get_xem_absolute_numbering_for_show, get_xem_numbering_for_show, set_scene_numbering) from sickbeard.traktTrending import trakt_trending -from sickbeard.helpers import get_showname_from_indexer from sickbeard.versionChecker import CheckVersion - -from sickrage.helper import setup_github, episode_num, try_int, sanitize_filename +from sickbeard.webapi import function_mapper +from sickrage.helper import episode_num, sanitize_filename, setup_github, try_int from sickrage.helper.common import pretty_file_size from sickrage.helper.encoding import ek, ss -from sickrage.helper.exceptions import CantRefreshShowException, CantUpdateShowException, ex -from sickrage.helper.exceptions import MultipleShowObjectsException, NoNFOException, ShowDirectoryNotFoundException +from sickrage.helper.exceptions import (CantRefreshShowException, CantUpdateShowException, ex, MultipleShowObjectsException, NoNFOException, + ShowDirectoryNotFoundException) from sickrage.media.ShowBanner import ShowBanner from sickrage.media.ShowFanArt import ShowFanArt from sickrage.media.ShowNetworkLogo import ShowNetworkLogo @@ -94,13 +72,21 @@ from sickrage.show.History import History as HistoryTool from sickrage.show.Show import Show from sickrage.system.Restart import Restart from sickrage.system.Shutdown import Shutdown - -import six - # noinspection PyUnresolvedReferences from six.moves import urllib # noinspection PyUnresolvedReferences from six.moves.urllib.parse import unquote_plus +from tornado.concurrent import run_on_executor +from tornado.gen import coroutine +from tornado.ioloop import IOLoop +from tornado.process import cpu_count +from tornado.routes import route +from tornado.web import authenticated, HTTPError, RequestHandler, StaticFileHandler + +try: + import json +except ImportError: + import simplejson as json mako_lookup = {} diff --git a/sickbeard/webserveInit.py b/sickbeard/webserveInit.py index c604d4aba..76ae2b5c7 100644 --- a/sickbeard/webserveInit.py +++ b/sickbeard/webserveInit.py @@ -4,11 +4,7 @@ from __future__ import print_function, unicode_literals import os import threading -from socket import error as SocketError, errno - -from tornado.ioloop import IOLoop -from tornado.routes import route -from tornado.web import Application, RedirectHandler, StaticFileHandler +from socket import errno, error as SocketError import sickbeard from sickbeard import logger @@ -16,6 +12,9 @@ from sickbeard.helpers import create_https_certificates, generateApiKey from sickbeard.webapi import ApiHandler from sickbeard.webserve import CalendarHandler, KeyHandler, LoginHandler, LogoutHandler from sickrage.helper.encoding import ek +from tornado.ioloop import IOLoop +from tornado.routes import route +from tornado.web import Application, RedirectHandler, StaticFileHandler class SRWebServer(threading.Thread): # pylint: disable=too-many-instance-attributes diff --git a/sickrage/helper/common.py b/sickrage/helper/common.py index 87cfd451e..9d61f69e0 100644 --- a/sickrage/helper/common.py +++ b/sickrage/helper/common.py @@ -23,15 +23,14 @@ Common helper functions from __future__ import print_function, unicode_literals +import glob import os import re -import glob from fnmatch import fnmatch -from github import Github, BadCredentialsException, TwoFactorException -import six - import sickbeard +import six +from github import BadCredentialsException, Github, TwoFactorException dateFormat = '%Y-%m-%d' dateTimeFormat = '%Y-%m-%d %H:%M:%S' diff --git a/sickrage/helper/encoding.py b/sickrage/helper/encoding.py index cd2300105..b13fc39d3 100644 --- a/sickrage/helper/encoding.py +++ b/sickrage/helper/encoding.py @@ -18,13 +18,13 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -import sickbeard +from __future__ import unicode_literals -from chardet import detect from os import name - +import sickbeard import six +from chardet import detect def ek(function, *args, **kwargs): diff --git a/sickrage/helper/exceptions.py b/sickrage/helper/exceptions.py index 42f18d864..ad88e7db9 100644 --- a/sickrage/helper/exceptions.py +++ b/sickrage/helper/exceptions.py @@ -19,10 +19,8 @@ from __future__ import print_function, unicode_literals -from sickrage.helper.encoding import ss - - import six +from sickrage.helper.encoding import ss def ex(e): diff --git a/sickrage/helper/media_info.py b/sickrage/helper/media_info.py index f6f2f9fc2..02edf21a6 100644 --- a/sickrage/helper/media_info.py +++ b/sickrage/helper/media_info.py @@ -20,15 +20,14 @@ from __future__ import print_function, unicode_literals -import io import binascii -from enzyme import MKV +import io -from pkg_resources import get_distribution, DistributionNotFound -import sickbeard +from pkg_resources import DistributionNotFound, get_distribution +import sickbeard import six - +from enzyme import MKV try: get_distribution('pymediainfo') diff --git a/sickrage/helper/quality.py b/sickrage/helper/quality.py index 49b1fce18..355a8900d 100644 --- a/sickrage/helper/quality.py +++ b/sickrage/helper/quality.py @@ -17,6 +17,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from sickbeard.common import Quality, qualityPresetStrings diff --git a/sickrage/media/GenericMedia.py b/sickrage/media/GenericMedia.py index 2d2fb4dde..7492b09a3 100644 --- a/sickrage/media/GenericMedia.py +++ b/sickrage/media/GenericMedia.py @@ -17,11 +17,13 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -import sickbeard +from __future__ import unicode_literals from abc import abstractmethod from mimetypes import guess_type from os.path import isfile, join, normpath + +import sickbeard from sickrage.helper.common import try_int from sickrage.helper.encoding import ek from sickrage.helper.exceptions import MultipleShowObjectsException diff --git a/sickrage/media/ShowBanner.py b/sickrage/media/ShowBanner.py index fccf7d888..8a8da9487 100644 --- a/sickrage/media/ShowBanner.py +++ b/sickrage/media/ShowBanner.py @@ -17,6 +17,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from sickbeard.image_cache import ImageCache from sickrage.media.GenericMedia import GenericMedia diff --git a/sickrage/media/ShowFanArt.py b/sickrage/media/ShowFanArt.py index 4376f1ddd..da289a5f1 100644 --- a/sickrage/media/ShowFanArt.py +++ b/sickrage/media/ShowFanArt.py @@ -17,6 +17,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from sickbeard.image_cache import ImageCache from sickrage.media.GenericMedia import GenericMedia diff --git a/sickrage/media/ShowNetworkLogo.py b/sickrage/media/ShowNetworkLogo.py index 58034e2dd..5d29be307 100644 --- a/sickrage/media/ShowNetworkLogo.py +++ b/sickrage/media/ShowNetworkLogo.py @@ -17,7 +17,10 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from os.path import join + from sickrage.helper.encoding import ek from sickrage.media.GenericMedia import GenericMedia diff --git a/sickrage/media/ShowPoster.py b/sickrage/media/ShowPoster.py index 2b6b01c9e..535ca7c68 100644 --- a/sickrage/media/ShowPoster.py +++ b/sickrage/media/ShowPoster.py @@ -17,6 +17,8 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +from __future__ import unicode_literals + from sickbeard.image_cache import ImageCache from sickrage.media.GenericMedia import GenericMedia diff --git a/sickrage/providers/GenericProvider.py b/sickrage/providers/GenericProvider.py index de2edb1a2..b61575f60 100644 --- a/sickrage/providers/GenericProvider.py +++ b/sickrage/providers/GenericProvider.py @@ -20,26 +20,25 @@ from __future__ import print_function, unicode_literals import re -from datetime import datetime - from base64 import b16encode, b32decode +from datetime import datetime from itertools import chain from os.path import join from random import shuffle -import six import sickbeard +import six +from requests.utils import add_dict_to_cookiejar from sickbeard import logger from sickbeard.classes import Proper, SearchResult from sickbeard.common import MULTI_EP_RESULT, Quality, SEASON_RESULT, UA_POOL from sickbeard.db import DBConnection -from sickbeard.helpers import download_file, getURL, remove_file_failed, make_session +from sickbeard.helpers import download_file, getURL, make_session, remove_file_failed from sickbeard.name_parser.parser import InvalidNameException, InvalidShowException, NameParser from sickbeard.show_name_helpers import allPossibleShowNames from sickbeard.tvcache import TVCache from sickrage.helper.common import replace_extension, sanitize_filename from sickrage.helper.encoding import ek -from requests.utils import add_dict_to_cookiejar class GenericProvider(object): # pylint: disable=too-many-instance-attributes diff --git a/sickrage/providers/nzb/NZBProvider.py b/sickrage/providers/nzb/NZBProvider.py index 47d49d422..8fd2aceb4 100644 --- a/sickrage/providers/nzb/NZBProvider.py +++ b/sickrage/providers/nzb/NZBProvider.py @@ -20,11 +20,9 @@ from __future__ import print_function, unicode_literals import sickbeard - from sickbeard import logger from sickbeard.classes import NZBSearchResult from sickrage.helper.common import try_int - from sickrage.providers.GenericProvider import GenericProvider diff --git a/sickrage/providers/subtitle/itasa.py b/sickrage/providers/subtitle/itasa.py index d0e8c256e..a82dc6f5e 100644 --- a/sickrage/providers/subtitle/itasa.py +++ b/sickrage/providers/subtitle/itasa.py @@ -1,11 +1,22 @@ # -*- coding: utf-8 -*- +from __future__ import unicode_literals + import copy import io import logging import re +from zipfile import is_zipfile, ZipFile from babelfish import Language from guessit import guessit +from requests import Session +from subliminal import __version__ +from subliminal.cache import EPISODE_EXPIRATION_TIME, region, SHOW_EXPIRATION_TIME +from subliminal.exceptions import AuthenticationError, ConfigurationError, TooManyRequests +from subliminal.providers import Provider +from subliminal.subtitle import fix_line_ending, guess_matches, sanitize, Subtitle +from subliminal.video import Episode + try: from lxml import etree except ImportError: # pragma: no cover @@ -14,15 +25,7 @@ except ImportError: # pragma: no cover except ImportError: import xml.etree.ElementTree as etree -from requests import Session -from zipfile import ZipFile, is_zipfile -from subliminal.providers import Provider -from subliminal import __version__ -from subliminal.cache import EPISODE_EXPIRATION_TIME, SHOW_EXPIRATION_TIME, region -from subliminal.exceptions import AuthenticationError, ConfigurationError, TooManyRequests -from subliminal.subtitle import (Subtitle, fix_line_ending, guess_matches, sanitize) -from subliminal.video import Episode logger = logging.getLogger(__name__) diff --git a/sickrage/providers/subtitle/subscenter.py b/sickrage/providers/subtitle/subscenter.py index e8818f5fb..bb67acda5 100644 --- a/sickrage/providers/subtitle/subscenter.py +++ b/sickrage/providers/subtitle/subscenter.py @@ -1,20 +1,21 @@ # -*- coding: utf-8 -*- +from __future__ import unicode_literals + import bisect -from collections import defaultdict import io import json import logging import zipfile +from collections import defaultdict from babelfish import Language from guessit import guessit from requests import Session - -from subliminal.providers import ParserBeautifulSoup, Provider from subliminal import __short_version__ -from subliminal.cache import SHOW_EXPIRATION_TIME, region +from subliminal.cache import region, SHOW_EXPIRATION_TIME from subliminal.exceptions import AuthenticationError, ConfigurationError, ProviderError -from subliminal.subtitle import Subtitle, fix_line_ending, guess_matches +from subliminal.providers import ParserBeautifulSoup, Provider +from subliminal.subtitle import fix_line_ending, guess_matches, Subtitle from subliminal.utils import sanitize from subliminal.video import Episode, Movie diff --git a/sickrage/providers/torrent/TorrentProvider.py b/sickrage/providers/torrent/TorrentProvider.py index b3a161a7b..4800ca51c 100644 --- a/sickrage/providers/torrent/TorrentProvider.py +++ b/sickrage/providers/torrent/TorrentProvider.py @@ -19,17 +19,15 @@ from __future__ import unicode_literals - from datetime import datetime -from feedparser.util import FeedParserDict -from hachoir_parser import createParser import sickbeard +from feedparser.util import FeedParserDict +from hachoir_parser import createParser from sickbeard import logger from sickbeard.classes import Proper, TorrentSearchResult from sickbeard.common import Quality from sickbeard.db import DBConnection - from sickrage.helper.common import try_int from sickrage.helper.exceptions import ex from sickrage.providers.GenericProvider import GenericProvider diff --git a/sickrage/recompiled/tags.py b/sickrage/recompiled/tags.py index 4871deed2..fd5fde974 100644 --- a/sickrage/recompiled/tags.py +++ b/sickrage/recompiled/tags.py @@ -1,7 +1,8 @@ # coding=utf-8 -import re +from __future__ import unicode_literals +import re # Resolutions resolution = [ diff --git a/sickrage/show/ComingEpisodes.py b/sickrage/show/ComingEpisodes.py index 6eca678ec..ca6bc8303 100644 --- a/sickrage/show/ComingEpisodes.py +++ b/sickrage/show/ComingEpisodes.py @@ -17,16 +17,18 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -import sickbeard +from __future__ import unicode_literals from datetime import date, timedelta -from sickbeard.common import WANTED, UNAIRED, Quality +from operator import itemgetter + +import sickbeard +from sickbeard.common import Quality, UNAIRED, WANTED from sickbeard.db import DBConnection from sickbeard.network_timezones import parse_date_time from sickbeard.sbdatetime import sbdatetime from sickrage.helper.common import dateFormat, timeFormat from sickrage.helper.quality import get_quality_string -from operator import itemgetter SNATCHED = Quality.SNATCHED + Quality.SNATCHED_PROPER + Quality.SNATCHED_BEST # type = list diff --git a/sickrage/show/History.py b/sickrage/show/History.py index e1f1b145f..ec311c890 100644 --- a/sickrage/show/History.py +++ b/sickrage/show/History.py @@ -17,14 +17,14 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -from datetime import datetime -from datetime import timedelta -from sickbeard.common import Quality -from sickbeard.db import DBConnection -from sickrage.helper.common import try_int +from __future__ import unicode_literals +from datetime import datetime, timedelta import six +from sickbeard.common import Quality +from sickbeard.db import DBConnection +from sickrage.helper.common import try_int class History(object): diff --git a/sickrage/show/Show.py b/sickrage/show/Show.py index e213106e6..88aa56eb4 100644 --- a/sickrage/show/Show.py +++ b/sickrage/show/Show.py @@ -17,13 +17,14 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -import sickbeard +from __future__ import unicode_literals from datetime import date + +import sickbeard from sickbeard.common import Quality, SKIPPED, WANTED from sickbeard.db import DBConnection -from sickrage.helper.exceptions import CantRefreshShowException, CantRemoveShowException, ex -from sickrage.helper.exceptions import MultipleShowObjectsException +from sickrage.helper.exceptions import CantRefreshShowException, CantRemoveShowException, ex, MultipleShowObjectsException class Show(object): diff --git a/sickrage/show/recommendations/anidb.py b/sickrage/show/recommendations/anidb.py index 7954cf8fb..10eef9753 100644 --- a/sickrage/show/recommendations/anidb.py +++ b/sickrage/show/recommendations/anidb.py @@ -1,11 +1,12 @@ # coding=utf-8 +from __future__ import unicode_literals + from anidbhttp import anidbquery from anidbhttp.query import QUERY_HOT +from recommended import RecommendedShow from sickbeard import helpers from sickrage.helper.common import try_int -from recommended import RecommendedShow - class AnidbPopular(object): def __init__(self): diff --git a/sickrage/show/recommendations/imdb.py b/sickrage/show/recommendations/imdb.py index 16c9d492e..c098af316 100644 --- a/sickrage/show/recommendations/imdb.py +++ b/sickrage/show/recommendations/imdb.py @@ -2,13 +2,13 @@ from __future__ import print_function, unicode_literals -import re import os import posixpath -from bs4 import BeautifulSoup +import re from datetime import date import sickbeard +from bs4 import BeautifulSoup from sickbeard import helpers from sickrage.helper.encoding import ek diff --git a/sickrage/show/recommendations/recommended.py b/sickrage/show/recommendations/recommended.py index 93cee1546..8530f87f4 100644 --- a/sickrage/show/recommendations/recommended.py +++ b/sickrage/show/recommendations/recommended.py @@ -28,7 +28,6 @@ import posixpath import sickbeard from sickbeard import helpers - from sickrage.helper.encoding import ek diff --git a/sickrage/system/Restart.py b/sickrage/system/Restart.py index 399e90953..b0fb22850 100644 --- a/sickrage/system/Restart.py +++ b/sickrage/system/Restart.py @@ -17,8 +17,9 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -import sickbeard +from __future__ import unicode_literals +import sickbeard from sickbeard.event_queue import Events diff --git a/sickrage/system/Shutdown.py b/sickrage/system/Shutdown.py index 813bea5a5..3b4c7def0 100644 --- a/sickrage/system/Shutdown.py +++ b/sickrage/system/Shutdown.py @@ -17,8 +17,9 @@ # You should have received a copy of the GNU General Public License # along with SickRage. If not, see <http://www.gnu.org/licenses/>. -import sickbeard +from __future__ import unicode_literals +import sickbeard from sickbeard.event_queue import Events diff --git a/sickrage/tagger/episode.py b/sickrage/tagger/episode.py index b11a7f5a8..7f881fbbb 100644 --- a/sickrage/tagger/episode.py +++ b/sickrage/tagger/episode.py @@ -7,8 +7,9 @@ Episode tagger to extract information from episodes from __future__ import print_function, unicode_literals import re -from sickrage.recompiled import tags + from sickrage.helper.common import try_int +from sickrage.recompiled import tags class EpisodeTags(object): diff --git a/tests/sickrage_tests/providers/torrent/cassettes/kickasstorrents.yaml b/tests/sickrage_tests/providers/torrent/cassettes/kickasstorrents.yaml deleted file mode 100644 index 1731f5196..000000000 --- a/tests/sickrage_tests/providers/torrent/cassettes/kickasstorrents.yaml +++ /dev/null @@ -1,427 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: [!!python/unicode 'gzip,deflate'] - Connection: [keep-alive] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) - Gecko/20120101 Firefox/29.0'] - method: GET - uri: https://kat.cr/usearch/?q=Game+of+Thrones+S05E08&field=seeders&rss=1&category=tv&sorder=desc - response: - body: - string: !!binary | - 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 - headers: - cache-control: [public] - connection: [keep-alive] - content-encoding: [gzip] - content-type: [application/rss+xml; charset=utf-8] - date: ['Mon, 04 Apr 2016 17:31:49 GMT'] - server: [nginx] - set-cookie: [country_code=US; Path=/;] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-xss-protection: ['1'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: [!!python/unicode 'gzip,deflate'] - Connection: [keep-alive] - Cookie: [country_code=US] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) - Gecko/20120101 Firefox/29.0'] - method: GET - uri: https://kat.cr/tv/?q=&field=time_add&rss=1&category=tv&sorder=desc - response: - body: - string: !!binary | - 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 - headers: - cache-control: [public] - connection: [keep-alive] - content-encoding: [gzip] - content-type: [application/rss+xml; charset=utf-8] - date: ['Mon, 04 Apr 2016 17:31:49 GMT'] - server: [nginx] - set-cookie: [country_code=US; Path=/;] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-xss-protection: ['1'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: [!!python/unicode 'gzip,deflate'] - Connection: [keep-alive] - Cookie: [country_code=US] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) - Gecko/20120101 Firefox/29.0'] - method: GET - uri: https://kat.cr/anime/?q=&field=time_add&rss=1&category=tv&sorder=desc - response: - body: - string: !!binary | - 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 - headers: - cache-control: [public] - connection: [keep-alive] - content-encoding: [gzip] - content-type: [application/rss+xml; charset=utf-8] - date: ['Mon, 04 Apr 2016 17:31:49 GMT'] - server: [nginx] - set-cookie: [country_code=US; Path=/;] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-xss-protection: ['1'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: [!!python/unicode 'gzip,deflate'] - Connection: [keep-alive] - Cookie: [country_code=US] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) - Gecko/20120101 Firefox/29.0'] - method: GET - uri: https://kat.cr/usearch/?q=Game+of+Thrones+S05&field=seeders&rss=1&category=tv&sorder=desc - response: - body: - string: !!binary | - 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 - headers: - cache-control: [public] - connection: [keep-alive] - content-encoding: [gzip] - content-type: [application/rss+xml; charset=utf-8] - date: ['Mon, 04 Apr 2016 17:33:00 GMT'] - server: [nginx] - set-cookie: ['lang_detected=none; expires=Tue, 04-Apr-2017 17:31:50 GMT; Max-Age=31536000; - path=/; domain=.kat.cr', 'lang_code=en; expires=Tue, 04-Apr-2017 17:31:50 - GMT; Max-Age=31536000; path=/; domain=.kat.cr', country_code=US; Path=/;] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-xss-protection: ['1'] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/sickrage_tests/providers/torrent/cassettes/nyaa.yaml b/tests/sickrage_tests/providers/torrent/cassettes/nyaa.yaml index c5df6b8df..2126c725a 100644 --- a/tests/sickrage_tests/providers/torrent/cassettes/nyaa.yaml +++ b/tests/sickrage_tests/providers/torrent/cassettes/nyaa.yaml @@ -5,195 +5,142 @@ interactions: Accept: ['*/*'] Accept-Encoding: [!!python/unicode 'gzip,deflate'] Connection: [keep-alive] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 - (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36'] + User-Agent: [!!python/unicode 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) + AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36'] method: GET uri: https://nyaa.si/?s=id&c=1_0&page=rss&o=desc&f=0 response: body: string: !!binary | - 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 headers: cache-control: [max-age=300] - cf-ray: [361d516b98253470-LHR] + cf-ray: [3691c4b63c27728f-AMS] connection: [keep-alive] content-encoding: [gzip] content-type: [application/xml] - date: ['Sat, 20 May 2017 06:42:48 GMT'] + date: ['Sat, 03 Jun 2017 09:53:58 GMT'] server: [cloudflare-nginx] - set-cookie: ['__cfduid=d867e36384457c5aa7ac17efd34bef7a31495262568; expires=Sun, - 20-May-18 06:42:48 GMT; path=/; domain=.nyaa.si; HttpOnly'] - x-proxy-cache: [MISS] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: [!!python/unicode 'gzip,deflate'] - Connection: [keep-alive] - Cookie: [__cfduid=d867e36384457c5aa7ac17efd34bef7a31495262568] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 - (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36'] - method: GET - uri: https://nyaa.si/?c=1_0&f=0&o=desc&q=Game+of+Thrones+S05E08&s=id&page=rss - response: - body: - string: !!binary | - H4sIAAAAAAAAA0yPz2rDMAyHz+lTCA92GUShXWGkjscO6247NH0B0yqNmWMbySzN2w+3MHqUvp/+ - fJpF4Dr5IK3NcerUmHNqEed5rudNHfmC66bZ4keOk4JfYnExdGpdN8qsKn0abQjkzaqqdHbZk/le - rIVjZKaQYe88waHvNd5hiZ1JTuxSdjGYQ9/DnugMQ2R4ftq87r7sRBAHOI4cAwn0zfazebshjY+j - ZZV34ceUh6VFDIu1tTjUeGsXXozaUsHINNzdHqPvyV6oYxEFTL5TQn5QkJdEnbIpeXey5RayyMt1 - 8gqwOOO/tC7E/AEAAP//AwBlBXHHQwEAAA== - headers: - cache-control: [max-age=300] - cf-ray: [361d5175387806f4-LHR] - connection: [keep-alive] - content-encoding: [gzip] - content-type: [application/xml] - date: ['Sat, 20 May 2017 06:42:50 GMT'] - server: [cloudflare-nginx] - x-proxy-cache: [MISS] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: [!!python/unicode 'gzip,deflate'] - Connection: [keep-alive] - Cookie: [__cfduid=d867e36384457c5aa7ac17efd34bef7a31495262568] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 - (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36'] - method: GET - uri: https://nyaa.si/?c=1_0&f=0&o=desc&q=Game+of+Thrones+S05&s=id&page=rss - response: - body: - string: !!binary | - H4sIAAAAAAAAA0yPsW7DMAxEZ+crCBXoUsA0kmZxZBVd0q1DnB8QHDoWKksCKdTx3xdKgCIj747k - Pc0icJt9kNbmOHdqyjm1iMuy1MuujnzFbdPs8TPHWcEvsbgYOrWtG2U2lR4mGwJ5s6kqnV32ZL5X - a+EcmSlkODpPcOp7jQ+zxC4kA7uUXQzm1PdwJLrAGBleX3bvhy87E8QRzhPHQAJ9s7/rGp/3yh3v - wo8pbaVFDKu1tTjUeJeLX3DaMsHEND7AnqMfyV6pYxEFTL5TQn5UkNdEnbIpeTfY8gtZ5O02ewVY - gPGfWBfH/AEAAP//AwCkSGmBQAEAAA== - headers: - cache-control: [max-age=300] - cf-ray: [361d517e8d57354e-LHR] - connection: [keep-alive] - content-encoding: [gzip] - content-type: [application/xml] - date: ['Sat, 20 May 2017 06:42:51 GMT'] - server: [cloudflare-nginx] - x-proxy-cache: [MISS] + set-cookie: ['__cfduid=ddefe21d530eeec0cedf30a222664d29e1496483638; expires=Sun, + 03-Jun-18 09:53:58 GMT; path=/; domain=.nyaa.si; HttpOnly'] + x-proxy-cache: [HIT] status: {code: 200, message: OK} - request: body: null @@ -201,158 +148,106 @@ interactions: Accept: ['*/*'] Accept-Encoding: [!!python/unicode 'gzip,deflate'] Connection: [keep-alive] - Cookie: [__cfduid=d867e36384457c5aa7ac17efd34bef7a31495262568] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) - AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27'] + Cookie: [__cfduid=ddefe21d530eeec0cedf30a222664d29e1496483638] + User-Agent: [!!python/unicode 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) + AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36'] method: GET uri: https://nyaa.si/?c=1_0&f=0&o=desc&q=Fairy+Tail+S2&s=id&page=rss response: body: string: !!binary | - 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 - /EZWTXYDAQA= + H4sIAAAAAAAAA9zaW08bWRIA4OfkV5xlpVWiwXZVnTo3L2FFIEwmu8lGgZ15QGh1rsGKsVHbDmF+ + /aoNIc512tBkOvtGt08XbutTneqq3qpmM/HudDyZDf18evpo42Q+PxsOBufn5/1z2Z9WrwcEoAY7 + 8+npxtXCyYX3lwtnw8GgPurPRoPlZ8ujDfE2V7PRdPJog/qwsX3/3lY88ZNJHm/fv3dvaz6aj/P2 + iwvvxeG0qvJkLvZH4yxeHRxsDS4/rJelPIvV6Gw+mk62Xx0ciP2ckyjTSvztr5L/vu9H1YU49KOx + OKDlma3B6hV1hPFo8mb706+5NVierj+vb3hYH4mTKpfP7+gfZ/51flTNZhuiyuNHG7M8LhtifnGW + H234s7PxKPr6fw2q2eynd6fjDTFYhh3N82n9x/s7PXrhq8V82vvnYtJ/ujgWK18dje6RMeLBAQkA + 7CHQQ3FkCM6OV36Kr91Kmp5PxlOfBtZa0tCfX/6aH+7w3r2t14tREqPZy1yd+n+NJm8ebcyrRd74 + LNbbUT6/irM1qC+6uv5sEfb8PG//ltOmQBTP/EQQoBHIQwlDANEDANgavF94//K6Ou5wlnPK1Wwb + twYfHa8sGeccT+pzcLXm+sTKovc3Otumq1UfzqwsG03K9KmfnWy76AJGtCATJhecZ4wJsOTsHWcH + Gn1m9HwV7Pq6+9ehop/n19Pq4pe0jf+VV+tWTn6+cntnMjrNoideTCe9J5PX49HspDev/GQ29vOc + PgmxEmA2+j1vk+s78fPo8fsfqj5XWxq8x/S5qqfTqhqFcT5YhNlHqA5IPLi2hGDh7Fg8eOzn8eTh + WqgQnKEWUC3jfBHV4cliUyCJ5/6iRqUF4JCoISpuDRVCI1UloJGGvGXvCRIkHzSzkt4XD6G4SCRL + TLqhKlpL1dqilOrrOxG1zE43BoUtgcL2QckGoFQzUKoRKOCgA2qSgTJFz1Iq1saAZQ/SepVLkBJd + 7AYoKft4J6D4VhkKWgIF7YOCBqCwESjZbNvzqhhVSqJkNHgMIRlDUhtFUYGz2XFhDq4bnlCt7enF + dP7b7suPJBEg15wO86SaLsQzn7LYqaL4SRyeZLHz1s99tTxxtLfw497OIo2mx+Lo6d7hr7316yyw + UqkWwC3jfBHc8+lkU8AKOLRDlC2Ca7YlNtsRMSVEVwJqGXwI7Kx12nLQiaOlDDkAM0LuyI64treX + iwtf566/fJq8rsqqo2XOWouQcda2Uapfxvl6zpIonvvqmhB1lVA2JklMlj1HzEpLQ8UqTyZbkF7V + xXsw2qnulOpK9bk1R8sUdENGyrbDSNn2GX3vJ77CAFIBaVX7QV+UVYwu5RxlNIjWJWk52+4wukE5 + tXsymiwqX+V5FsuSagVTb1lT1bvh8qHv8S+Hx0c/P3l18J/Hx0ePdw53n67LS7JuhZdk/WVei7wp + yK3wkkNQLfLCNjc61lyiV6wAtCVwWBBUQo+Wnc42eysZQ+4OL9ZrP/415mXb0KVa0qX+HF0NOwuN + dCUtC5XoyUvKzjlfuCQyPvuCmQMUSD5Rdp3SxXekqycQ6NMUtqYuctyKLnLcTBfYIZqOVliaONrI + 7KS3LsWSkmMIQBbIABdXZEJOpkMVFkvbJ/H8LnnZW+mSLemSP74uy4aV41SyZywZiND64F0GX3JO + MYWCMZgu7Yxg+2pNXV+f4CynNzNa7Y32T894PVKGdCvbYR3ni6QO/HxTkF4hZYaMXe0qeGtz0Doh + hlQ06lCsU4iyuKK8Y6lDKUphl6Y3sm/XJHXw7/3dZ71X/vyzzmhPuDpdGfNQPHmxJx4c/rojkCy8 + MwTiHWkWOzu7D2+gDCW2ogwlNlRGQ7QdVcYluWA4ewKKBNr7pFNMBE5mj5Azu+yspIbKeC1lr/z5 + H2UpWp/UV9sM1zXVsmnlzO4ewBM47p++ebsmIVCmFUKgzBcJ7VejTUHqAyHCIVNHCRmJ3tuoJZB0 + 2vkoNWp0GWyIkKMCA5wK6w71rtj0oWVVly2sfUu8u8/yZqh0S6j0j4+Ks5ORs5LJKyujRySJUIJT + LJ2JySbjJLgudbJIr52qvjUZ/Chb3YST5HY4SW7MCb7/NtdsxpxlQQmJjSHnlU+ksZicQmSTIdbD + QcgcG3O66xEN67Vr8waUrsryG0iiliRRc0nqu0tqNl2OURmtlQ7KaFWg2ARK5ag9Yg5kijYukUrc + kbcVSPdl+5L4xjkJW5KEzSV9/y2uWb8T0dZbmcsJyXOmiKDZagNslTMejdVRGigdeU+BbR/vsBuF + t2t2asuttKPqOM1ogfszklSz6slhRgxFJQmSEYqJobC3tkRrsvJsbMJsUuxQSQ7qTpudeKtmp7ZM + LemiH1+XxkIZg9cUsy7GkQ/B6uiysRhzyswmBeM69F4xW1z7ge9bzU591ezEmzc7FZpWegh1nK+3 + oXB19ofdfYUqGZSkM6hQfCwpswOTHbngIxSVyABojMl0qdlZv6t+dwkLbrcfKrCuFV5gXTNeoIay + s8M/1iQtJBmd40AUbJZZeU9KBuOCdjIwaduhbgID3zUveytdtiVd9sfXZZlQOy0VxexiTsF7oyJo + 7SSXVJK1wYfiZId6VQb73OakButJjX7Y3pRGgVHtCDOqoTA5lNzVR0UKSdl6R4ymOKWsCzZQDtGz + L+QpFhuk8eZPmtIohrU5fbOfjtdTGrOndnmP92/QbVBA3A4h+kYHFO1H3QZyXX3D2NuSdAzKWJtZ + KcquSKmtrBtaEoxKDIGgQ1ugUm7tLugfqbqc0lgN5PZh52aoqCVU9H+ACkqyOlj7PwAAAP//SktO + SjExS7VMMUw2M0mxtDAxMjIwTTOxSLNMS0ozG0RL9oyNjfTMqTwgakj+LI2pgSGVmumGlsQnJ2pW + cwAAAAD//9Sdu45dxxFFf4WpAdOq92My0ha/wJEc9TO0AQH+f6OHlKUxxOG5h02riclu0NFCVZ1d + u/Zcw8mufQUKUnNttWV1TysEyOqGhTxFq8gwjMuWl29+WpoPd70LKN3c0iigbSLJLpN07JYmqJch + WgtKFxIB7s5ZJgyL4FmToYAVPuWm9JsUJbldkzaN3qjXSTrW3VKgqatACEKzUodYgPZJMUKzG/Ug + Dj3lmhQf3tK8+/EFPz+Nn//1TNCbH3778yft4Idf+ILbyqfAnlXNeufzzmH8jZiO/oRwqs3TAsWm + y7qrgcYF5pCaAKFNWhmEnbn1Q45HUfRhvl4T0vWTkA5/evPh729/Gj/fx4qZtoxS653fVwz+/c8/ + v0F+uaM5FStOg4kqGuAd6xQdOCCCu0WFaQLTy8yj3MO51+oJ/xUR4EM64Y9/u9EMKXKLZWG980oz + xBfNkE9thrWyzo5zdhfCas9/6ommqLyWgDSkx0l7Zd1s9fylQP0j3fW9M96DCjZBBd8/VCWRcbTe + y+p1yo296gjqmb1nE3Yv5HKSfM603eoJ90UECos9OFlcxAmeCA/99KtSakXqPFDWpUzBNmh450Gj + QI1EQTQ/JY1D7eE93wWUbooIFHsusNY7l0n6A0SEa2kKPaYLJBppEospz6FzEtVKwxNXoRKtfo6I + 8A2KktyuSbKJJLlO0rlzkzTp2iVqeg7uAJ6TlxehDVpy1MzEekhm3h0R4br3IPPrnC1osqXbrXde + yZ7yF96DY714vU0B1G4DjFNLcnqfyAWLimMppahTgZNCE/AbOlsWXfFVcPkmuPz7h6twQpM6oxiO + WR1IU6KNtD5qnzzGTLJy0OeeMP3FNupT8qxPQebX61OIsGW2Wu983tEC+iLs5Q9wtFxDi2rvNVuD + yaU3gla02ahWsEFFzc4p3vWgzfEdfer3pXXI16T1VcFuIgZJW8Sq9c41xFYO6KnVq2rJubL0BjUZ + mEVKilROXaawUeYoNYAPyZVFx53y58cp61n9VHgfzPrXG1M8BG6Z4tc7n5/iQV5M8Xiq2wWjyhjR + e1fvMlkYNMoULU6Co9qsVmScdOiu8fBi+QtQfRQ/6d0Hcou4xxRtYoquM3Vq/oaF1j6bGIYUZevs + pFy01BAxAxXQAXhQcBAzbtYZfq1Vd2iC3EMT5HWa8P8eoXfxOLn2UZfV/PncAaI0y9AhSjWoqUFz + IsFDWt6d6vRlkm5KnxAQm0CKyyCBHyp9jkGTWmcZs1k0LlG559Ch3gwtsock1UOceKsk7QdJblck + 3wSSXwfp1CE80CfPirMaZ5ZMrl20LtVKKg9r1UrVBucon9/uCjnj65RPcNxTohwvlijkJzxVQQh6 + vm5vkxBAECS9V5poVgu0puTNmMpBJ6Pi9LBh+DG64qvg8k1w+fcPV3cKGoNr7c1GYVKaJIkrHQ9J + hmZtg/Gkg1Hxh2X1z8hT8ao8FXflqUigHcbP53deSV70Nx9G/YQYPMmpJ+9gKUY6yqCoRh0oRw5Y + HbLFWIkKMmqbh2yXcXOCAr0l50/iur+FjP8V2B9DK3KLZ/35nWtogT7JsfEvLAQS4gEwcg3rs0HU + wrPx6pYtyNLooIAO3Wv+/DhpPaufqPie4d2NW7+I4D1QBb/ihiH7FaqVyHiqo3iwz4FNqXEy9zka + aFedvdUyHbqjofR50KZ5eT83Q/VR/QQgDnsn95iSTUzJ989Uz1Ti2hNMuiHnpCZmhD6ceaoEQkQc + NMMz88N98AtSQ9zVrCICcQ9MiBdhgie0Q0MSrAwWKylLcRD2YWylZE9GXOHEUda/aWvlHLtebgfp + poy+CIBNJMF1kk61EBuYiVvL6UR9BXpaIR1crMu0zhQUJfSQZMbV5nw7SXIXpC37mOd3LoN0rPpJ + ionL6IKGvfbegWsro9eBSCIlfGDvp3jRl/r5aFjsu/8AAAD//9SdXWpcRxCF37OKeTQkwV2/3SWM + QZZDAiFBDyaGCCOq/4hwIoPkBWQP2WFWEnriEAlb47kz19DaQD99t7ruqdOnPi0hxJ0SQjxYQkii + 69x4onveeAFOwrQSaOjmHj31loyUsY7PJhSuyT1YqJoahVmmNCCyOM9lgfwZjxLX01Au1yBrnLNj + nxHdEadoXlvCWGAbc8vdibRgNs3MsXNNvUIuqUMZAXoTWV2YwuKfvWV0paPg0pXg0v3hmjUvzz2H + ZKlr81CqJhGJDmP1jFWWYVawHLJNpCSQ2WJb8WdarHh4s662ziU4ztkhdob7zXqctFmP2EVrj41b + SC3koSIM65RIzJVL9UIJSSdZ9/4FmvV4sH6gtsoO7u05M4O0Z8gihd7UrFCsKtyG3aWmgg07t54w + Ys5J+kSZQbY6SHxoRRJbBySxmUHa0ydMHrDG3gsQMWuoWBv13picnRS3m901z/PXt2JCwv8X28Up + fscvg8ghQMWVgIqyKxfP7gCFJ6izLsPKdQjjrD4iq2ul3IFKkEYSIKSWzS3XOlV253I3wmeg+nf0 + whSZ7ezFYUyllZhKj58pzVgbF8q9EOfURq+EzYuiFUQD7g4R9y5Sk45eXp+df/3zu/evz87v+w8C + 8CDrld+895t3t5vTm7K5+OHlq1++PcB8oBjX6ccxfroff93qNxu462vhE5lV8wwqpZJa77lFpNaV + UwRGRCfvbo6dlNMsz66G5Pn9EbaWyy1WlwOrS4xwuXW06OUHM8vloUKnIqxTrPABr+fHTOG8QmfR + gDGpekVG0xBsePICdclsQbMSk6j4434tukCO0uPETllJ7JSdYifcldH1hGZ14oFA5aaNciBNJSYJ + DKkHTlAliZVuOSJNdBUypcV61DK60lFw6Upw6eOHq+aGLl1iwQy9EcaSqiQj92ylGjazZmGiB34c + 0pcM6JAjSxfwKn+G45wdi0HuS+kEs0rpUJpUE4deRJlaDt0zKVeXnp0dBEuJdabStVwAXUZXOgqu + tBJc6fHDVVvLnSy3zKSdSi2tRW4mIGzNoZTaI4jMVLri4vdbv179dPri5ds3myf3VYe///xrY/oE + 44f1DudvNpsLv/F8VZZStU40f3owmv8jqgLP6/nMGN0Kdii55+3y7S4tqlTqPZVQoLSctzvsp6HK + lr/b2ocqPhIqWQkqefxQSa4QTSvH6lSR1cFrA9AepTjXUBxT8D4PVADLfxD3gYo0nL85GCleCSne + GymaNe0lAoIGcCFuxSiPTbcNqMPITQ9cGCNSgonCzxIs9lftQdRWeT8CKVoJKXr8SLVoUppXzmDW + Yh57k7l3b8gBcw3g0GOqEyVdY1q+KPIBS6jutITqwZZQNl2luxrn7Bjr4J2xDp3wrGMdUS0agmZP + odWi7BFbseEG5ZxwjJ/VEk3yCAI0LXccX1/98e7tJ2aE/yF08WO7vvWrg1CSuA5KEvdEaeIJoZSo + Q3L3JlIKSPCGw80Ont1HBmgUy1hmEt3T8gd/u3DaumGOwolXwon3x2nWFr1XiV4IugQhTlVz7tmS + 5hJVQMU7JPCZ0vMAbXd1eva0/ObX1+335189e3pze/v8HwAAAP//AwD3taOyR7AAAA== headers: cache-control: [max-age=300] - cf-ray: [361d53138dc134b8-LHR] + cf-ray: [3691c4bee96c2c66-AMS] connection: [keep-alive] content-encoding: [gzip] content-type: [application/xml] - date: ['Sat, 20 May 2017 06:43:56 GMT'] + date: ['Sat, 03 Jun 2017 09:54:00 GMT'] server: [cloudflare-nginx] x-proxy-cache: [MISS] status: {code: 200, message: OK} diff --git a/tests/sickrage_tests/providers/torrent/parsing_tests.py b/tests/sickrage_tests/providers/torrent/parsing_tests.py index 73d497f01..c365387c3 100644 --- a/tests/sickrage_tests/providers/torrent/parsing_tests.py +++ b/tests/sickrage_tests/providers/torrent/parsing_tests.py @@ -57,6 +57,12 @@ disabled_provider_tests = { # Have to trick it into thinking is an anime search, and add string overrides 'TokyoToshokan': ['test_rss_search', 'test_episode_search', 'test_season_search'], # 'Torrrentz': ['test_rss_search', 'test_episode_search', 'test_season_search'], + # RSS search is broken (site's fault) + 'LimeTorrents': ['test_rss_search', 'test_episode_search', 'test_season_search'], + # Not working on CIs for some weird unknown reason + 'SkyTorrents': ['test_rss_search', 'test_episode_search', 'test_season_search'], + # Not working on CIs because of a SSL error + 'ilCorsaroNero': ['test_rss_search', 'test_episode_search', 'test_season_search'], } test_string_overrides = { 'Cpasbien': {'Episode': ['The 100 S02E16'], 'Season': ['The 100 S02']}, @@ -108,8 +114,7 @@ class BaseParser(type): def magic(self, *args, **kwargs): # pylint:disable=no-member if func.func_name in disabled_provider_tests.get(self.provider.name, []): - print("skipped") - return unittest.skip(str(self.provider.name)) + self.skipTest('Test is programmatically disabled for provider {}'.format(self.provider.name)) func(self, *args, **kwargs) return magic diff --git a/tests/torrent_tests.py b/tests/torrent_tests.py index 84e66166f..2d199b3ea 100644 --- a/tests/torrent_tests.py +++ b/tests/torrent_tests.py @@ -74,6 +74,7 @@ class TorrentBasicTests(test.SickbeardTestDBCase): return True @staticmethod + @unittest.skip('KickAssTorrents is down, needs a replacement') # TODO def test_search(): # pylint: disable=too-many-locals """ Test searching diff --git a/tox.ini b/tox.ini index 9769ffb65..ece7257b9 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] skipsdist = true -envlist = py27-{windows,linux} +envlist = py27-{flake8,windows,linux} [testenv:py27-linux] platform = linux @@ -48,8 +48,8 @@ deps = flake8-coding isort commands = - flake8 --exclude node_modules,bower_components,lib --select C101,C102,C103 - isort -rc -c -w 160 -ca -dt -a "from __future__ import unicode_literals" -df sickbeard sickrage + flake8 --select C101,C102,C103 sickbeard sickrage tests SickBeard.py setup.py + isort -rc -c -w 160 -ca -dt -a "from __future__ import unicode_literals" -df sickbeard sickrage [flake8] accept-encodings = utf-8, latin-1 -- GitLab