mirror of
https://github.com/rembo10/headphones.git
synced 2026-07-19 23:44:01 +01:00
Added an option to allow lossless if no good lossy matches found (works for nzbs only right now)
This commit is contained in:
@@ -350,6 +350,10 @@
|
|||||||
<input type="radio" id="preferred_bitrate" name="preferred_quality" value="2" ${config['pref_qual_2']} />Preferred Bitrate: <input type="text" class="override-float" name="preferred_bitrate" value="${config['pref_bitrate']}" size="3">kbps<br>
|
<input type="radio" id="preferred_bitrate" name="preferred_quality" value="2" ${config['pref_qual_2']} />Preferred Bitrate: <input type="text" class="override-float" name="preferred_bitrate" value="${config['pref_bitrate']}" size="3">kbps<br>
|
||||||
<div id="preferred_bitrate_options">
|
<div id="preferred_bitrate_options">
|
||||||
Reject if <strong>less than</strong> <input type="text" class="override-float" name="preferred_bitrate_low_buffer" value="${config['pref_bitrate_low']}" size="3">% or <strong>more than</strong> <input type="text" class="override-float" name="preferred_bitrate_high_buffer" value="${config['pref_bitrate_high']}" size="3">% of the target size (leave blank for no limit)<br><br>
|
Reject if <strong>less than</strong> <input type="text" class="override-float" name="preferred_bitrate_low_buffer" value="${config['pref_bitrate_low']}" size="3">% or <strong>more than</strong> <input type="text" class="override-float" name="preferred_bitrate_high_buffer" value="${config['pref_bitrate_high']}" size="3">% of the target size (leave blank for no limit)<br><br>
|
||||||
|
<div class="row checkbox left">
|
||||||
|
<input type="checkbox" name="preferred_bitrate_allow_lossless" value="1" ${config['pref_bitrate_allow_lossless']} />
|
||||||
|
<label>Allow lossless if no good lossy match found</label>
|
||||||
|
</div>
|
||||||
<div class="row checkbox left">
|
<div class="row checkbox left">
|
||||||
<input type="checkbox" name="detect_bitrate" value="1" ${config['detect_bitrate']} />
|
<input type="checkbox" name="detect_bitrate" value="1" ${config['detect_bitrate']} />
|
||||||
<label>Auto-Detect Preferred Bitrate</label>
|
<label>Auto-Detect Preferred Bitrate</label>
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ PREFERRED_QUALITY = None
|
|||||||
PREFERRED_BITRATE = None
|
PREFERRED_BITRATE = None
|
||||||
PREFERRED_BITRATE_HIGH_BUFFER = None
|
PREFERRED_BITRATE_HIGH_BUFFER = None
|
||||||
PREFERRED_BITRATE_LOW_BUFFER = None
|
PREFERRED_BITRATE_LOW_BUFFER = None
|
||||||
|
PREFERRED_BITRATE_ALLOW_LOSSLESS = False
|
||||||
DETECT_BITRATE = False
|
DETECT_BITRATE = False
|
||||||
ADD_ARTISTS = False
|
ADD_ARTISTS = False
|
||||||
CORRECT_METADATA = False
|
CORRECT_METADATA = False
|
||||||
@@ -284,7 +285,7 @@ def initialize():
|
|||||||
PROWL_ENABLED, PROWL_PRIORITY, PROWL_KEYS, PROWL_ONSNATCH, PUSHOVER_ENABLED, PUSHOVER_PRIORITY, PUSHOVER_KEYS, PUSHOVER_ONSNATCH, MIRRORLIST, \
|
PROWL_ENABLED, PROWL_PRIORITY, PROWL_KEYS, PROWL_ONSNATCH, PUSHOVER_ENABLED, PUSHOVER_PRIORITY, PUSHOVER_KEYS, PUSHOVER_ONSNATCH, MIRRORLIST, \
|
||||||
MIRROR, CUSTOMHOST, CUSTOMPORT, CUSTOMSLEEP, HPUSER, HPPASS, XBMC_ENABLED, XBMC_HOST, XBMC_USERNAME, XBMC_PASSWORD, XBMC_UPDATE, \
|
MIRROR, CUSTOMHOST, CUSTOMPORT, CUSTOMSLEEP, HPUSER, HPPASS, XBMC_ENABLED, XBMC_HOST, XBMC_USERNAME, XBMC_PASSWORD, XBMC_UPDATE, \
|
||||||
XBMC_NOTIFY, NMA_ENABLED, NMA_APIKEY, NMA_PRIORITY, NMA_ONSNATCH, SYNOINDEX_ENABLED, ALBUM_COMPLETION_PCT, PREFERRED_BITRATE_HIGH_BUFFER, \
|
XBMC_NOTIFY, NMA_ENABLED, NMA_APIKEY, NMA_PRIORITY, NMA_ONSNATCH, SYNOINDEX_ENABLED, ALBUM_COMPLETION_PCT, PREFERRED_BITRATE_HIGH_BUFFER, \
|
||||||
PREFERRED_BITRATE_LOW_BUFFER,CACHE_SIZEMB
|
PREFERRED_BITRATE_LOW_BUFFER, PREFERRED_BITRATE_ALLOW_LOSSLESS, CACHE_SIZEMB
|
||||||
|
|
||||||
if __INITIALIZED__:
|
if __INITIALIZED__:
|
||||||
return False
|
return False
|
||||||
@@ -344,6 +345,7 @@ def initialize():
|
|||||||
PREFERRED_BITRATE = check_setting_str(CFG, 'General', 'preferred_bitrate', '')
|
PREFERRED_BITRATE = check_setting_str(CFG, 'General', 'preferred_bitrate', '')
|
||||||
PREFERRED_BITRATE_HIGH_BUFFER = check_setting_int(CFG, 'General', 'preferred_bitrate_high_buffer', '')
|
PREFERRED_BITRATE_HIGH_BUFFER = check_setting_int(CFG, 'General', 'preferred_bitrate_high_buffer', '')
|
||||||
PREFERRED_BITRATE_LOW_BUFFER = check_setting_int(CFG, 'General', 'preferred_bitrate_low_buffer', '')
|
PREFERRED_BITRATE_LOW_BUFFER = check_setting_int(CFG, 'General', 'preferred_bitrate_low_buffer', '')
|
||||||
|
PREFERRED_BITRATE_ALLOW_LOSSLESS = bool(check_setting_int(CFG, 'General', 'preferred_bitrate_allow_lossless', 0))
|
||||||
DETECT_BITRATE = bool(check_setting_int(CFG, 'General', 'detect_bitrate', 0))
|
DETECT_BITRATE = bool(check_setting_int(CFG, 'General', 'detect_bitrate', 0))
|
||||||
ADD_ARTISTS = bool(check_setting_int(CFG, 'General', 'auto_add_artists', 1))
|
ADD_ARTISTS = bool(check_setting_int(CFG, 'General', 'auto_add_artists', 1))
|
||||||
CORRECT_METADATA = bool(check_setting_int(CFG, 'General', 'correct_metadata', 0))
|
CORRECT_METADATA = bool(check_setting_int(CFG, 'General', 'correct_metadata', 0))
|
||||||
@@ -666,6 +668,7 @@ def config_write():
|
|||||||
new_config['General']['preferred_bitrate'] = PREFERRED_BITRATE
|
new_config['General']['preferred_bitrate'] = PREFERRED_BITRATE
|
||||||
new_config['General']['preferred_bitrate_high_buffer'] = PREFERRED_BITRATE_HIGH_BUFFER
|
new_config['General']['preferred_bitrate_high_buffer'] = PREFERRED_BITRATE_HIGH_BUFFER
|
||||||
new_config['General']['preferred_bitrate_low_buffer'] = PREFERRED_BITRATE_LOW_BUFFER
|
new_config['General']['preferred_bitrate_low_buffer'] = PREFERRED_BITRATE_LOW_BUFFER
|
||||||
|
new_config['General']['preferred_bitrate_allow_lossless'] = int(PREFERRED_BITRATE_ALLOW_LOSSLESS)
|
||||||
new_config['General']['detect_bitrate'] = int(DETECT_BITRATE)
|
new_config['General']['detect_bitrate'] = int(DETECT_BITRATE)
|
||||||
new_config['General']['auto_add_artists'] = int(ADD_ARTISTS)
|
new_config['General']['auto_add_artists'] = int(ADD_ARTISTS)
|
||||||
new_config['General']['correct_metadata'] = int(CORRECT_METADATA)
|
new_config['General']['correct_metadata'] = int(CORRECT_METADATA)
|
||||||
|
|||||||
@@ -584,6 +584,7 @@ def searchNZB(albumid=None, new=False, losslessOnly=False):
|
|||||||
else:
|
else:
|
||||||
logger.info('Target size: %s' % helpers.bytes_to_mb(targetsize))
|
logger.info('Target size: %s' % helpers.bytes_to_mb(targetsize))
|
||||||
newlist = []
|
newlist = []
|
||||||
|
flac_list = []
|
||||||
|
|
||||||
if headphones.PREFERRED_BITRATE_HIGH_BUFFER:
|
if headphones.PREFERRED_BITRATE_HIGH_BUFFER:
|
||||||
high_size_limit = targetsize * int(headphones.PREFERRED_BITRATE_HIGH_BUFFER)/100
|
high_size_limit = targetsize * int(headphones.PREFERRED_BITRATE_HIGH_BUFFER)/100
|
||||||
@@ -598,6 +599,11 @@ def searchNZB(albumid=None, new=False, losslessOnly=False):
|
|||||||
|
|
||||||
if high_size_limit and (result[1] > high_size_limit):
|
if high_size_limit and (result[1] > high_size_limit):
|
||||||
logger.info(result[0] + " is too large for this album - not considering it. (Size: " + helpers.bytes_to_mb(result[1]) + ", Maxsize: " + helpers.bytes_to_mb(high_size_limit))
|
logger.info(result[0] + " is too large for this album - not considering it. (Size: " + helpers.bytes_to_mb(result[1]) + ", Maxsize: " + helpers.bytes_to_mb(high_size_limit))
|
||||||
|
|
||||||
|
# Add lossless nzbs to the "flac list" which we can use if there are no good lossy matches
|
||||||
|
if 'flac' in result[0].lower():
|
||||||
|
flac_list.append((result[0], result[1], result[2], result[3]))
|
||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if low_size_limit and (result[1] < low_size_limit):
|
if low_size_limit and (result[1] < low_size_limit):
|
||||||
@@ -608,6 +614,11 @@ def searchNZB(albumid=None, new=False, losslessOnly=False):
|
|||||||
newlist.append((result[0], result[1], result[2], result[3], delta))
|
newlist.append((result[0], result[1], result[2], result[3], delta))
|
||||||
|
|
||||||
nzblist = sorted(newlist, key=lambda title: title[4])
|
nzblist = sorted(newlist, key=lambda title: title[4])
|
||||||
|
|
||||||
|
if not len(nzblist) and len(flac_list) and headphones.PREFERRED_BITRATE_ALLOW_LOSSLESS:
|
||||||
|
logger.info("Since there were no appropriate lossy matches, going to use lossless instead")
|
||||||
|
nzblist = sorted(flac_list, key=lambda title: title[1], reverse=True)
|
||||||
|
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
|
|
||||||
|
|||||||
@@ -617,6 +617,7 @@ class WebInterface(object):
|
|||||||
"pref_bitrate" : headphones.PREFERRED_BITRATE,
|
"pref_bitrate" : headphones.PREFERRED_BITRATE,
|
||||||
"pref_bitrate_high" : headphones.PREFERRED_BITRATE_HIGH_BUFFER,
|
"pref_bitrate_high" : headphones.PREFERRED_BITRATE_HIGH_BUFFER,
|
||||||
"pref_bitrate_low" : headphones.PREFERRED_BITRATE_LOW_BUFFER,
|
"pref_bitrate_low" : headphones.PREFERRED_BITRATE_LOW_BUFFER,
|
||||||
|
"pref_bitrate_allow_lossless" : checked(headphones.PREFERRED_BITRATE_ALLOW_LOSSLESS),
|
||||||
"detect_bitrate" : checked(headphones.DETECT_BITRATE),
|
"detect_bitrate" : checked(headphones.DETECT_BITRATE),
|
||||||
"move_files" : checked(headphones.MOVE_FILES),
|
"move_files" : checked(headphones.MOVE_FILES),
|
||||||
"rename_files" : checked(headphones.RENAME_FILES),
|
"rename_files" : checked(headphones.RENAME_FILES),
|
||||||
@@ -708,7 +709,7 @@ class WebInterface(object):
|
|||||||
delete_lossless_files=0, prowl_enabled=0, prowl_onsnatch=0, prowl_keys=None, prowl_priority=0, xbmc_enabled=0, xbmc_host=None, xbmc_username=None, xbmc_password=None,
|
delete_lossless_files=0, prowl_enabled=0, prowl_onsnatch=0, prowl_keys=None, prowl_priority=0, xbmc_enabled=0, xbmc_host=None, xbmc_username=None, xbmc_password=None,
|
||||||
xbmc_update=0, xbmc_notify=0, nma_enabled=False, nma_apikey=None, nma_priority=0, nma_onsnatch=0, synoindex_enabled=False,
|
xbmc_update=0, xbmc_notify=0, nma_enabled=False, nma_apikey=None, nma_priority=0, nma_onsnatch=0, synoindex_enabled=False,
|
||||||
pushover_enabled=0, pushover_onsnatch=0, pushover_keys=None, pushover_priority=0, mirror=None, customhost=None, customport=None,
|
pushover_enabled=0, pushover_onsnatch=0, pushover_keys=None, pushover_priority=0, mirror=None, customhost=None, customport=None,
|
||||||
customsleep=None, hpuser=None, hppass=None, preferred_bitrate_high_buffer=None, preferred_bitrate_low_buffer=None, cache_sizemb=None, **kwargs):
|
customsleep=None, hpuser=None, hppass=None, preferred_bitrate_high_buffer=None, preferred_bitrate_low_buffer=None, preferred_bitrate_allow_lossless=0, cache_sizemb=None, **kwargs):
|
||||||
|
|
||||||
headphones.HTTP_HOST = http_host
|
headphones.HTTP_HOST = http_host
|
||||||
headphones.HTTP_PORT = http_port
|
headphones.HTTP_PORT = http_port
|
||||||
@@ -765,6 +766,7 @@ class WebInterface(object):
|
|||||||
headphones.PREFERRED_BITRATE = preferred_bitrate
|
headphones.PREFERRED_BITRATE = preferred_bitrate
|
||||||
headphones.PREFERRED_BITRATE_HIGH_BUFFER = preferred_bitrate_high_buffer
|
headphones.PREFERRED_BITRATE_HIGH_BUFFER = preferred_bitrate_high_buffer
|
||||||
headphones.PREFERRED_BITRATE_LOW_BUFFER = preferred_bitrate_low_buffer
|
headphones.PREFERRED_BITRATE_LOW_BUFFER = preferred_bitrate_low_buffer
|
||||||
|
headphones.PREFERRED_BITRATE_ALLOW_LOSSLESS = preferred_bitrate_allow_lossless
|
||||||
headphones.DETECT_BITRATE = detect_bitrate
|
headphones.DETECT_BITRATE = detect_bitrate
|
||||||
headphones.MOVE_FILES = move_files
|
headphones.MOVE_FILES = move_files
|
||||||
headphones.CORRECT_METADATA = correct_metadata
|
headphones.CORRECT_METADATA = correct_metadata
|
||||||
|
|||||||
Reference in New Issue
Block a user