Add CPU throttling preset "Disabled" to config/General/Advanced Settings and centralise the function.

This commit is contained in:
Prinz23 2016-02-11 17:25:29 +01:00 committed by JackDandy
parent 3bcb4498ca
commit 6dd434fcba
7 changed files with 24 additions and 24 deletions

View file

@ -29,6 +29,7 @@
* Change handle all Hachoir library parser errors and replace its Unicode enforcement * Change handle all Hachoir library parser errors and replace its Unicode enforcement
* Allow episode status "Skipped" to be changed to "Downloaded" * Allow episode status "Skipped" to be changed to "Downloaded"
* Allow found "Skipped" episode files to be set "Unknown" quality * Allow found "Skipped" episode files to be set "Unknown" quality
* Add CPU throttling preset "Disabled" to config/General/Advanced Settings
### 0.11.5 (2016-02-01 19:40:00 UTC) ### 0.11.5 (2016-02-01 19:40:00 UTC)

View file

@ -1,6 +1,7 @@
#import sickbeard #import sickbeard
#import datetime #import datetime
#import locale #import locale
#import operator
#from sickbeard.common import * #from sickbeard.common import *
#from sickbeard.sbdatetime import * #from sickbeard.sbdatetime import *
#from sickbeard import config #from sickbeard import config
@ -590,8 +591,8 @@
<span class="component-title">CPU throttling:</span> <span class="component-title">CPU throttling:</span>
<span class="component-desc"> <span class="component-desc">
<select id="cpu_presets" name="cpu_preset" class="form-control input-sm"> <select id="cpu_presets" name="cpu_preset" class="form-control input-sm">
#for $cur_preset in $cpu_presets #for $cur_preset in $sorted($cpu_presets.items(), key=$operator.itemgetter(1), reverse=True)
<option value="$cur_preset"#echo ('', $selected)[$cur_preset == $sickbeard.CPU_PRESET]#>$cur_preset.capitalize()</option> <option value="$cur_preset[0]"#echo ('', $selected)[$cur_preset[0] == $sickbeard.CPU_PRESET]#>$cur_preset[0].capitalize()</option>
#end for #end for
</select> </select>
<span>Normal (default). High is lower and Low is higher CPU use</span> <span>Normal (default). High is lower and Low is higher CPU use</span>
@ -685,4 +686,4 @@
//--> //-->
</script> </script>
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl') #include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl')

View file

@ -36,7 +36,7 @@ mediaExtensions = ['avi', 'mkv', 'mpg', 'mpeg', 'wmv', 'ogm', 'mp4', 'iso', 'img
subtitleExtensions = ['srt', 'sub', 'ass', 'idx', 'ssa'] subtitleExtensions = ['srt', 'sub', 'ass', 'idx', 'ssa']
cpu_presets = {'LOW': 0.01, 'NORMAL': 0.05, 'HIGH': 0.1} cpu_presets = {'DISABLED': 0, 'LOW': 0.01, 'NORMAL': 0.05, 'HIGH': 0.1}
# Other constants # Other constants
MULTI_EP_RESULT = -1 MULTI_EP_RESULT = -1

View file

@ -52,7 +52,7 @@ except ImportError:
from sickbeard.exceptions import MultipleShowObjectsException, ex from sickbeard.exceptions import MultipleShowObjectsException, ex
from sickbeard import logger, classes, db, notifiers, clients from sickbeard import logger, classes, db, notifiers, clients
from sickbeard.common import USER_AGENT, mediaExtensions, subtitleExtensions from sickbeard.common import USER_AGENT, mediaExtensions, subtitleExtensions, cpu_presets
from sickbeard import encodingKludge as ek from sickbeard import encodingKludge as ek
from lib.cachecontrol import CacheControl, caches from lib.cachecontrol import CacheControl, caches
@ -1444,3 +1444,8 @@ def make_search_segment_html_string(segment, max_eps=5):
def has_anime(): def has_anime():
return False if not sickbeard.showList else any(filter(lambda show: show.is_anime, sickbeard.showList)) return False if not sickbeard.showList else any(filter(lambda show: show.is_anime, sickbeard.showList))
def cpu_sleep():
if cpu_presets[sickbeard.CPU_PRESET]:
time.sleep(cpu_presets[sickbeard.CPU_PRESET])

View file

@ -28,7 +28,6 @@ import sickbeard
from sickbeard import logger, helpers, scene_numbering, common, scene_exceptions, encodingKludge as ek, db from sickbeard import logger, helpers, scene_numbering, common, scene_exceptions, encodingKludge as ek, db
from sickbeard.exceptions import ex from sickbeard.exceptions import ex
from sickbeard.common import cpu_presets
class NameParser(object): class NameParser(object):
@ -338,8 +337,7 @@ class NameParser(object):
% (best_result.original_name, str(best_result).decode('utf-8', 'xmlcharrefreplace')), % (best_result.original_name, str(best_result).decode('utf-8', 'xmlcharrefreplace')),
logger.DEBUG) logger.DEBUG)
# CPU sleep helpers.cpu_sleep()
time.sleep(cpu_presets[sickbeard.CPU_PRESET])
return best_result return best_result

