Skip to content

Commit

Permalink
Refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
labrys committed Jul 21, 2016
1 parent acd33f8 commit 860570b
Show file tree
Hide file tree
Showing 8 changed files with 87 additions and 59 deletions.
66 changes: 43 additions & 23 deletions sickbeard/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,34 +33,54 @@
from configobj import ConfigObj
from github import Github

from sickbeard import daily
from sickbeard import db
from sickbeard import helpers
from sickbeard import logger
from sickbeard import metadata
from sickbeard import naming
from sickbeard import providers
from sickbeard import scheduler
from sickbeard import queue
from sickbeard import (
showUpdater, versionChecker, proper, auto_postprocessor, subtitles, traktChecker,
auto_postprocessor,
db,
helpers,
logger,
metadata,
naming,
providers,
scheduler,
show_queue,
showUpdater,
subtitles,
traktChecker,
versionChecker,
)
from sickbeard.common import (
SD,
SKIPPED,
WANTED,
)
from sickbeard import show_queue
from sickbeard.common import SD
from sickbeard.common import SKIPPED
from sickbeard.common import WANTED
from sickbeard.config import (
CheckSection, ConfigMigrator,
check_provider_setting, check_setting_int, check_setting_bool, check_setting_str, check_setting_float,
load_provider_setting, save_provider_setting
)
from sickbeard.databases import main_db, cache_db, failed_db
from sickbeard.indexers import indexer_api
from sickbeard.indexers.indexer_exceptions import indexer_shownotfound, indexer_showincomplete, indexer_exception, \
indexer_error, indexer_episodenotfound, indexer_attributenotfound, indexer_seasonnotfound, indexer_userabort
from sickbeard.indexers.indexer_exceptions import (
indexer_attributenotfound,
indexer_episodenotfound,
indexer_error,
indexer_exception,
indexer_seasonnotfound,
indexer_showincomplete,
indexer_shownotfound,
indexer_userabort,
)
from sickbeard.providers.newznab import NewznabProvider
from sickbeard.providers.rsstorrent import TorrentRssProvider
from sickbeard.search import backlog, daily, proper, queue
from sickbeard.search.daily import DailySearcher
from sickbeard.search.proper import ProperFinder
from sickbeard.search.backlog import BacklogSearchScheduler, BacklogSearcher
from sickbeard.search.queue import (
ForcedSearchQueue,
SearchQueue,
SnatchQueue,
)

from sickrage.helper.encoding import ek
from sickrage.helper.exceptions import ex
from sickrage.providers.GenericProvider import GenericProvider
Expand Down Expand Up @@ -1389,27 +1409,27 @@ def path_leaf(path):
start_time=datetime.time(hour=SHOWUPDATE_HOUR, minute=random.randint(0, 59)))

