mirror of
https://github.com/rembo10/headphones.git
synced 2026-05-21 02:55:31 +01:00
Merge remote-tracking branch 'origin/master' into what-search
Conflicts: headphones/webserve.py
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
m<%inherit file="base.html"/>
|
||||
<%!
|
||||
import headphones
|
||||
import string
|
||||
%>
|
||||
|
||||
<%def name="headerIncludes()">
|
||||
@@ -184,7 +185,7 @@ m<%inherit file="base.html"/>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>NZBMatrix Username: </label>
|
||||
<label>NZBMatrix Username</label>
|
||||
<input type="text" name="nzbmatrix_username" value="${config['nzbmatrix_user']}" size="30">
|
||||
</div>
|
||||
<div class="row">
|
||||
@@ -199,18 +200,54 @@ m<%inherit file="base.html"/>
|
||||
<div class="row checkbox">
|
||||
<input id="usenewznab" type="checkbox" name="newznab" onclick="initConfigCheckbox($(this));" value="1" ${config['use_newznab']} /><label>Use Newznab</label>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Newznab Host</label>
|
||||
<input type="text" name="newznab_host" value="${config['newznab_host']}" size="30">
|
||||
<small>e.g. http://nzb.su</small>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Newznab API: </label>
|
||||
<input type="text" name="newznab_apikey" value="${config['newznab_api']}" size="36">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div id="newznab_providers">
|
||||
<div class="config" id="newznab1">
|
||||
<div class="row">
|
||||
<label>Newznab Host</label>
|
||||
<input type="text" name="newznab_host" value="${config['newznab_host']}" size="30">
|
||||
<small>e.g. http://nzb.su</small>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Newznab API</label>
|
||||
<input type="text" name="newznab_apikey" value="${config['newznab_api']}" size="36">
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input id="newznab_enabled" type="checkbox" name="newznab_enabled" onclick="initConfigCheckbox($(this));" value="1" ${config['newznab_enabled']} /><label>Enabled</label>
|
||||
</div>
|
||||
</div>
|
||||
<%
|
||||
newznab_number = 2
|
||||
%>
|
||||
%for newznab in config['extra_newznabs']:
|
||||
<%
|
||||
if newznab[2] == '1' or newznab[2] == 1:
|
||||
newznab_enabled = "checked"
|
||||
else:
|
||||
newznab_enabled = ""
|
||||
%>
|
||||
<div class="config" id="newznab${newznab_number}">
|
||||
<div class="row">
|
||||
<label>Newznab Host</label>
|
||||
<input type="text" name="newznab_host${newznab_number}" value="${newznab[0]}" size="30">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Newznab API</label>
|
||||
<input type="text" name="newznab_api${newznab_number}" value="${newznab[1]}" size="36">
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input id="newznab_enabled" type="checkbox" name="newznab_enabled${newznab_number}" value="1" ${newznab_enabled} /><label>Enabled</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<input type="button" class="remove" id="newznab${newznab_number}" value="Remove ${newznab[0]}">
|
||||
</div>
|
||||
</div>
|
||||
<%
|
||||
newznab_number += 1
|
||||
%>
|
||||
%endfor
|
||||
<input type="button" value="Add Newznab" class="add_newznab" id="add_newznab" />
|
||||
</div>
|
||||
</fieldset>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
@@ -233,11 +270,11 @@ m<%inherit file="base.html"/>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Newzbin UID: </label>
|
||||
<label>Newzbin UID</label>
|
||||
<input type="text" name="newzbin_uid" value="${config['newzbin_uid']}" size="30">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Newzbin Password: </label>
|
||||
<label>Newzbin Password</label>
|
||||
<input type="password" name="newzbin_password" value="${config['newzbin_pass']}" size="36">
|
||||
</div>
|
||||
</div>
|
||||
@@ -292,16 +329,18 @@ m<%inherit file="base.html"/>
|
||||
<fieldset>
|
||||
<legend>Quality</legend>
|
||||
<div class="row radio clearfix">
|
||||
<input type="radio" name="preferred_quality" value="0" ${config['pref_qual_0']} /><label>Highest Quality excluding Lossless</label>
|
||||
<input type="radio" name="preferred_quality" value="0" ${config['pref_qual_0']} /><label>Highest Quality excluding Lossless</label>
|
||||
<input type="radio" name="preferred_quality" value="1" ${config['pref_qual_1']} /><label>Highest Quality including Lossless</label>
|
||||
<input type="radio" name="preferred_quality" value="3" ${config['pref_qual_3']} /><label>Lossless Only</label>
|
||||
<input type="radio" name="preferred_quality" value="2" ${config['pref_qual_2']} /><label>Preferred Bitrate:
|
||||
<input type="text" name="preferred_bitrate" value="${config['pref_bitrate']}" size="3">kbps</label>
|
||||
</div>
|
||||
<div class="row checkbox left">
|
||||
<input type="checkbox" name="detect_bitrate" value="1" ${config['detect_bitrate']} />
|
||||
<label>Auto-Detect Preferred Bitrate</label>
|
||||
</div>
|
||||
<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">
|
||||
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="detect_bitrate" value="1" ${config['detect_bitrate']} />
|
||||
<label>Auto-Detect Preferred Bitrate</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</td>
|
||||
@@ -319,10 +358,15 @@ m<%inherit file="base.html"/>
|
||||
<input type="checkbox" name="embed_lyrics" value="1" ${config['embed_lyrics']}><label>Embed lyrics</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Path to Destination folder</label>
|
||||
<label>Path to Destination Folder</label>
|
||||
<input type="text" name="destination_dir" value="${config['dest_dir']}" size="50">
|
||||
<small>e.g. /Users/name/Music/iTunes or /Volumes/share/music</small>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Path to Lossless Destination folder (optional)</label>
|
||||
<input type="text" name="lossless_destination_dir" value="${config['lossless_dest_dir']}" size="50">
|
||||
<small>Set this if you have a separate directory for lossless music</small>
|
||||
</div>
|
||||
</fieldset>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -356,8 +400,14 @@ m<%inherit file="base.html"/>
|
||||
<input type="checkbox" name="music_encoder" id="music_encoder" value="1" ${config['music_encoder']}/><label>Re-encode downloads during postprocessing</label>
|
||||
</div>
|
||||
<div id="encoderoptions" class="row clearfix checkbox">
|
||||
<div class="row">
|
||||
<input type="checkbox" name="encoderlossless" value="1" ${config['encoderlossless']}/><label>Only re-encode lossless files (.flac)</label>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<input type="checkbox" name="delete_lossless_files" value="1" ${config['delete_lossless_files']}/><label>Delete original lossless files after encoding</label>
|
||||
</div>
|
||||
</div>
|
||||
<%
|
||||
if config['encoder'] == 'lame':
|
||||
lameselect = 'selected="selected"'
|
||||
@@ -471,9 +521,30 @@ m<%inherit file="base.html"/>
|
||||
<fieldset>
|
||||
<legend>Miscellaneous</legend>
|
||||
<div class="checkbox left row">
|
||||
<input type="checkbox" name="include_extras" value="1" ${config['include_extras']} /><label>Automatically Include Extras When Adding an Artist <small>(EPs, Compilations, Live Albums, Remix Albums and Singles)</small></label>
|
||||
|
||||
</div>
|
||||
<input type="checkbox" name="include_extras" id="include_extras" value="1" ${config['include_extras']} /><label>Automatically Include Extras When Adding an Artist <br>
|
||||
<%
|
||||
which_extras_selected = ""
|
||||
for extra in config['extras']:
|
||||
if config['extras'][extra] == "checked":
|
||||
which_extras_selected += string.capwords(extra) + ', '
|
||||
# Chop off the last comma & space
|
||||
if which_extras_selected:
|
||||
which_extras_selected = which_extras_selected[:-2]
|
||||
else:
|
||||
which_extras_selected = "None"
|
||||
%>
|
||||
<small>Currently Selected: ${which_extras_selected} <a href="#" id="modify_extras">(Change)</a></small></label>
|
||||
<div id="dialog" title="Choose Which Extras to Include" style="display:none" class="configtable">
|
||||
%for extra in config['extras']:
|
||||
<input type="checkbox" id="${extra}_temp" name="${extra}_temp" value="1" ${config['extras'][extra]} />${string.capwords(extra)}<br>
|
||||
%endfor
|
||||
</div>
|
||||
<div style="display:none">
|
||||
%for extra in config['extras']:
|
||||
<input type="checkbox" id="${extra}" name="${extra}" value="1" ${config['extras'][extra]} />${string.capwords(extra)}<br>
|
||||
%endfor
|
||||
</div>
|
||||
</div>
|
||||
<div class="row left checkbox">
|
||||
<input type="checkbox" name="autowant_upcoming" value="1" ${config['autowant_upcoming']} /><label>Automatically Mark Upcoming Albums as Wanted</label>
|
||||
<div class="row leftcheckbox">
|
||||
@@ -560,7 +631,10 @@ m<%inherit file="base.html"/>
|
||||
</div>
|
||||
<div id="nmaoptions">
|
||||
<div class="row">
|
||||
<label>NotifyMyAndroid API Key</label>
|
||||
<div class="row checkbox">
|
||||
<input type="checkbox" name="nma_onsnatch" value="1" ${config['nma_onsnatch']} /><label>Notify on snatch?</label>
|
||||
</div>
|
||||
<label>NotifyMyAndroid API Key</label>
|
||||
<input type="text" name="nma_apikey" value="${config['nma_apikey']}" size="30">
|
||||
<small>Separate multiple api keys with commas</small>
|
||||
</div>
|
||||
@@ -673,6 +747,13 @@ m<%inherit file="base.html"/>
|
||||
}
|
||||
};
|
||||
|
||||
function openExtrasDialog() {
|
||||
$("#dialog").dialog({ close: function(){
|
||||
var elem = '<input type="button" data-success="Changes saved successfully">';
|
||||
doAjaxCall('configUpdate', elem,'tabs',true);
|
||||
}}).dialog("open");
|
||||
};
|
||||
|
||||
function initThisPage()
|
||||
|
||||
{
|
||||
@@ -785,10 +866,70 @@ m<%inherit file="base.html"/>
|
||||
{
|
||||
$("#nmaoptions").slideUp();
|
||||
}
|
||||
});
|
||||
if ($("#preferred_bitrate").is(":checked"))
|
||||
{
|
||||
$("#preferred_bitrate_options").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#preferred_bitrate_options").hide();
|
||||
}
|
||||
|
||||
$('input[type=radio]').change(function(){
|
||||
if ($("#preferred_bitrate").is(":checked"))
|
||||
{
|
||||
$("#preferred_bitrate_options").slideDown("fast");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#preferred_bitrate_options").slideUp("fast");
|
||||
}
|
||||
});
|
||||
|
||||
$("#mirror").change(handleNewSelection);
|
||||
handleNewSelection.apply($("#mirror"));
|
||||
|
||||
var deletedNewznabs = 0;
|
||||
|
||||
$(".remove").click(function() {
|
||||
$(this).parent().parent().remove();
|
||||
deletedNewznabs = deletedNewznabs + 1;
|
||||
});
|
||||
|
||||
$("#modify_extras").click(openExtrasDialog);
|
||||
|
||||
$("#include_extras").click(function(){
|
||||
if ($("#include_extras").is(":checked")){
|
||||
openExtrasDialog();
|
||||
}
|
||||
});
|
||||
|
||||
%for extra in config['extras']:
|
||||
$("#${extra}_temp").click(function(){
|
||||
if ($(this).is(":checked")){
|
||||
$("#${extra}").attr("checked", true);
|
||||
}
|
||||
else {
|
||||
$("#${extra}").attr("checked", false);
|
||||
}
|
||||
});
|
||||
%endfor
|
||||
|
||||
$("#add_newznab").click(function() {
|
||||
var intId = $("#newznab_providers > div").size() + deletedNewznabs + 1;
|
||||
var formfields = $("<div class=\"config\" id=\"newznab" + intId + "\"><div class=\"row\"><label>Newznab Host</label><input type=\"text\" name=\"newznab_host" + intId + "\" size=\"30\"></div><div class=\"row\"><label>Newznab API</label><input type=\"text\" name=\"newznab_api" + intId + "\" size=\"36\"></div><div class=\"row checkbox\"><input type=\"checkbox\" name=\"newznab_enabled" + intId + "\" value=\"1\" checked /><label>Enabled</label></div>");
|
||||
var removeButton = $("<div class=\"row\"><input type=\"button\" class=\"remove\" value=\"Remove\" /></div>");
|
||||
removeButton.click(function() {
|
||||
$(this).parent().remove();
|
||||
deletedNewznabs = deletedNewznabs + 1;
|
||||
|
||||
});
|
||||
formfields.append(removeButton);
|
||||
formfields.append("</div>");
|
||||
$("#add_newznab").before(formfields);
|
||||
});
|
||||
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
});
|
||||
@@ -803,7 +944,7 @@ m<%inherit file="base.html"/>
|
||||
initConfigCheckbox("#useapi");
|
||||
}
|
||||
$(document).ready(function() {
|
||||
initThisPage();
|
||||
initThisPage();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user