View file

@ -213,8 +213,7 @@ class RecentSearchQueueItem(generic_queue.QueueItem):
logger.log(u'Downloading %s from %s' % (result.name, result.provider.name)) logger.log(u'Downloading %s from %s' % (result.name, result.provider.name))
self.success = search.snatch_episode(result) self.success = search.snatch_episode(result)
# give the CPU a break helpers.cpu_sleep()
time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
except Exception: except Exception:
logger.log(traceback.format_exc(), logger.DEBUG) logger.log(traceback.format_exc(), logger.DEBUG)
@ -345,8 +344,7 @@ class ManualSearchQueueItem(generic_queue.QueueItem):
logger.log(u'Downloading %s from %s' % (search_result[0].name, search_result[0].provider.name)) logger.log(u'Downloading %s from %s' % (search_result[0].name, search_result[0].provider.name))
self.success = search.snatch_episode(search_result[0]) self.success = search.snatch_episode(search_result[0])
# give the CPU a break helpers.cpu_sleep()
time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
else: else:
ui.notifications.message('No downloads found', ui.notifications.message('No downloads found',
@ -392,8 +390,7 @@ class BacklogQueueItem(generic_queue.QueueItem):
logger.log(u'Downloading %s from %s' % (result.name, result.provider.name)) logger.log(u'Downloading %s from %s' % (result.name, result.provider.name))
search.snatch_episode(result) search.snatch_episode(result)
# give the CPU a break helpers.cpu_sleep()
time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
else: else:
logger.log(u'No needed episodes found during backlog search for: [%s]' % self.show.name) logger.log(u'No needed episodes found during backlog search for: [%s]' % self.show.name)
except Exception: except Exception:
@ -440,8 +437,7 @@ class FailedQueueItem(generic_queue.QueueItem):
logger.log(u'Downloading %s from %s' % (result.name, result.provider.name)) logger.log(u'Downloading %s from %s' % (result.name, result.provider.name))
search.snatch_episode(result) search.snatch_episode(result)
# give the CPU a break helpers.cpu_sleep()
time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
else: else:
pass pass
# logger.log(u'No valid episode found to retry for: [%s]' % self.segment.prettyName()) # logger.log(u'No valid episode found to retry for: [%s]' % self.segment.prettyName())

View file

@ -39,7 +39,7 @@ from sickbeard import config, sab, clients, history, notifiers, processTV, ui, l
db, search_queue, image_cache, naming, scene_exceptions, subtitles, network_timezones, sbdatetime db, search_queue, image_cache, naming, scene_exceptions, subtitles, network_timezones, sbdatetime
from sickbeard import encodingKludge as ek from sickbeard import encodingKludge as ek
from sickbeard.providers import newznab, rsstorrent from sickbeard.providers import newznab, rsstorrent
from sickbeard.common import Quality, Overview, statusStrings, qualityPresetStrings, cpu_presets from sickbeard.common import Quality, Overview, statusStrings, qualityPresetStrings
from sickbeard.common import SNATCHED, UNAIRED, IGNORED, ARCHIVED, WANTED, FAILED, SKIPPED from sickbeard.common import SNATCHED, UNAIRED, IGNORED, ARCHIVED, WANTED, FAILED, SKIPPED
from sickbeard.common import SD, HD720p, HD1080p from sickbeard.common import SD, HD720p, HD1080p
from sickbeard.exceptions import ex from sickbeard.exceptions import ex
@ -1509,7 +1509,7 @@ class Home(MainHandler):
if do_update: if do_update:
try: try:
sickbeard.showQueueScheduler.action.updateShow(showObj, True) # @UndefinedVariable sickbeard.showQueueScheduler.action.updateShow(showObj, True) # @UndefinedVariable
time.sleep(cpu_presets[sickbeard.CPU_PRESET]) helpers.cpu_sleep()
except exceptions.CantUpdateException as e: except exceptions.CantUpdateException as e:
errors.append('Unable to force an update on the show.') errors.append('Unable to force an update on the show.')
@ -1517,14 +1517,14 @@ class Home(MainHandler):
try: try:
scene_exceptions.update_scene_exceptions(showObj.indexerid, exceptions_list) # @UndefinedVdexerid) scene_exceptions.update_scene_exceptions(showObj.indexerid, exceptions_list) # @UndefinedVdexerid)
buildNameCache(showObj) buildNameCache(showObj)
time.sleep(cpu_presets[sickbeard.CPU_PRESET]) helpers.cpu_sleep()
except exceptions.CantUpdateException as e: except exceptions.CantUpdateException as e:
errors.append('Unable to force an update on scene exceptions of the show.') errors.append('Unable to force an update on scene exceptions of the show.')
if do_update_scene_numbering: if do_update_scene_numbering:
try: try:
sickbeard.scene_numbering.xem_refresh(showObj.indexerid, showObj.indexer) # @UndefinedVariable sickbeard.scene_numbering.xem_refresh(showObj.indexerid, showObj.indexer) # @UndefinedVariable
time.sleep(cpu_presets[sickbeard.CPU_PRESET]) helpers.cpu_sleep()
except exceptions.CantUpdateException as e: except exceptions.CantUpdateException as e:
errors.append('Unable to force an update on scene numbering of the show.') errors.append('Unable to force an update on scene numbering of the show.')
@ -1579,7 +1579,7 @@ class Home(MainHandler):
ui.notifications.error('Unable to refresh this show.', ui.notifications.error('Unable to refresh this show.',
ex(e)) ex(e))
time.sleep(cpu_presets[sickbeard.CPU_PRESET]) helpers.cpu_sleep()
self.redirect('/home/displayShow?show=' + str(showObj.indexerid)) self.redirect('/home/displayShow?show=' + str(showObj.indexerid))
@ -1600,8 +1600,7 @@ class Home(MainHandler):
ui.notifications.error('Unable to update this show.', ui.notifications.error('Unable to update this show.',
ex(e)) ex(e))
# just give it some time helpers.cpu_sleep()
time.sleep(cpu_presets[sickbeard.CPU_PRESET])
self.redirect('/home/displayShow?show=' + str(showObj.indexerid)) self.redirect('/home/displayShow?show=' + str(showObj.indexerid))
@ -1618,7 +1617,7 @@ class Home(MainHandler):
# search and download subtitles # search and download subtitles
sickbeard.showQueueScheduler.action.downloadSubtitles(showObj, bool(force)) # @UndefinedVariable sickbeard.showQueueScheduler.action.downloadSubtitles(showObj, bool(force)) # @UndefinedVariable
time.sleep(cpu_presets[sickbeard.CPU_PRESET]) helpers.cpu_sleep()
self.redirect('/home/displayShow?show=' + str(showObj.indexerid)) self.redirect('/home/displayShow?show=' + str(showObj.indexerid))