# snatcher used for manual search, manual picked results
manualSnatchScheduler = scheduler.Scheduler(queue.SnatchQueue(),
manualSnatchScheduler = scheduler.Scheduler(SnatchQueue(),
cycleTime=datetime.timedelta(seconds=3),
threadName="MANUALSNATCHQUEUE")
# searchers
searchQueueScheduler = scheduler.Scheduler(queue.SearchQueue(),
searchQueueScheduler = scheduler.Scheduler(SearchQueue(),
cycleTime=datetime.timedelta(seconds=3),
threadName="SEARCHQUEUE")

forcedSearchQueueScheduler = scheduler.Scheduler(queue.ForcedSearchQueue(),
forcedSearchQueueScheduler = scheduler.Scheduler(ForcedSearchQueue(),
cycleTime=datetime.timedelta(seconds=3),
threadName="FORCEDSEARCHQUEUE")

# TODO: update_interval should take last daily/backlog times into account!
update_interval = datetime.timedelta(minutes=DAILYSEARCH_FREQUENCY)
dailySearchScheduler = scheduler.Scheduler(daily.DailySearcher(),
dailySearchScheduler = scheduler.Scheduler(DailySearcher(),
cycleTime=update_interval,
threadName="DAILYSEARCHER",
run_delay=update_interval)

update_interval = datetime.timedelta(minutes=BACKLOG_FREQUENCY)
backlogSearchScheduler = backlog.BacklogSearchScheduler(backlog.BacklogSearcher(),
backlogSearchScheduler = BacklogSearchScheduler(BacklogSearcher(),
cycleTime=update_interval,
threadName="BACKLOG",
run_delay=update_interval)
Expand All @@ -1422,7 +1442,7 @@ def path_leaf(path):
update_interval = datetime.timedelta(hours=1)
run_at = datetime.time(hour=1) # 1 AM

properFinderScheduler = scheduler.Scheduler(proper.ProperFinder(),
properFinderScheduler = scheduler.Scheduler(ProperFinder(),
cycleTime=update_interval,
threadName="FINDPROPERS",
start_time=run_at,
Expand Down
4 changes: 2 additions & 2 deletions sickbeard/failedProcessor.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from sickbeard import logger
from sickbeard import show_name_helpers
from sickbeard.name_parser.parser import NameParser, InvalidNameException, InvalidShowException
from sickbeard.search import queue
from sickbeard.search.queue import FailedQueueItem
from sickrage.helper.exceptions import FailedPostProcessingFailedException


Expand Down Expand Up @@ -69,7 +69,7 @@ def process(self):
for episode in parsed.episode_numbers:
segment = parsed.show.get_episode(parsed.season_number, episode)

cur_failed_queue_item = queue.FailedQueueItem(parsed.show, [segment])
cur_failed_queue_item = FailedQueueItem(parsed.show, [segment])
sickbeard.forcedSearchQueueScheduler.action.add_item(cur_failed_queue_item)

return True
Expand Down
5 changes: 2 additions & 3 deletions sickbeard/search/backlog.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@
from sickbeard import (
db, scheduler, logger, ui, common,
)
from sickbeard.search import queue

from sickbeard.search.queue import BacklogQueueItem

class BacklogSearchScheduler(scheduler.Scheduler):
def forceSearch(self):
Expand Down Expand Up @@ -106,7 +105,7 @@ def searchBacklog(self, which_shows=None):
for season, segment in iteritems(segments):
self.currentSearchInfo = {'title': curShow.name + " Season " + str(season)}

backlog_queue_item = queue.BacklogQueueItem(curShow, segment)
backlog_queue_item = BacklogQueueItem(curShow, segment)
sickbeard.searchQueueScheduler.action.add_item(backlog_queue_item) # @UndefinedVariable

if not segments:
Expand Down
8 changes: 4 additions & 4 deletions sickbeard/search/manual.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@

import sickbeard
from sickbeard import logger, db
from sickbeard.search.queue import ForcedSearchQueueItem
from sickbeard.common import Quality, Overview, statusStrings, cpu_presets
from sickbeard.search import queue
from sickrage.helper.common import enabled_providers
from sickrage.show.Show import Show

Expand Down Expand Up @@ -123,7 +123,7 @@ def update_finished_search_queue_item(snatch_queue_item):
if snatch_queue_item.show and not search_thread.show.indexerid == snatch_queue_item.show.indexerid:
continue

if isinstance(search_thread, sickbeard.search.queue.ForcedSearchQueueItem):
if isinstance(search_thread, ForcedSearchQueueItem):
if not isinstance(search_thread.segment, list):
search_thread.segment = [search_thread.segment]

Expand Down Expand Up @@ -165,7 +165,7 @@ def collectEpisodesFromSearchThread(show):
if show and not search_thread.show.indexerid == int(show):
continue

if isinstance(search_thread, sickbeard.search.queue.ForcedSearchQueueItem):
if isinstance(search_thread, ForcedSearchQueueItem):
if not [x for x in episodes if x['episodeindexid'] in [search.indexerid for search in search_thread.segment]]:
episodes += getEpisodes(search_thread, searchstatus)
else:
Expand Down Expand Up @@ -259,7 +259,7 @@ def get_provider_cache_results(indexer, show_all_results=None, perform_search=No
and episode: {1}x{2}'.format(show_obj.name, season, episode)

# make a queue item for it and put it on the queue
ep_queue_item = queue.ForcedSearchQueueItem(ep_obj.show, [ep_obj], bool(int(down_cur_quality)), True, manual_search_type) # pylint: disable=maybe-no-member
ep_queue_item = ForcedSearchQueueItem(ep_obj.show, [ep_obj], bool(int(down_cur_quality)), True, manual_search_type) # pylint: disable=maybe-no-member

sickbeard.forcedSearchQueueScheduler.action.add_item(ep_queue_item)

Expand Down
39 changes: 23 additions & 16 deletions sickbeard/search/queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,20 @@
import traceback

import sickbeard
from sickbeard import common
from sickbeard import failed_history, history
from sickbeard import generic_queue
from sickbeard import logger
from sickbeard import providers
from sickbeard import ui
from sickbeard.search import core
from sickbeard import (
common,
failed_history,
history,
generic_queue,
logger,
providers,
ui,
)
from sickbeard.search.core import (
searchForNeededEpisodes,
snatchEpisode,
searchProviders,
)

search_queue_lock = threading.Lock()

Expand Down Expand Up @@ -247,7 +254,7 @@ def run(self):

try:
logger.log(u"Beginning daily search for new episodes")
found_results = core.searchForNeededEpisodes()
found_results = searchForNeededEpisodes()

if not found_results:
logger.log(u"No needed episodes found")
Expand All @@ -259,7 +266,7 @@ def run(self):
result.seeders, result.leechers, result.provider.name))
else:
logger.log(u"Downloading {0} from {1}".format(result.name, result.provider.name))
self.success = core.snatchEpisode(result)
self.success = snatchEpisode(result)

# give the CPU a break
time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
Expand Down Expand Up @@ -314,7 +321,7 @@ def run(self):
format(('forced', 'manual')[bool(self.manual_search)],
('', 'season pack ')[bool(self.manual_search_type == 'season')], self.segment[0].pretty_name()))

search_result = core.searchProviders(self.show, self.segment, True, self.downCurQuality,
search_result = searchProviders(self.show, self.segment, True, self.downCurQuality,
self.manual_search, self.manual_search_type)

if not self.manual_search and search_result:
Expand All @@ -325,7 +332,7 @@ def run(self):
search_result[0].seeders, search_result[0].leechers, search_result[0].provider.name))
else:
logger.log(u"Downloading {0} from {1}".format(search_result[0].name, search_result[0].provider.name))
self.success = core.snatchEpisode(search_result[0])
self.success = snatchEpisode(search_result[0])

# give the CPU a break
time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
Expand Down Expand Up @@ -410,7 +417,7 @@ def run(self):
search_result.seeders, search_result.leechers, search_result.provider.name))
else:
logger.log(u"Downloading {0} from {1}".format(search_result.name, search_result.provider.name))
self.success = core.snatchEpisode(search_result)
self.success = snatchEpisode(search_result)
else:
logger.log(u"Unable to snatch release: {0}".format(search_result.name))

Expand Down Expand Up @@ -451,7 +458,7 @@ def run(self):
if not self.show.paused:
try:
logger.log(u"Beginning backlog search for: [" + self.show.name + "]")
search_result = core.searchProviders(self.show, self.segment, False, False)
search_result = searchProviders(self.show, self.segment, False, False)

if search_result:
for result in search_result:
Expand All @@ -462,7 +469,7 @@ def run(self):
result.seeders, result.leechers, result.provider.name))
else:
logger.log(u"Downloading {0} from {1}".format(result.name, result.provider.name))
self.success = core.snatchEpisode(result)
self.success = snatchEpisode(result)

# give the CPU a break
time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
Expand Down Expand Up @@ -516,7 +523,7 @@ def run(self):

# If it is wanted, self.downCurQuality doesnt matter
# if it isnt wanted, we need to make sure to not overwrite the existing ep that we reverted to!
search_result = core.searchProviders(self.show, self.segment, True, False, False)
search_result = searchProviders(self.show, self.segment, True, False, False)

if search_result:
for result in search_result:
Expand All @@ -526,7 +533,7 @@ def run(self):
result.seeders, result.leechers, result.provider.name))
else:
logger.log(u"Downloading {0} from {1}".format(result.name, result.provider.name))
self.success = core.snatchEpisode(result)
self.success = snatchEpisode(result)

# give the CPU a break
time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
Expand Down
6 changes: 3 additions & 3 deletions sickbeard/server/api/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
ARCHIVED, DOWNLOADED, FAILED, IGNORED, SKIPPED, SNATCHED, SNATCHED_PROPER,
UNAIRED, UNKNOWN, WANTED,
)
from sickbeard.search import queue
from sickbeard.search.queue import BacklogQueueItem, ForcedSearchQueueItem
from sickbeard.versionChecker import CheckVersion
from sickrage.helper.common import (
dateFormat, dateTimeFormat, pretty_file_size, sanitize_filename,
Expand Down Expand Up @@ -782,7 +782,7 @@ def run(self):
return _responds(RESULT_FAILURE, msg="Episode not found")

# make a queue item for it and put it on the queue
ep_queue_item = queue.ForcedSearchQueueItem(show_obj, [ep_obj])
ep_queue_item = ForcedSearchQueueItem(show_obj, [ep_obj])
sickbeard.forcedSearchQueueScheduler.action.add_item(ep_queue_item) # @UndefinedVariable

# wait until the queue item tells us whether it worked or not
Expand Down Expand Up @@ -902,7 +902,7 @@ def _ep_result(result_code, ep, msg=""):
extra_msg = ""
if start_backlog:
for season, segment in iteritems(segments):
cur_backlog_queue_item = queue.BacklogQueueItem(show_obj, segment)
cur_backlog_queue_item = BacklogQueueItem(show_obj, segment)
sickbeard.searchQueueScheduler.action.add_item(cur_backlog_queue_item) # @UndefinedVariable

logger.log(u"API :: Starting backlog for " + show_obj.name + " season " + str(
Expand Down
14 changes: 8 additions & 6 deletions sickbeard/server/web/home/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@
get_xem_absolute_numbering_for_show, get_xem_numbering_for_show,
set_scene_numbering,
)
from sickbeard.search import queue
from sickbeard.search.queue import (
FailedQueueItem, ForcedSearchQueueItem, BacklogQueueItem, ManualSnatchQueueItem
)
from sickbeard.search.manual import (
collectEpisodesFromSearchThread, get_provider_cache_results, getEpisode, update_finished_search_queue_item,
SEARCH_STATUS_FINISHED, SEARCH_STATUS_SEARCHING, SEARCH_STATUS_QUEUED,
Expand Down Expand Up @@ -952,7 +954,7 @@ def pickManualSearch(self, provider=None, rowid=None, manual_search_type='episod
ep_objs.append(show_obj.get_episode(int(cached_result[b'season']), int(episode)))

# Create the queue item
snatch_queue_item = queue.ManualSnatchQueueItem(show_obj, ep_objs, provider, cached_result)
snatch_queue_item = ManualSnatchQueueItem(show_obj, ep_objs, provider, cached_result)

# Add the queue item to the queue
sickbeard.manualSnatchScheduler.action.add_item(snatch_queue_item)
Expand Down Expand Up @@ -1726,7 +1728,7 @@ def setStatus(self, show=None, eps=None, status=None, direct=False):
msg += '<ul>'

for season, segment in iteritems(segments):
cur_backlog_queue_item = queue.BacklogQueueItem(show_obj, segment)
cur_backlog_queue_item = BacklogQueueItem(show_obj, segment)
sickbeard.searchQueueScheduler.action.add_item(cur_backlog_queue_item)

msg += '<li>Season {season}</li>'.format(season=season)
Expand All @@ -1748,7 +1750,7 @@ def setStatus(self, show=None, eps=None, status=None, direct=False):
msg += '<ul>'

for season, segment in iteritems(segments):
cur_failed_queue_item = queue.FailedQueueItem(show_obj, segment)
cur_failed_queue_item = FailedQueueItem(show_obj, segment)
sickbeard.searchQueueScheduler.action.add_item(cur_failed_queue_item)

msg += '<li>Season {season}</li>'.format(season=season)
Expand Down Expand Up @@ -1875,7 +1877,7 @@ def searchEpisode(self, show=None, season=None, episode=None, manual_search=None
})

# make a queue item for it and put it on the queue
ep_queue_item = queue.ForcedSearchQueueItem(ep_obj.show, [ep_obj], bool(int(down_cur_quality)), bool(manual_search))
ep_queue_item = ForcedSearchQueueItem(ep_obj.show, [ep_obj], bool(int(down_cur_quality)), bool(manual_search))

sickbeard.forcedSearchQueueScheduler.action.add_item(ep_queue_item)

Expand Down Expand Up @@ -2030,7 +2032,7 @@ def retryEpisode(self, show, season, episode, down_cur_quality=0):
})

# make a queue item for it and put it on the queue
ep_queue_item = queue.FailedQueueItem(ep_obj.show, [ep_obj], bool(int(down_cur_quality))) # pylint: disable=no-member
ep_queue_item = FailedQueueItem(ep_obj.show, [ep_obj], bool(int(down_cur_quality))) # pylint: disable=no-member
sickbeard.forcedSearchQueueScheduler.action.add_item(ep_queue_item)

if not ep_queue_item.started and ep_queue_item.success is None:
Expand Down
4 changes: 2 additions & 2 deletions sickbeard/traktChecker.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
from sickbeard import helpers
from sickbeard import logger
from sickbeard.common import SKIPPED, UNKNOWN, WANTED, Quality
from sickbeard.search import queue
from sickbeard.search.queue import BacklogQueueItem
from sickrage.helper.common import episode_num
from sickrage.helper.encoding import ek
from sickrage.helper.exceptions import ex
Expand All @@ -54,7 +54,7 @@ def setEpisodeToWanted(show, s, e):
ep_obj.status = WANTED
ep_obj.save_to_db()

cur_backlog_queue_item = queue.BacklogQueueItem(show, [ep_obj])
cur_backlog_queue_item = BacklogQueueItem(show, [ep_obj])
sickbeard.searchQueueScheduler.action.add_item(cur_backlog_queue_item)

logger.log(u"Starting backlog search for {show} {ep} because some episodes were set to wanted".format
Expand Down

0 comments on commit 860570b

Please sign in to comment.