mirror of
https://github.com/lazylibrarian/LazyLibrarian.git
synced 2026-04-19 14:36:56 -04:00
4548 lines
236 KiB
HTML
4548 lines
236 KiB
HTML
<%inherit file="base.html"/>
|
|
<%!
|
|
import lazylibrarian
|
|
%>
|
|
<%def name="headerIncludes()">
|
|
<div id="subhead_container">
|
|
<div id="subhead_menu">
|
|
<a onclick="self.shutdownQA(this)" class="button btn btn-sm btn-danger" data-toggle="tooltip" data-placement="bottom" title="Terminate the LazyLibrarian process - Be careful if you're doing this remotely"><i class="fa fa-power-off"></i> Shutdown</a>
|
|
<a class="button btn btn-sm btn-warning" onclick="self.restartQA(this, '', '')"><i class="fa fa-sync"></i> Restart</a>
|
|
<button class="button btn btn-sm btn-primary" type="button" value="System Info" id="sysinfo"><i class="fa fa-cogs"></i> System Info</button>
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Show Jobs" id="show_Jobs"><i class="fa fa-list-ul"></i> Job Status</button>
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Show Stats" id="show_Stats"><i class="fa fa-list-ul"></i> DB Stats</button>
|
|
<button class="button btn btn-sm btn-primary" type="button" value="checkforupdates" id="checkforupdates"><i class="fa fa-list-alt"></i> Check Version</button>
|
|
%if lazylibrarian.CONFIG['USER_ACCOUNTS'] == True:
|
|
<a class="button btn btn-sm btn-primary" href="userAdmin"><i class="fa fa-user"></i> User Admin</a>
|
|
%endif
|
|
<button class="hidden" onclick="" id="myAlert" title=""><i class="fa fa-circle-notch fa-spin"></i> Checking, please wait...</button>
|
|
</div>
|
|
</div>
|
|
</%def>
|
|
<%def name="body()">
|
|
<!-- ensure the browser sends form-submission data in the UTF-8 encoding,
|
|
even if the user fiddles with the page encoding -->
|
|
<form accept-charset="UTF-8" action="configUpdate" method="post">
|
|
<h1>${title}
|
|
<div class="pull-right table_wrapper_button">
|
|
<input type="submit" value="Save changes" id="add" class="btn btn-primary">
|
|
</div>
|
|
</h1>
|
|
<div role="tab-table" class="hidden">
|
|
<!-- if the browser is IE and the user switched the page encoding, force utf8 by adding
|
|
a hidden input to the form with a value such as ✓ which can only be from the Unicode charset-->
|
|
<input name="utf8" type="hidden" value="✓" />
|
|
<div>
|
|
<ul class="nav nav-tabs" role="tablist" id="configtabs">
|
|
<li role="presentation" id="1" aria-controls="webinterface"><a role="tab" data-toggle="tab" aria-controls="webinterface" href="#webinterface">Interface</a></li>
|
|
<li role="presentation" id="2" aria-controls="importoptions"><a role="tab" data-toggle="tab" aria-controls="importoptions" href="#importoptions">Importing</a></li>
|
|
<li role="presentation" id="3" aria-controls="downloadsettings"><a role="tab" data-toggle="tab" aria-controls="downloadsettings" href="#downloadsettings">Downloaders</a></li>
|
|
<li role="presentation" id="4" aria-controls="providers"><a role="tab" data-toggle="tab" aria-controls="providers" href="#providers">Providers</a></li>
|
|
<li role="presentation" id="5" aria-controls="searchprocessing"><a role="tab" data-toggle="tab" aria-controls="searchprocessing" href="#searchprocessing">Processing</a></li>
|
|
<li role="presentation" id="6" aria-controls="notifications"><a role="tab" data-toggle="tab" aria-controls="notifications" href="#notifications">Notifications</a></li>
|
|
<li role="presentation" id="7" aria-controls="capabilities"><a role="tab" data-toggle="tab" aria-controls="capabilities" href="#capabilities">Categories</a></li>
|
|
<li role="presentation" id="8" aria-controls="filters"><a role="tab" data-toggle="tab" aria-controls="filters" href="#filters">Filters</a></li>
|
|
</ul>
|
|
<div class="tab-content">
|
|
<div role="tabpanel" class="tab-pane" id="webinterface">
|
|
<div class="configtable">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<fieldset>
|
|
<legend>Server Details</legend>
|
|
<input type="text" id="current_tab" name="current_tab" value="${lazylibrarian.CURRENT_TAB}" class="hidden">
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Host</span>
|
|
<input type="text" id="http_host" name="http_host" value="${lazylibrarian.CONFIG['HTTP_HOST']}" class="form-control" placeholder="Hostname">
|
|
<span class="input-group-addon">Port</span>
|
|
<input type="number" id="http_port" name="http_port" value="${lazylibrarian.CONFIG['HTTP_PORT']}" class="form-control" placeholder="Port Number (Default 5299)">
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Web Root</span>
|
|
<input type="text" id="http_root" name="http_root" value="${lazylibrarian.CONFIG['HTTP_ROOT']}" class="form-control" placeholder="Web Root">
|
|
</div>
|
|
<fieldset>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['HTTP_PROXY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="http_proxy" class="control-label">
|
|
<input type="checkbox" id="http_proxy" name="http_proxy" value="1" ${checked} />
|
|
HTTP proxy (see wiki)</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['HTTPS_ENABLED'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="https_enabled" class="control-label">
|
|
<input type="checkbox" id="https_enabled" name="https_enabled" value="1" ${checked} />
|
|
HTTPS access to lazylibrarian</label>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset id="https_options">
|
|
<div class="form-group">
|
|
<label for="https_cert" class="control-label">Https Certificate:</label>
|
|
<input type="text" id="https_cert" name="https_cert" value="${lazylibrarian.CONFIG['HTTPS_CERT']}" class="form-control" placeholder="https certificate">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="https_key" class="control-label">Https Key:</label>
|
|
<input type="text" id="https_key" name="https_key" value="${lazylibrarian.CONFIG['HTTPS_KEY']}" class="form-control" placeholder="https key">
|
|
</div>
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>Logs</legend>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Logdir</span>
|
|
<input type="text" id="logdir" name="logdir" value="${lazylibrarian.CONFIG['LOGDIR']}" class="form-control" placeholder="Log Dir">
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Log Files</span>
|
|
<input type="number" id="logfiles" name="logfiles" value="${lazylibrarian.CONFIG['LOGFILES']}" class="form-control" placeholder="Number of files">
|
|
<span class="input-group-addon">Log Lines</span>
|
|
<input type="number" id="loglimit" name="loglimit" value="${lazylibrarian.CONFIG['LOGLIMIT']}" class="form-control" placeholder="Number of lines">
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Log Size</span>
|
|
<input type="number" id="logsize" name="logsize" value="${lazylibrarian.CONFIG['LOGSIZE']}" class="form-control" placeholder="Log File Size">
|
|
<span class="input-group-addon">Log Level</span>
|
|
<input type="number" id="loglevel" name="loglevel" value="${lazylibrarian.LOGLEVEL}" class="form-control" placeholder="0=quiet,1=Normal,2=Debug">
|
|
</div>
|
|
</fieldset>
|
|
</fieldset>
|
|
<br>
|
|
<fieldset>
|
|
<legend>Proxy Details</legend>
|
|
<div class="form-group">
|
|
<label for="proxy_host" class="control-label">Proxy Host:</label>
|
|
<input type="text" id="proxy_host" name="proxy_host" value="${lazylibrarian.CONFIG['PROXY_HOST']}" class="form-control" placeholder="Proxy Host">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="proxy_type" class="control-label">Proxy Type:</label>
|
|
<input type="text" id="proxy_type" name="proxy_type" value="${lazylibrarian.CONFIG['PROXY_TYPE']}" class="form-control" placeholder="Proxy Types">
|
|
<span class="help-block">Comma separated list http, https, etc</span>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>OPDS Server</legend>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['OPDS_ENABLED'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="opds_enabled" title="Allow remote applications to interface with LazyLibrarian">
|
|
<input type="checkbox" id="opds_enabled" name="opds_enabled" value="1" ${checked} />
|
|
Enable OPDS</label>
|
|
</div>
|
|
<small>Enabling/Disabling OPDS or changing credentials requires restart</small><br>
|
|
<fieldset id="opdsoptions">
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['OPDS_AUTHENTICATION'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="opds_authentication" title="OPDS requires username and password">
|
|
<input type="checkbox" id="opds_authentication" name="opds_authentication" value="1" ${checked} />
|
|
OPDS Requires Credentials</label>
|
|
</div>
|
|
<div id="opdscredentials">
|
|
<small>If the user/pass below are blank the webserver user/pass will be used</small>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">User</span>
|
|
<input type="text" id="opds_username" name="opds_username" value="${lazylibrarian.CONFIG['OPDS_USERNAME']}" class="form-control" placeholder="Username">
|
|
<span class="input-group-addon">Pass</span>
|
|
<input type="password" id="opds_password" name="opds_password" value="${lazylibrarian.CONFIG['OPDS_PASSWORD']}" class="form-control" placeholder="Password">
|
|
</div>
|
|
<small>NOTE - some OPDS readers do not send authentication for cover images or searches, so we don't send them. If you are getting lists with no images try disabling authentication or upgrading your reader</small>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['OPDS_METAINFO'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="opds_metainfo" title="OPDS extra metainfo">
|
|
<input type="checkbox" id="opds_metainfo" name="opds_metainfo" value="1" ${checked} />
|
|
OPDS Include MetaInfo</label><br><small>This will include book summary, cover, author details</small>
|
|
</div>
|
|
<div class="input-group col-md-6">
|
|
<span class="input-group-addon">Page Size</span>
|
|
<input type="number" id="opds_page" name="opds_page" value="${lazylibrarian.CONFIG['OPDS_PAGE']}" class="form-control" placeholder="Page Size">
|
|
</div>
|
|
</fieldset>
|
|
</fieldset>
|
|
</div>
|
|
<div>
|
|
<fieldset>
|
|
<legend>Access Control</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['USER_ACCOUNTS'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="user_accounts" title="User accounts">
|
|
<input type="checkbox" id="user_accounts" name="user_accounts" value="1" ${checked} />
|
|
Enable user accounts</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['SINGLE_USER'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="single_user" title="Bypass login">
|
|
<input type="checkbox" id="single_user" name="single_user" value="1" ${checked} />
|
|
Single user bypass login</label>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset>
|
|
<fieldset id="admin_options">
|
|
<div class="form-group">
|
|
<label for="admin_email" class="control-label">Contact Email:</label>
|
|
<input type="text" id="admin_email" name="admin_email" value="${lazylibrarian.CONFIG['ADMIN_EMAIL']}" class="form-control" placeholder="Contact email for requests/registration">
|
|
</div>
|
|
</fieldset>
|
|
<fieldset id="webserver_options">
|
|
WebServer Options:
|
|
<div class="input-group">
|
|
<span class="input-group-addon">User</span>
|
|
<input type="text" id="http_user" name="http_user" value="${lazylibrarian.CONFIG['HTTP_USER']}" class="form-control" placeholder="Username">
|
|
<span class="input-group-addon">Pass</span>
|
|
<input type="password" id="http_pass" name="http_pass" value="${lazylibrarian.CONFIG['HTTP_PASS']}" class="form-control" placeholder="Password">
|
|
</div>
|
|
</fieldset>
|
|
<small>Enabling/Disabling user accounts or changing webserver user/pass requires restart<br></small>
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>Startup</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['LAUNCH_BROWSER'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="launch_browser" class="control-label">
|
|
<input type="checkbox" id="launch_browser" name="launch_browser" value="1" ${checked} />
|
|
Launch browser</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['API_ENABLED'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="api_enabled" title="Allow remote applications to interface with LazyLibrarian">
|
|
<input type="checkbox" id="api_enabled" name="api_enabled" value="1" ${checked} />
|
|
Enable API</label>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset>
|
|
<fieldset id="api_options">
|
|
<div class="form-group">
|
|
<label>API key</label>
|
|
<input type="text" name="api_key" id="api_key" value="${lazylibrarian.CONFIG['API_KEY']}" size="36">
|
|
<input class="button btn btn-sm btn-primary" type="button" value="Generate" id="generateAPI" onClick="document.location.reload(true)">
|
|
<br>
|
|
<small>Current API key: <strong>${lazylibrarian.CONFIG['API_KEY']}</strong></small>
|
|
</div>
|
|
</fieldset>
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>Appearance</legend>
|
|
<div class="form-group">
|
|
<label for="http_look">Interface:</label>
|
|
<select id="http_look" name="http_look" class="form-control">
|
|
%for http_look in config['http_look_list']:
|
|
<%
|
|
if http_look == lazylibrarian.CONFIG['HTTP_LOOK']:
|
|
selected = 'selected="selected"'
|
|
else:
|
|
selected = ''
|
|
%>
|
|
<option value="${http_look}" ${selected}>${http_look}</option>
|
|
%endfor
|
|
</select>
|
|
</div>
|
|
<div class="checkbox hidden"> <!-- Not really required? -->
|
|
<label for="bookstrap" class="control-label">
|
|
<input type="checkbox" name="use_bookstrap" id="bookstrap" value="1" ${checked} />
|
|
Use Bookstrap</label>
|
|
</div>
|
|
<fieldset id="bookstrap_options">
|
|
<div class="form_group">
|
|
<label for="bookstrap_theme" class="control-label">Bootswatch Theme:</label>
|
|
<select name="bookstrap_theme" id="bookstrap_theme" class="form-control">
|
|
%for bookstrap_theme in lazylibrarian.BOOKSTRAP_THEMELIST:
|
|
<%
|
|
if bookstrap_theme == lazylibrarian.CONFIG['BOOKSTRAP_THEME']:
|
|
selected = 'selected="selected"'
|
|
else:
|
|
selected = ''
|
|
%>
|
|
<option value="${bookstrap_theme}" ${selected}>${bookstrap_theme}</option>
|
|
%endfor
|
|
</select>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['AUTHOR_IMG'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="author_img" class="control-label">
|
|
<input type="checkbox" id="author_img" name="author_img" value="1" ${checked} />
|
|
Show Author Images</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['BOOK_IMG'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="book_img" class="control-label">
|
|
<input type="checkbox" id="book_img" name="book_img" value="1" ${checked} />
|
|
Show Book Images</label>
|
|
</div>
|
|
</div>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['MAG_TAB'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="mag_tab" class="control-label">
|
|
<input type="checkbox" id="mag_tab" name="mag_tab" value="1" ${checked} />
|
|
Show Magazines</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['MAG_IMG'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="mag_img" class="control-label">
|
|
<input type="checkbox" id="mag_img" name="mag_img" value="1" ${checked} />
|
|
Show Magazine Images</label>
|
|
</div>
|
|
</div>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['SERIES_TAB'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="series_tab" class="control-label">
|
|
<input type="checkbox" id="series_tab" name="series_tab" value="1" ${checked} />
|
|
Show Series</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['AUDIO_TAB'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="audio_tab" class="control-label">
|
|
<input type="checkbox" id="audio_tab" name="audio_tab" value="1" ${checked} />
|
|
Show AudioBooks</label>
|
|
</div>
|
|
</div>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOGGLES'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="toggles" class="control-label">
|
|
<input type="checkbox" id="toggles" name="toggles" value="1" ${checked} />
|
|
Show column toggles</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['SORT_SURNAME'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="sort_surname" class="control-label">
|
|
<input type="checkbox" id="sort_surname" name="sort_surname" value="1" ${checked} />
|
|
Show author surname first</label>
|
|
</div>
|
|
</div>
|
|
<div class="row checkbox">
|
|
<div class="col-md-12">
|
|
<%
|
|
if lazylibrarian.CONFIG['SORT_DEFINITE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="sort_definite" class="control-label">
|
|
<input type="checkbox" id="sort_definite" name="sort_definite" value="1" ${checked} />
|
|
Show titles ignoring definite article (The, A)</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> <!-- end of web interface tab panel -->
|
|
<div role="tabpanel" class="tab-pane" id="importoptions">
|
|
<div class="configtable">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<fieldset>
|
|
<legend>Information Sources</legend>
|
|
<div class="form-group">
|
|
<%
|
|
if lazylibrarian.CONFIG['BOOK_API'] == "GoodReads":
|
|
gr_selected = 'selected="selected"'
|
|
gb_selected = ''
|
|
else:
|
|
gr_selected = ''
|
|
gb_selected = 'selected="selected"'
|
|
%>
|
|
<label for="book_api" class="control-label">Book Information</label>
|
|
<select id="book_api" name="book_api" class="form-control">
|
|
<option value = "GoodReads" ${gr_selected}>GoodReads</option>
|
|
<option value = "GoogleBooks" ${gb_selected}>GoogleBooks</option>
|
|
</select>
|
|
</div>
|
|
<fieldset id="gb_options">
|
|
<div class="form-group">
|
|
<label for="gb_api" class="control-label">GoogleBooks API:</label>
|
|
<input type="text" id="gb_api" name="gb_api" value="${lazylibrarian.CONFIG['GB_API']}" class="form-control">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="gb_country" class="control-label">GoogleBooks Country:</label>
|
|
<input type="text" id="gb_country" name="gb_country" value="${lazylibrarian.CONFIG['GB_COUNTRY']}" class="form-control">
|
|
<span class="help-block">Two letter country code for geographically restricted content e.g: US GB ES</span>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset id="gr_options">
|
|
<div class="form-group">
|
|
<label for="gr_api">Goodreads API:</label>
|
|
<input type="text" id="gr_api" name="gr_api" value="${lazylibrarian.CONFIG['GR_API']}" class="form-control" placeholder="Goodreads API">
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['GR_SYNC'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="gr_sync" class="control-label">
|
|
<input type="checkbox" id="gr_sync" name="gr_sync" value="1" ${checked} />
|
|
Enable GoodReads Sync</label>
|
|
</div>
|
|
<fieldset id="grsync_options">
|
|
<label for="gr_secret">Goodreads Secret:</label>
|
|
<input type="text" id="gr_secret" name="gr_secret" value="${lazylibrarian.CONFIG['GR_SECRET']}" class="form-control">
|
|
<label for="gr_oauth_token">Goodreads OAuth Token:</label>
|
|
<input type="text" id="gr_oauth_token" name="gr_oauth_token" value="${lazylibrarian.CONFIG['GR_OAUTH_TOKEN']}" class="form-control">
|
|
<label for="gr_oauth_secret">Goodreads OAuth Secret:</label>
|
|
<input type="text" id="gr_oauth_secret" name="gr_oauth_secret" value="${lazylibrarian.CONFIG['GR_OAUTH_SECRET']}" class="form-control">
|
|
<label for="gr_wanted">Sync Wanted eBooks to Goodreads shelf:</label>
|
|
<input type="text" id="gr_wanted" name="gr_wanted" value="${lazylibrarian.CONFIG['GR_WANTED']}" class="form-control" placeholder="eg: to-read">
|
|
<label for="gr_owned">Sync Open/Have eBooks to Goodreads shelf:</label>
|
|
<input type="text" id="gr_owned" name="gr_owned" value="${lazylibrarian.CONFIG['GR_OWNED']}" class="form-control" placeholder="eg: owned">
|
|
<fieldset id="graudio_options">
|
|
<label for="gr_awanted">Sync Wanted AudioBooks to Goodreads shelf:</label>
|
|
<input type="text" id="gr_awanted" name="gr_awanted" value="${lazylibrarian.CONFIG['GR_AWANTED']}" class="form-control" placeholder="eg: audio_wanted">
|
|
<label for="gr_owned">Sync Open/Have AudioBooks to Goodreads shelf:</label>
|
|
<input type="text" id="gr_aowned" name="gr_aowned" value="${lazylibrarian.CONFIG['GR_AOWNED']}"class="form-control" placeholder="eg: audio_owned">
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['GR_UNIQUE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="gr_unique" class="control-label">
|
|
<input type="checkbox" id="gr_unique" name="gr_unique" value="1" ${checked} />
|
|
Delete from GoodReads Wanted shelf if also on Open/Have shelf</label>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="goodreads_interval" class="control-label">Goodreads Sync Interval:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="goodreads_interval" name="goodreads_interval" value="${lazylibrarian.CONFIG['GOODREADS_INTERVAL']}" class="form-control" placeholder="Goodreads Sync interval (hours)" >
|
|
<span class="input-group-addon">Hours</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Request oAuth1" id="grauthStep1" class="btn btn-default" />
|
|
<input type="button" value="Request oAuth2" id="grauthStep2" class="btn btn-default" />
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Authorization" id="testgrauth" class="btn btn-default" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</fieldset>
|
|
<div class="form-group">
|
|
<label for="lt_devkey" class="control-label">LibraryThing Developer Key:</label>
|
|
<input type="text" id="lt_devkey" name="lt_devkey" value="${lazylibrarian.CONFIG['LT_DEVKEY']}" class="form-control" placeholder="optional">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<fieldset>
|
|
<legend>File Formats</legend>
|
|
<div class="form-group">
|
|
<label for="ebook_type" class="control-label">eBooks:</label>
|
|
<input type="text" id="ebook_type" name="ebook_type" value="${lazylibrarian.CONFIG['EBOOK_TYPE']}" class="form-control" placeholder="eBook file formats">
|
|
<span class="help-block">Comma separated file extensions</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="audiobook_type" class="control-label">AudioBooks:</label>
|
|
<input type="text" id="audiobook_type" name="audiobook_type" value="${lazylibrarian.CONFIG['AUDIOBOOK_TYPE']}" class="form-control" placeholder="AudioBook file formats">
|
|
<span class="help-block">Comma separated file extensions</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mag_type" class="control-label">Magazines:</label>
|
|
<input type="text" id="mag_type" name="mag_type" value="${lazylibrarian.CONFIG['MAG_TYPE']}" class="form-control" placeholder="Magazine file formats">
|
|
<span class="help-block">Comma separated file extensions</span>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NO_FUTURE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="no_future">
|
|
<input type="checkbox" id="no_future" name="no_future" value="1" ${checked} />
|
|
Ignore books with future publication date</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NO_PUBDATE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="no_pubdate">
|
|
<input type="checkbox" id="no_pubdate" name="no_pubdate" value="1" ${checked} />
|
|
Ignore books with unknown publication date</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NO_ISBN'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="no_isbn">
|
|
<input type="checkbox" id="no_isbn" name="no_isbn" value="1" ${checked} />
|
|
Ignore books with no isbn</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NO_SETS'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="no_sets">
|
|
<input type="checkbox" id="no_sets" name="no_sets" value="1" ${checked} />
|
|
Ignore part books and sets</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NO_LANG'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="no_lang">
|
|
<input type="checkbox" id="no_lang" name="no_lang" value="1" ${checked} />
|
|
Treat invalid language as ignored</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_IGNORE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_ignore">
|
|
<input type="checkbox" id="imp_ignore" name="imp_ignore" value="1" ${checked} />
|
|
Add ignored books to database (marked Ignored)</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_GOOGLEIMAGE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_googleimage">
|
|
<input type="checkbox" id="imp_googleimage" name="imp_googleimage" value="1" ${checked} />
|
|
Try google image search as final option for missing book covers</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['DELETE_CSV'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="delete_csv">
|
|
<input type="checkbox" id="delete_csv" name="delete_csv" value="1" ${checked} />
|
|
Delete csv file or wishlist after successful import</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['BLACKLIST_FAILED'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="blacklist_failed">
|
|
<input type="checkbox" id="blacklist_failed" name="blacklist_failed" value="1" ${checked} />
|
|
Blacklist failed downloads in history table</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['BLACKLIST_PROCESSED'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="blacklist_processed">
|
|
<input type="checkbox" id="blacklist_processed" name="blacklist_processed" value="1" ${checked} />
|
|
Blacklist processed downloads in history table</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['DELAYSEARCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="delaysearch">
|
|
<input type="checkbox" id="delaysearch" name="delaysearch" value="1" ${checked} />
|
|
Increase delay for previously failed searches</label>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<fieldset>
|
|
<legend>Language</legend>
|
|
<div class="form-group">
|
|
<label for="imp_preflang" class="control-label">Import languages:</label>
|
|
<input type="text" id="imp_preflang" name="imp_preflang" value="${lazylibrarian.CONFIG['IMP_PREFLANG']}" class="form-control" placeholder="Import Languages">
|
|
<span class="help-block">Comma separated country shortcodes:<br/>
|
|
GoodReads e.g: eng, en-US, spa, ita<br/>
|
|
GoogleBooks e.g: en, es, it<br/>
|
|
Default: en, eng, en-US<br/>
|
|
Try adding "Unknown" to list if GoodReads is missing results, or "All" if you don't want to check for language</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="imp_monthlang" class="control=label">Languages for month names:</label>
|
|
<input type="text" id="imp_monthlang" name="imp_monthlang" value="${lazylibrarian.CONFIG['IMP_MONTHLANG']}" class="form-control" placeholder="Languages for month names">
|
|
<span class="help-block">Comma separated language codes for magazine issues:<br/>
|
|
e.g: fr_FR.utf8, es_ES.utf8<br/>
|
|
English month names are preloaded<br/>Changes to this setting require a restart</span>
|
|
</div>
|
|
<legend>Date Formats</legend>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<label for="date_format" class="control=label">Added Dates:</label>
|
|
<input type="text" id="date_format" name="date_format" value="${lazylibrarian.CONFIG['DATE_FORMAT']}" class="form-control" placeholder="Format for column dates">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="iss_format" class="control=label">Issue Dates:</label>
|
|
<input type="text" id="iss_format" name="iss_format" value="${lazylibrarian.CONFIG['ISS_FORMAT']}" class="form-control" placeholder="Format for issue dates">
|
|
</div>
|
|
</div>
|
|
<span class="help-block">$d Day of the month as a number<br>$b Month as abbreviated name<br>$B Month as full name<br>$m Month as a number<br>$y Year without century<br>$Y Year with century<br>eg $Y-$m-$d</span>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane" id="downloadsettings">
|
|
<div class="configtable">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<fieldset>
|
|
<legend>Usenet</legend>
|
|
<fieldset class="usenet_options">
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NZB_DOWNLOADER_SABNZBD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="nzb_downloader_sabnzbd" class="control-label">
|
|
<input type="checkbox" id="nzb_downloader_sabnzbd" name="nzb_downloader_sabnzbd" value="1" ${checked} />
|
|
Use Sabnzbd+</label>
|
|
</div>
|
|
<fieldset id="sabnzbd_options">
|
|
<legend>SABnzbd+</legend>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="sab_host" class="control-label">SABnzbd Host:</label>
|
|
<input type="text" id="sab_host" name="sab_host" value="${lazylibrarian.CONFIG['SAB_HOST']}" class="form-control" placeholder="SABnzbd Host">
|
|
</div>
|
|
<div class="form-group col-md-4">
|
|
<label for="sab_port" class="control-label">SABnzbd Port:</label>
|
|
<input type="number" id="sab_port" name="sab_port" value="${lazylibrarian.CONFIG['SAB_PORT']}" class="form-control" placeholder="SABnzbd Port">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="form-group col-md-6">
|
|
<label for="sab_user">SABnzbd Username</label>
|
|
<input type="text" id="sab_user" name="sab_user" value="${lazylibrarian.CONFIG['SAB_USER']}" class="form-control" placeholder="SABnzbd Username">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="sab_pass" class="control-label">SABnzbd Password:</label>
|
|
<input type="password" id="sab_pass" name="sab_pass" value="${lazylibrarian.CONFIG['SAB_PASS']}" class="form-control" placeholder="SABnzbd Password">
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="sab_api" class="control-label">SABnzbd API Key:</label>
|
|
<input type="text" id="sab_api" name="sab_api" value="${lazylibrarian.CONFIG['SAB_API']}" class="form-control" placeholder="SABnzbd API Key">
|
|
</div>
|
|
<div class="row">
|
|
<div class="form-group col-md-6">
|
|
<label for="sab_cat">SABnzbd Category:</label>
|
|
<input type="text" id="sab_cat" name="sab_cat" value="${lazylibrarian.CONFIG['SAB_CAT']}" class="form-control" placeholder="SABnzbd Category">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="sab_subdir" class="control-label">SABnzbd URL Base:</label>
|
|
<input type="text" id="sab_subdir" name="sab_subdir" value="${lazylibrarian.CONFIG['SAB_SUBDIR']}" class="form-control" placeholder="Sabnzbd URL Base">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Test SABnzbd" id="testSABnzbd"><i class="fa fa-list-ul"></i> Test SABnzbd</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NZB_DOWNLOADER_NZBGET'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="nzb_downloader_nzbget" class="control-label">
|
|
<input type="checkbox" id="nzb_downloader_nzbget" name="nzb_downloader_nzbget" value="1" ${checked} />
|
|
Use NZBGet</label>
|
|
</div>
|
|
<fieldset id="nzbget_options">
|
|
<legend>NZBGet</legend>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="nzbget_host" class="control-label">NZBGet Host:</label>
|
|
<input type="text" id="nzbget_host" name="nzbget_host" value="${lazylibrarian.CONFIG['NZBGET_HOST']}" class="form-control" placeholder="NZBGet Host">
|
|
</div>
|
|
<div class="form-group col-md-4">
|
|
<label for="nzbget_port" class="control-label">Port</label>
|
|
<input type="number" id="nzbget_port" name="nzbget_port" value="${lazylibrarian.CONFIG['NZBGET_PORT']}" class="form-control" placeholder="NZBGet Port">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="form-group col-md-6">
|
|
<label for="nzbget_user" class="control-label">Username</label>
|
|
<input type="text" id="nzbget_user" name="nzbget_user" value="${lazylibrarian.CONFIG['NZBGET_USER']}" class="form-control" placeholder="NZBGet Username">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="nzbget_pass">Password:</label>
|
|
<input type="password" id="nzbget_pass" name="nzbget_pass" value="${lazylibrarian.CONFIG['NZBGET_PASS']}" class="form-control" placeholder="NZBGet Password">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="form-group col-md-6">
|
|
<label for="nzbget_category" class="control-label">Category:</label>
|
|
<input type="text" id="nzbget_category" name="nzbget_category" value="${lazylibrarian.CONFIG['NZBGET_CATEGORY']}" class="form-control" placeholder="NZBGet Category">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="nzbget_priority">Priority:</label>
|
|
<input type="text" id="nzbget_priority" name="nzbget_priority" value="${lazylibrarian.CONFIG['NZBGET_PRIORITY']}" class="form-control" placeholder="NZBGet Priority">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Test NZBget" id="testNZBget"><i class="fa fa-list-ul"></i> Test NZBget</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_SYNOLOGY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_synology" class="control-label">
|
|
<input type="checkbox" id="use_synology" name="use_synology" value="1" ${checked} />
|
|
Use Synology DownloadStation</label>
|
|
</div>
|
|
<fieldset id="synology_options">
|
|
<legend>Synology</legend>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="synology_host" class="control-label">Synology Host:</label>
|
|
<input type="text" id="synology_host" name="synology_host" value="${lazylibrarian.CONFIG['SYNOLOGY_HOST']}" class="form-control" placeholder="Synology Host">
|
|
</div>
|
|
<div class="form-group col-md-4">
|
|
<label for="synology_port" class="control-label">Port</label>
|
|
<input type="number" id="synology_port" name="synology_port" value="${lazylibrarian.CONFIG['SYNOLOGY_PORT']}" class="form-control" placeholder="Synology Port">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="synology_user" class="control-label">Username</label>
|
|
<input type="text" id="synology_user" name="synology_user" value="${lazylibrarian.CONFIG['SYNOLOGY_USER']}" class="form-control" placeholder="Synology Username">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="synology_pass">Password:</label>
|
|
<input type="password" id="synology_pass" name="synology_pass" value="${lazylibrarian.CONFIG['SYNOLOGY_PASS']}" class="form-control" placeholder="Synology Password">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="synology_dir">Directory:</label>
|
|
<input type="text" id="synology_dir" name="synology_dir" value="${lazylibrarian.CONFIG['SYNOLOGY_DIR']}" class="form-control" placeholder="Synology Directory">
|
|
</div>
|
|
</div>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['NZB_DOWNLOADER_SYNOLOGY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="nzb_downloader_synology" class="control-label">
|
|
<input type="checkbox" id="nzb_downloader_synology" name="nzb_downloader_synology" value="1" ${checked} />
|
|
Use DownloadStation for usenet</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOR_DOWNLOADER_SYNOLOGY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="tor_downloader_synology" class="control-label">
|
|
<input type="checkbox" id="tor_downloader_synology" name="tor_downloader_synology" value="1" ${checked} />
|
|
Use DownloadStation for torrents</label>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Test Synology" id="testSynology"><i class="fa fa-list-ul"></i> Test Synology</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NZB_DOWNLOADER_BLACKHOLE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="nzb_downloader_blackhole" class="control-label">
|
|
<input type="checkbox" id="nzb_downloader_blackhole" name="nzb_downloader_blackhole" value="1" ${checked} />
|
|
Use NZB Blackhole</label>
|
|
</div>
|
|
<fieldset id="nzb_blackhole_options">
|
|
<legend>NZB Blackhole</legend>
|
|
<div class="form-group">
|
|
<label for="nzb_blackholedir" class="control-label">NZB Blackhole Directory:</label>
|
|
<input type="text" id="nzb_blackholedir" name="nzb_blackholedir" value="${lazylibrarian.CONFIG['NZB_BLACKHOLEDIR']}" class="form-control" placeholder="NZB Blackhole Directory">
|
|
</div>
|
|
</fieldset>
|
|
<div class="input-group col-md-6">
|
|
<span class="input-group-addon">Usenet Retention</span>
|
|
<input type="number" id="usenet_retention" name="usenet_retention" value="${lazylibrarian.CONFIG['USENET_RETENTION']}" class="form-control" placeholder="Retention Maximum Age">
|
|
<span class="input-group-addon">Days</span>
|
|
</div>
|
|
</fieldset>
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<fieldset>
|
|
<legend>Torrents</legend>
|
|
<fieldset id="torrent_options">
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOR_DOWNLOADER_DELUGE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="tor_downloader_deluge" class="control-label">
|
|
<input type="checkbox" id="tor_downloader_deluge" name="tor_downloader_deluge" value="1" ${checked} />
|
|
Use Deluge</label>
|
|
</div>
|
|
<fieldset id="deluge_options">
|
|
<legend>Deluge</legend>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="deluge_host">Deluge Host:</label>
|
|
<input type="text" id="deluge_host" name="deluge_host" value="${lazylibrarian.CONFIG['DELUGE_HOST']}" class="form-control" placeholder="Deluge Host">
|
|
</div>
|
|
<div class="form-group col-md-4">
|
|
<label for="deluge_port" class="control-label">Daemon or webUI Port:</label>
|
|
<input type="number" id="deluge_port" name="deluge_port" value="${lazylibrarian.CONFIG['DELUGE_PORT']}" class="form-control" placeholder="Deluge Port">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="deluge_cert">Deluge Certificate:</label>
|
|
<input type="text" id="deluge_cert" name="deluge_cert" value="${lazylibrarian.CONFIG['DELUGE_CERT']}" class="form-control" placeholder="webUI only">
|
|
</div>
|
|
<div class="form-group col-md-4">
|
|
<label for="deluge_base">Deluge URL Base:</label>
|
|
<input type="text" id="deluge_base" name="deluge_base" value="${lazylibrarian.CONFIG['DELUGE_BASE']}" class="form-control" placeholder="URL Base">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="form-group col-md-6">
|
|
<label for="deluge_user" class="controllabel">Username:</label>
|
|
<input type="text" id="deluge_user" name="deluge_user" value="${lazylibrarian.CONFIG['DELUGE_USER']}" class="form-control" placeholder="daemon only">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="deluge_pass" class="control-label">Password:</label>
|
|
<input type="password" id="deluge_pass" name="deluge_pass" value="${lazylibrarian.CONFIG['DELUGE_PASS']}" class="form-control" placeholder="Deluge Password">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="deluge_label" class="control-label">Deluge Label:</label>
|
|
<input type="text" id="deluge_label" name="deluge_label" value="${lazylibrarian.CONFIG['DELUGE_LABEL']}" class="form-control" placeholder="Deluge Label">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="deluge_dir" class="control-label">Download directory :</label>
|
|
<input type="text" id="deluge_dir" name="deluge_dir" value="${lazylibrarian.CONFIG['DELUGE_DIR']}" class="form-control" placeholder="use deluge default">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Test Deluge" id="testDeluge"><i class="fa fa-list-ul"></i> Test Deluge</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOR_DOWNLOADER_TRANSMISSION'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="tor_downloader_transmission" class="control-label">
|
|
<input type="checkbox" id="tor_downloader_transmission" name="tor_downloader_transmission" value="1" ${checked} />
|
|
Use Transmission</label>
|
|
</div>
|
|
<fieldset id="transmission_options">
|
|
<legend>Transmission</legend>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="transmission_host" class="control-label">Transmission Host:</label>
|
|
<input type="text" id="transmission_host" name="transmission_host" value="${lazylibrarian.CONFIG['TRANSMISSION_HOST']}" class="form-control" placeholder="Transmission host">
|
|
</div>
|
|
<div class="form-group col-md-4">
|
|
<label for="transmission_port" class="control-label">Transmission Port :</label>
|
|
<input type="number" id="transmission_port" name="transmission_port" value="${lazylibrarian.CONFIG['TRANSMISSION_PORT']}" class="form-control" placeholder="Transmission port">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="transmission_user" class="control-label">Username :</label>
|
|
<input type="text" id="transmission_user" name="transmission_user" value="${lazylibrarian.CONFIG['TRANSMISSION_USER']}" class="form-control" placeholder="Transmission Username">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="transmission_pass" class="control-label">Password :</label>
|
|
<input type="password" id="transmission_pass" name="transmission_pass" value="${lazylibrarian.CONFIG['TRANSMISSION_PASS']}" class="form-control" placeholder="Transmission Password">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="transmission_dir" class="control-label">Download directory :</label>
|
|
<input type="text" id="transmission_dir" name="transmission_dir" value="${lazylibrarian.CONFIG['TRANSMISSION_DIR']}" class="form-control" placeholder="use transmission default">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="transmission_base" class="control-label">Transmission URL Base:</label>
|
|
<input type="text" id="transmission_base" name="transmission_base" value="${lazylibrarian.CONFIG['TRANSMISSION_BASE']}" class="form-control" placeholder="/transmission">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Test Transmission" id="testTransmission"><i class="fa fa-list-ul"></i> Test Transmission</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOR_DOWNLOADER_RTORRENT'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="tor_downloader_rtorrent" class="control-label">
|
|
<input type="checkbox" id="tor_downloader_rtorrent" name="tor_downloader_rtorrent" value="1" ${checked} />
|
|
Use rTorrent</label>
|
|
</div>
|
|
<fieldset id="rtorrent_options">
|
|
<legend>rTorrent</legend>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="rtorrent_host" class="control-label">rTorrent Host:</label>
|
|
<input type="text" id="rtorrent_host" name="rtorrent_host" value="${lazylibrarian.CONFIG['RTORRENT_HOST']}" class="form-control" placeholder="rTorrent Host">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="rtorrent_user" class="control-label">rTorrent User:</label>
|
|
<input type="text" id="rtorrent_user" name="rtorrent_user" value="${lazylibrarian.CONFIG['RTORRENT_USER']}" class="form-control" placeholder="rTorrent User">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="rtorrent_pass" class="control-label">rTorrent Password:</label>
|
|
<input type="password" id="rtorrent_pass" name="rtorrent_pass" value="${lazylibrarian.CONFIG['RTORRENT_PASS']}" class="form-control" placeholder="rTorrent Password">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="rtorrent_label" class="control-label">rTorrent Label:</label>
|
|
<input type="text" id="rtorrent_label" name="rtorrent_label" value="${lazylibrarian.CONFIG['RTORRENT_LABEL']}" class="form-control" placeholder="rTorrent Label">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="rtorrent_dir" class="control-label">rTorrent Directory:</label>
|
|
<input type="text" id="rtorrent_dir" name="rtorrent_dir" value="${lazylibrarian.CONFIG['RTORRENT_DIR']}" class="form-control" placeholder="use rtorrent default">
|
|
</div>
|
|
<div>
|
|
<div class="col-md-6">
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Test rTorrent" id="testrTorrent"><i class="fa fa-list-ul"></i> Test rTorrent</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOR_DOWNLOADER_UTORRENT'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="tor_downloader_utorrent" class="control-label">
|
|
<input type="checkbox" id="tor_downloader_utorrent" name="tor_downloader_utorrent" value="1" ${checked} />
|
|
Use uTorrent</label>
|
|
</div>
|
|
<fieldset id="utorrent_options">
|
|
<legend>uTorrent</legend>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="utorrent_host" class="control-label">uTorrent Host:</label>
|
|
<input type="text" id="utorrent_host" name="utorrent_host" value="${lazylibrarian.CONFIG['UTORRENT_HOST']}" class="form-control" placeholder="uTorrent Host">
|
|
</div>
|
|
<div class="form-group col-md-4">
|
|
<label for="utorrent_port" class="control-label">uTorrent Port:</label>
|
|
<input type="number" id="utorrent_port" name="utorrent_port" value="${lazylibrarian.CONFIG['UTORRENT_PORT']}" class="form-control" placeholder="uTorrent Port">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="utorrent_user" class="control-label">Username:</label>
|
|
<input type="text" id="utorrent_user" name="utorrent_user" value="${lazylibrarian.CONFIG['UTORRENT_USER']}" class="form-control" placeholder="uTorrent Username">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label>Password:</label>
|
|
<input type="password" id="utorrent_pass" name="utorrent_pass" value="${lazylibrarian.CONFIG['UTORRENT_PASS']}" class="form-control" placeholder="uTorrent Password">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="utorrent_label" class="control-label">uTorrent Label:</label>
|
|
<input type="text" id="utorrent_label" name="utorrent_label" value="${lazylibrarian.CONFIG['UTORRENT_LABEL']}" class="form-control" placeholder="uTorrent Label">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Test uTorrent" id="testuTorrent"><i class="fa fa-list-ul"></i> Test uTorrent</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOR_DOWNLOADER_QBITTORRENT'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="tor_downloader_qbittorrent" class="control-label">
|
|
<input type="checkbox" id="tor_downloader_qbittorrent" name="tor_downloader_qbittorrent" value="1" ${checked} />
|
|
Use qBitTorrent</label>
|
|
</div>
|
|
<fieldset id="qbittorrent_options">
|
|
<legend>qBitTorrent</legend>
|
|
<div class="row">
|
|
<div class="form-group col-md-8">
|
|
<label for="qbittorrent_host" class="control-label">qBitTorrent Host:</label>
|
|
<input type="text" id="qbittorrent_host" name="qbittorrent_host" value="${lazylibrarian.CONFIG['QBITTORRENT_HOST']}" class="form-control" placeholder="qBitTorrent Host">
|
|
</div>
|
|
<div class="form-group col-md-4">
|
|
<label for="qbittorrent_port" class="control-label">qBitTorrent Port:</label>
|
|
<input type="number" id="qbittorrent_port" name="qbittorrent_port" value="${lazylibrarian.CONFIG['QBITTORRENT_PORT']}" class="form-control" placeholder="qBitTorrent Port">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="qbittorrent_user" class="control-label">Username:</label>
|
|
<input type="text" id="qbittorrent_user" name="qbittorrent_user" value="${lazylibrarian.CONFIG['QBITTORRENT_USER']}" class="form-control" placeholder="qBitTorrent Username">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="qbittorrent_pass" class="control-label">Password:</label>
|
|
<input type="password" id="qbittorrent_pass" name="qbittorrent_pass" value="${lazylibrarian.CONFIG['QBITTORRENT_PASS']}" class="form-control" placeholder="qBitTorrent Password">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="qbittorrent_label" class="control-label">qBitTorrent Label/Category:</label>
|
|
<input type="text" id="qbittorrent_label" name="qbittorrent_label" value="${lazylibrarian.CONFIG['QBITTORRENT_LABEL']}" class="form-control" placeholder="qBitTorrent Label/Category">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="qbittorrent_dir" class="control-label">Download directory :</label>
|
|
<input type="text" id="qbittorrent_dir" name="qbittorrent_dir" value="${lazylibrarian.CONFIG['QBITTORRENT_DIR']}" class="form-control" placeholder="use qbittorrent default">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<button class="button btn btn-sm btn-primary" type="button" value="Test qBittorrent" id="testqBittorrent"><i class="fa fa-list-ul"></i> Test qBittorrent</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOR_DOWNLOADER_BLACKHOLE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="tor_downloader_blackhole" class="control-label">
|
|
<input type="checkbox" id="tor_downloader_blackhole" name="tor_downloader_blackhole" value="1" ${checked} />
|
|
Use Torrent Blackhole</label>
|
|
</div>
|
|
<fieldset id="tor_blackhole_options">
|
|
<legend>Torrent Blackhole</legend>
|
|
<div class="form-group">
|
|
<label for="torrent_dir" class="control-label">Torrent Blackhole Directory:</label>
|
|
<input type="text" id="torrent_dir" name="torrent_dir" value="${lazylibrarian.CONFIG['TORRENT_DIR']}" class="form-control" placeholder="Torrent Blackhole Directory">
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['TOR_CONVERT_MAGNET'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="tor_convert_magnet" class="control-label">
|
|
<input type="checkbox" id="tor_convert_magnet" name="tor_convert_magnet" value="1" ${checked} />
|
|
Convert magnet links into torrent files</label>
|
|
</div>
|
|
</fieldset>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['PREFER_MAGNET'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="prefer_magnet" class="control-label">
|
|
<input type="checkbox" id="prefer_magnet" name="prefer_magnet" value="1" ${checked} />
|
|
Prefer magnet links to torrent files</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['KEEP_SEEDING'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="keep_seeding" class="control-label">
|
|
<input type="checkbox" id="keep_seeding" name="keep_seeding" value="1" ${checked} />
|
|
Keep seeding after processing</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['SEED_WAIT'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="seed_wait" class="control-label">
|
|
<input type="checkbox" id="seed_wait" name="seed_wait" value="1" ${checked} />
|
|
Do not delete if still seeding</label>
|
|
</div>
|
|
<div class="input-group col-md-6">
|
|
<span class="input-group-addon">Minimum Seeders</span>
|
|
<input type="number" id="numberofseeders" name="numberofseeders" value="${lazylibrarian.CONFIG['NUMBEROFSEEDERS']}" class="form-control" placeholder="0 to disable">
|
|
</div>
|
|
</fieldset>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane" id="providers">
|
|
<div class="configtable">
|
|
<div class="row">
|
|
<div class="usenet_providers">
|
|
<fieldset>
|
|
<div class="col-md-12">
|
|
<legend>Newznab Providers</legend>
|
|
</div>
|
|
%for provider in lazylibrarian.NEWZNAB_PROV:
|
|
<%
|
|
checked = ''
|
|
if provider['ENABLED'] == True:
|
|
checked = 'checked="checked"'
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Name</span>
|
|
<label for="newznab_${loop.index}_dispname" class="sr-only">Newznab Name</label>
|
|
<input type="text" id="newznab_${loop.index}_dispname" name="newznab_${loop.index}_dispname" value="${provider['DISPNAME']}" class="form-control" placeholder="display name">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="newznab_${loop.index}_enabled" name="newznab_${loop.index}_enabled" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon"></span>
|
|
<label for="newznab_${loop.index}_host" class="sr-only">Newznab URL</label>
|
|
<input type="text" placeholder="Newznab URL #${loop.index}" id="newznab_${loop.index}_host" name="newznab_${loop.index}_host" value="${provider['HOST']}" class="form-control">
|
|
<span class="input-group-addon"></span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon"></span>
|
|
<label for="newznab_${loop.index}_api" class="sr-only">Newznab API Key</label>
|
|
<input type="text" placeholder="Newznab API #${loop.index}" id="newznab_${loop.index}_api" name="newznab_${loop.index}_api" value="${provider['API']}" class="form-control">
|
|
<span class="input-group-addon"></span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="newznab_${loop.index}_dlpriority" name="newznab_${loop.index}_dlpriority" value="${provider['DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="newznab_${loop.index}_dltypes" name="newznab_${loop.index}_dltypes" value="${provider['DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="newznab_${loop.index}"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
%endfor
|
|
</fieldset>
|
|
</div>
|
|
<div class="torznab_providers">
|
|
<fieldset>
|
|
<div class="col-md-12">
|
|
<legend>Torznab Providers</legend>
|
|
</div>
|
|
%for provider in lazylibrarian.TORZNAB_PROV:
|
|
<%
|
|
checked = ''
|
|
if provider['ENABLED'] == True:
|
|
checked = 'checked="checked"'
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Name</span>
|
|
<label for="torznab_${loop.index}_host" class="sr-only">Torznab Name</label>
|
|
<input type="text" id="torznab_${loop.index}_dispname" name="torznab_${loop.index}_dispname" value="${provider['DISPNAME']}" class="form-control" placeholder="display name">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="torznab_${loop.index}_enabled" name="torznab_${loop.index}_enabled" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon"></span>
|
|
<label for="torznab_${loop.index}_host" class="sr-only">Torznab URL</label>
|
|
<input type="text" placeholder="Torznab URL #${loop.index}" id="torznab_${loop.index}_host" name="torznab_${loop.index}_host" value="${provider['HOST']}" class="form-control">
|
|
<span class="input-group-addon"></span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon"></span>
|
|
<label for="torznab_${loop.index}_api" class="sr-only">Torznab API Key</label>
|
|
<input type="text" placeholder="Torznab API #${loop.index}" id="torznab_${loop.index}_api" name="torznab_${loop.index}_api" value="${provider['API']}" class="form-control">
|
|
<span class="input-group-addon"></span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="torznab_${loop.index}_dlpriority" name="torznab_${loop.index}_dlpriority" value="${provider['DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="torznab_${loop.index}_dltypes" name="torznab_${loop.index}_dltypes" value="${provider['DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="torznab_${loop.index}"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
%endfor
|
|
</fieldset>
|
|
</div>
|
|
<div class="rss_providers">
|
|
<fieldset>
|
|
<div class="col-md-12">
|
|
<legend>RSS/Wishlist Providers</legend>
|
|
</div>
|
|
%for provider in lazylibrarian.RSS_PROV:
|
|
<%
|
|
checked = ''
|
|
if provider['ENABLED'] == True:
|
|
checked = 'checked="checked"'
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Name</span>
|
|
<label for="rss_${loop.index}_host" class="sr-only">RSS Name</label>
|
|
<input type="text" id="rss_${loop.index}_dispname" name="rss_${loop.index}_dispname" value="${provider['DISPNAME']}" class="form-control" placeholder="display name">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="rss_${loop.index}_enabled" name="rss_${loop.index}_enabled" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon"></span>
|
|
<label for="rss_${loop.index}_host" class="sr-only">RSS URL</label>
|
|
<input type="text" placeholder="RSS URL #${loop.index}" id="rss_${loop.index}_host" name="rss_${loop.index}_host" value="${provider['HOST']}" class="form-control" />
|
|
<span class="input-group-addon"></span>
|
|
</div>
|
|
<%
|
|
if '/list/show/' in provider['HOST']:
|
|
label = 'Pages'
|
|
else:
|
|
label = 'Priority'
|
|
%>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">${label}</span>
|
|
<input type="number" id="rss_${loop.index}_dlpriority" name="rss_${loop.index}_dlpriority" value="${provider['DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="rss_${loop.index}_dltypes" name="rss_${loop.index}_dltypes" value="${provider['DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="rss_${loop.index}"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
%endfor
|
|
</fieldset>
|
|
<div class="torrent_providers">
|
|
<fieldset>
|
|
<div class="col-md-12">
|
|
<legend>Torrent Providers</legend>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['KAT'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<label for="kat_host" class="sr-only">KAT Host</label>
|
|
<div class="input-group">
|
|
<input type="text" placeholder="KAT Host" id="kat_host" name="kat_host" value="${lazylibrarian.CONFIG['KAT_HOST']}" class="form-control">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="kat" name="kat" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="kat_dlpriority" name="kat_dlpriority" value="${lazylibrarian.CONFIG['KAT_DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="kat_dltypes" name="kat_dltypes" value="${lazylibrarian.CONFIG['KAT_DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="KAT"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['TPB'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<label for="tpb_host" class="sr-only">TPB Host</label>
|
|
<div class="input-group">
|
|
<input type="text" placeholder="TPB Host" id="tpb_host" name="tpb_host" value="${lazylibrarian.CONFIG['TPB_HOST']}" class="form-control">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="tpb" name="tpb" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="tpb_dlpriority" name="tpb_dlpriority" value="${lazylibrarian.CONFIG['TPB_DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="tpb_dltypes" name="tpb_dltypes" value="${lazylibrarian.CONFIG['TPB_DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="TPB"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['WWT'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<label for="wwt_host" class="sr-only">WWT Host</label>
|
|
<div class="input-group">
|
|
<input type="text" placeholder="WWT Host" id="wwt_host" name="wwt_host" value="${lazylibrarian.CONFIG['WWT_HOST']}" class="form-control">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="wwt" name="wwt" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="wwt_dlpriority" name="wwt_dlpriority" value="${lazylibrarian.CONFIG['WWT_DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="wwt_dltypes" name="wwt_dltypes" value="${lazylibrarian.CONFIG['WWT_DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="WWT"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['ZOO'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<label for="zoo_host" class="sr-only">zooqle host</label>
|
|
<div class="input-group">
|
|
<input type="text" placeholder="zooqle host" id="zoo_host" name="zoo_host" value="${lazylibrarian.CONFIG['ZOO_HOST']}" class="form-control">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="zoo" name="zoo" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="zoo_dlpriority" name="zoo_dlpriority" value="${lazylibrarian.CONFIG['ZOO_DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="zoo_dltypes" name="zoo_dltypes" value="${lazylibrarian.CONFIG['ZOO_DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="ZOO"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['TDL'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<label for="tdl_host" class="sr-only">torrentdownload host</label>
|
|
<div class="input-group">
|
|
<input type="text" placeholder="torrentdownload host" id="tdl_host" name="tdl_host" value="${lazylibrarian.CONFIG['TDL_HOST']}" class="form-control">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="tdl" name="tdl" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="tdl_dlpriority" name="tdl_dlpriority" value="${lazylibrarian.CONFIG['TDL_DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="tdl_dltypes" name="tdl_dltypes" value="${lazylibrarian.CONFIG['TDL_DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="TDL"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['LIME'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<label for="lime_host" class="sr-only">limetorrent host</label>
|
|
<div class="input-group">
|
|
<input type="text" placeholder="limetorrent host" id="lime_host" name="lime_host" value="${lazylibrarian.CONFIG['LIME_HOST']}" class="form-control">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="lime" name="lime" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="lime_dlpriority" name="lime_dlpriority" value="${lazylibrarian.CONFIG['LIME_DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="lime_dltypes" name="lime_dltypes" value="${lazylibrarian.CONFIG['LIME_DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="LIME"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="direct_providers">
|
|
<fieldset>
|
|
<div class="col-md-12">
|
|
<legend>Direct Download Providers</legend>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['GEN'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<label for="gen_host" class="sr-only">libgen host</label>
|
|
<div class="input-group">
|
|
<input type="text" placeholder="libgen host" id="gen_host" name="gen_host" value="${lazylibrarian.CONFIG['GEN_HOST']}" class="form-control">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="gen" name="gen" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<label for="gen_search" class="sr-only">libgen search</label>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Search</span>
|
|
<input type="text" placeholder="libgen search" id="gen_search" name="gen_search" value="${lazylibrarian.CONFIG['GEN_SEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="gen_dlpriority" name="gen_dlpriority" value="${lazylibrarian.CONFIG['GEN_DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="gen_dltypes" name="gen_dltypes" value="${lazylibrarian.CONFIG['GEN_DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="GEN"> Test</button>
|
|
</span>
|
|
</div>
|
|
<span class="help-block">Search Examples: search.php or foreignfiction/index.php</span>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['GEN2'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<div class="col-md-4 form-group">
|
|
<label for="gen2_host" class="sr-only">libgen host</label>
|
|
<div class="input-group">
|
|
<input type="text" placeholder="libgen host" id="gen2_host" name="gen2_host" value="${lazylibrarian.CONFIG['GEN2_HOST']}" class="form-control">
|
|
<span class="input-group-addon">
|
|
<input type="checkbox" id="gen2" name="gen2" value="1" ${checked} />
|
|
</span>
|
|
</div>
|
|
<label for="gen2_search" class="sr-only">libgen search</label>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Search</span>
|
|
<input type="text" placeholder="libgen search" id="gen2_search" name="gen2_search" value="${lazylibrarian.CONFIG['GEN2_SEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Priority</span>
|
|
<input type="number" id="gen2_dlpriority" name="gen2_dlpriority" value="${lazylibrarian.CONFIG['GEN2_DLPRIORITY']}" class="form-control" placeholder="0">
|
|
<span class="input-group-addon">Types</span>
|
|
<input type="text" id="gen2_dltypes" name="gen2_dltypes" value="${lazylibrarian.CONFIG['GEN2_DLTYPES']}" class="form-control" placeholder="">
|
|
<span class="input-group-addon">
|
|
<button role="testprov" class="button btn btn-xs btn-warning btn-primary" type="button" value="GEN2"> Test</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<button class="button btn btn-sm btn-warning btn-primary" type="button" value="showblocked" id="showblocked"> Blocked Providers</button>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane" id="searchprocessing">
|
|
<div class="configtable">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<fieldset>
|
|
<legend>Intervals</legend>
|
|
<div class="form-group">
|
|
<label for="search_bookinterval" class="control-label">Book Search Interval:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="search_bookinterval" name="search_bookinterval" value="${lazylibrarian.CONFIG['SEARCH_BOOKINTERVAL']}" class="form-control" placeholder="0 to disable">
|
|
<span class="input-group-addon">Minutes</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="search_maginterval" class="control-label">Magazine Search Interval:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="search_maginterval" name="search_maginterval" value="${lazylibrarian.CONFIG['SEARCH_MAGINTERVAL']}" class="form-control" placeholder="0 to disable">
|
|
<span class="input-group-addon">Minutes</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="searchrss_interval" class="control-label">RSS Search Interval:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="searchrss_interval" name="searchrss_interval" value="${lazylibrarian.CONFIG['SEARCHRSS_INTERVAL']}" class="form-control" placeholder="0 to disable">
|
|
<span class="input-group-addon">Minutes</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="wishlist_interval" class="control-label">Wishlist Search Interval:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="wishlist_interval" name="wishlist_interval" value="${lazylibrarian.CONFIG['WISHLIST_INTERVAL']}" class="form-control" placeholder="0 to disable">
|
|
<span class="input-group-addon">Hours</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label">Post-Processing Interval:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="scan_interval" name="scan_interval" value="${lazylibrarian.CONFIG['SCAN_INTERVAL']}" class="form-control" placeholder="0 to disable">
|
|
<span class="input-group-addon">Minutes</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="versioncheck_interval" class="control-label">Version Check Interval:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="versioncheck_interval" name="versioncheck_interval" value="${lazylibrarian.CONFIG['VERSIONCHECK_INTERVAL']}" class="form-control" placeholder="0 to disable" >
|
|
<span class="input-group-addon">Hours</span>
|
|
</div>
|
|
<%
|
|
if lazylibrarian.CONFIG['AUTO_UPDATE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="auto_update" class="control-label">
|
|
<input type="checkbox" id="auto_update" name="auto_update" value="1" ${checked} />
|
|
Auto Update when new version found</label>
|
|
<span class="help-block">This will auto update if the task finds a new version. Does not apply to manual version checks</span>
|
|
</div>
|
|
<div class="help-block">Setting a scan interval to zero disables the task</div>
|
|
</fieldset>
|
|
<legend>Status</legend>
|
|
<div class="form-group">
|
|
<label for="notfound_status">Missing Book Status:</label>
|
|
<select id="notfound_status" name="notfound_status" class="form-control">
|
|
%for nf_status in config['status_list']:
|
|
<%
|
|
selected = ''
|
|
if nf_status == lazylibrarian.CONFIG['NOTFOUND_STATUS']:
|
|
selected = 'selected="selected"'
|
|
%>
|
|
<option value="${nf_status}" ${selected}>${nf_status}</option>
|
|
%endfor
|
|
</select>
|
|
<span class="help-block">Status for missing/deleted ebooks</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="newbook_status">New Book Status:</label>
|
|
<select id="newbook_status" name="newbook_status" class="form-control">
|
|
%for nb_status in config['status_list']:
|
|
<%
|
|
selected = ''
|
|
if nb_status == lazylibrarian.CONFIG['NEWBOOK_STATUS']:
|
|
selected = 'selected="selected"'
|
|
%>
|
|
<option value="${nb_status}" ${selected}>${nb_status}</option>
|
|
%endfor
|
|
</select>
|
|
<span class="help-block">Status for new ebooks by existing authors</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="newaudio_status">New AudioBook Status:</label>
|
|
<select id="newaudio_status" name="newaudio_status" class="form-control">
|
|
%for nb_status in config['status_list']:
|
|
<%
|
|
selected = ''
|
|
if nb_status == lazylibrarian.CONFIG['NEWAUDIO_STATUS']:
|
|
selected = 'selected="selected"'
|
|
%>
|
|
<option value="${nb_status}" ${selected}>${nb_status}</option>
|
|
%endfor
|
|
</select>
|
|
<span class="help-block">Status for new audiobooks by existing authors</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="newauthor_status">New Authors eBook Status:</label>
|
|
<select id="newauthor_status" name="newauthor_status" class="form-control">
|
|
%for na_status in config['status_list']:
|
|
<%
|
|
selected = ''
|
|
if na_status == lazylibrarian.CONFIG['NEWAUTHOR_STATUS']:
|
|
selected = 'selected="selected"'
|
|
%>
|
|
<option value="${na_status}" ${selected}>${na_status}</option>
|
|
%endfor
|
|
</select>
|
|
<span class="help-block">Status for ebooks by new authors</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="newauthor_audio">New Authors AudioBook Status:</label>
|
|
<select id="newauthor_audio" name="newauthor_audio" class="form-control">
|
|
%for na_status in config['status_list']:
|
|
<%
|
|
selected = ''
|
|
if na_status == lazylibrarian.CONFIG['NEWAUTHOR_AUDIO']:
|
|
selected = 'selected="selected"'
|
|
%>
|
|
<option value="${na_status}" ${selected}>${na_status}</option>
|
|
%endfor
|
|
</select>
|
|
<span class="help-block">Status for audiobooks by new authors</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="found_status">New Found Status:</label>
|
|
<select id="found_status" name="found_status" class="form-control">
|
|
%for na_status in ['Open', 'Have']:
|
|
<%
|
|
selected = ''
|
|
if na_status == lazylibrarian.CONFIG['FOUND_STATUS']:
|
|
selected = 'selected="selected"'
|
|
%>
|
|
<option value="${na_status}" ${selected}>${na_status}</option>
|
|
%endfor
|
|
</select>
|
|
<span class="help-block">Status for new downloads and items found on scan</span>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['NEWAUTHOR_BOOKS'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="newauthor_books" class="control-label">
|
|
<input type="checkbox" id="newauthor_books" name="newauthor_books" value="1" ${checked} />
|
|
Include other books by new authors</label>
|
|
<span class="help-block">This will include details for other books by new authors found in wishlists or csv files,<br>
|
|
or when manually importing a book by a new author</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="imp_preprocess">PreProcessor program:</label>
|
|
<input type="text" id="imp_preprocess" name="imp_preprocess" value="${lazylibrarian.CONFIG['IMP_PREPROCESS']}" class="form-control">
|
|
<span class="help-block">Path to preprocessor to run before importing books into the library</span>
|
|
<input type="button" value="Test preprocessor" id="testpreprocessor" class="btn btn-default" />
|
|
</div>
|
|
<legend>Calibre</legend>
|
|
<fieldset>
|
|
<div class="form-group">
|
|
<label for="imp_calibredb">Calibredb import program:</label>
|
|
<input type="text" id="imp_calibredb" name="imp_calibredb" value="${lazylibrarian.CONFIG['IMP_CALIBREDB']}" class="form-control" placeholder="calibredb program">
|
|
<span class="help-block">Path to "calibredb" to import books into the library</span>
|
|
<input type="button" value="Test calibredb" id="testCalibredb" class="btn btn-default" />
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['CALIBRE_USE_SERVER'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="calibre_use_server" class="control-label">
|
|
<input type="checkbox" id="calibre_use_server" name="calibre_use_server" value="1" ${checked} />
|
|
Use Calibre Content Server</label>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset id="calibre_options">
|
|
<div class="form-group">
|
|
<label for="calibre_server">Calibre Server:</label>
|
|
<input type="text" id="calibre_server" name="calibre_server" value="${lazylibrarian.CONFIG['CALIBRE_SERVER']}" class="form-control">
|
|
<span class="help-block">eg http://my_calibre_server:9000</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="calibre_user">Calibre Username:</label>
|
|
<input type="text" id="calibre_user" name="calibre_user" value="${lazylibrarian.CONFIG['CALIBRE_USER']}" class="form-control">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="calibre_pass">Calibre Password:</label>
|
|
<input type="password" id="calibre_pass" name="calibre_pass" value="${lazylibrarian.CONFIG['CALIBRE_PASS']}" class="form-control">
|
|
</div>
|
|
</fieldset>
|
|
<fieldset>
|
|
<div class="form-group">
|
|
<label for="imp_autoadd">Calibre Books Auto Add Directory:</label>
|
|
<input type="text" id="imp_autoadd" name="imp_autoadd" value="${lazylibrarian.CONFIG['IMP_AUTOADD']}" class="form-control">
|
|
<span class="help-block">Directory for a copy to be placed for auto add process</span>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_AUTOADD_COPY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_autoadd_copy">
|
|
<input type="checkbox" id="imp_autoadd_copy" name="imp_autoadd_copy" value="1" ${checked} />
|
|
Keep a copy of the book in the local library</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_AUTOADD_BOOKONLY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_autoadd_bookonly">
|
|
<input type="checkbox" id="imp_autoadd_bookonly" name="imp_autoadd_bookonly" value="1" ${checked} />
|
|
Only add eBook, not opf or jpg</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['OPF_TAGS'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="opf_tags">
|
|
<input type="checkbox" id="opf_tags" name="opf_tags" value="1" ${checked} />
|
|
Add tags included with download to Calibre</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['WISHLIST_TAGS'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="wishlist_tags">
|
|
<input type="checkbox" id="wishlits_tags" name="wishlist_tags" value="1" ${checked} />
|
|
Add wishlist name as tag to Calibre</label>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset>
|
|
<div class="form-group">
|
|
<label for="imp_autoadd">Calibre Magazines Auto Add Directory:</label>
|
|
<input type="text" id="imp_autoaddmag" name="imp_autoaddmag" value="${lazylibrarian.CONFIG['IMP_AUTOADDMAG']}" class="form-control">
|
|
<span class="help-block">Directory for a copy to be placed for auto add process</span>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_AUTOADDMAG_COPY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_autoaddmag_copy">
|
|
<input type="checkbox" id="imp_autoaddmag_copy" name="imp_autoaddmag_copy" value="1" ${checked} />
|
|
Keep a copy of the magazine in the local library</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_AUTOADD_MAGONLY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_autoadd_magonly">
|
|
<input type="checkbox" id="imp_autoadd_magonly" name="imp_autoadd_magonly" value="1" ${checked} />
|
|
Only add magazine, not opf or jpg</label>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<fieldset>
|
|
<legend>Name Formatting</legend>
|
|
<span class="help-block">Note: Calibre may override ebook folder and filename patterns</span>
|
|
<div class="form-group">
|
|
<label for="fmt_series">Series Pattern: ($Series variable)</label>
|
|
<input type="text" id="fmt_series" name="fmt_series" value="${lazylibrarian.CONFIG['FMT_SERIES']}" class="form-control" placeholder="eg ($SerName #$SerNum)">
|
|
<span class="help-block">Options: $SerName, $FmtName, $SerNum, $FmtNum, $PadNum, $PubYear, $SerYear, $$, any string.</span>
|
|
<small>Example: <mark>${config['namevars']['Series']}</mark></small>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="fmt_sername">Series Name Pattern: ($FmtName variable)</label>
|
|
<input type="text" id="fmt_sername" name="fmt_sername" value="${lazylibrarian.CONFIG['FMT_SERNAME']}" class="form-control" placeholder="eg $SerName">
|
|
<span class="help-block">Options: $SerName, $PubYear, $SerYear, $$, any string.</span>
|
|
<small>Example: <mark>${config['namevars']['FmtName']}</mark></small>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="fmt_sernum">Series Number Pattern: ($FmtNum variable)</label>
|
|
<input type="text" id="fmt_sernum" name="fmt_sernum" value="${lazylibrarian.CONFIG['FMT_SERNUM']}" class="form-control" placeholder="eg Book #$SerNum">
|
|
<span class="help-block">Options: $SerNum, $PadNum, $PubYear, $SerYear, $$, any string.</span>
|
|
<small>Example: <mark>${config['namevars']['FmtNum']}</mark></small>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="ebook_dest_folder">eBook/AudioBook Foldername Pattern:</label>
|
|
<input type="text" id="ebook_dest_folder" name="ebook_dest_folder" value="${lazylibrarian.CONFIG['EBOOK_DEST_FOLDER']}" class="form-control" placeholder="eBook Destination Folder">
|
|
<span class="help-block">Options: $Author, $Title, $Series, $SerName, $SerNum, $FmtName, $FmtNum, $PadNum, $PubYear, $SerYear, $Abridged, $$, any string.<br/>
|
|
<strong>Current limitation: Each title has to be in unique subfolder</strong></span>
|
|
<small>Example: <mark>${config['namevars']['FolderName']}</mark></small>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="ebook_dest_file">eBook Filename Pattern:</label>
|
|
<input type="text" id="ebook_dest_file" name="ebook_dest_file" value="${lazylibrarian.CONFIG['EBOOK_DEST_FILE']}" class="form-control" placeholder="eBook Destination File">
|
|
<span class="help-block">Options: $Author, $Title, $Series, $SerName, $SerNum, $FmtName, $FmtNum, $PadNum, $PubYear, $SerYear, $Abridged, $$, any string.<br/>
|
|
<strong>Current limitation: Each title has to be in unique subfolder</strong></span>
|
|
<small>Example: <mark>${config['namevars']['BookFile']}</mark></small>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="audiobook_dest_file">AudioBook Filename Pattern:</label>
|
|
<input type="text" id="audiobook_dest_file" name="audiobook_dest_file" value="${lazylibrarian.CONFIG['AUDIOBOOK_DEST_FILE']}" class="form-control" placeholder="audioBook Destination File">
|
|
<span class="help-block">Options: $Author, $Title, $Series, $SerName, $SerNum, $FmtName, $FmtNum, $PadNum, $PubYear, $SerYear, $Abridged, $Part, $Total, $$, any string.<br/>
|
|
<strong>Current limitation: Has to include $Title and $Part</strong></span>
|
|
<small>Example: <mark>${config['namevars']['AudioFile']}</mark></small>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['DESTINATION_COPY'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="destination_copy">
|
|
<input type="checkbox" id="destination_copy" name="destination_copy" value="1" ${checked} />
|
|
Keep original files</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['ONE_FORMAT'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="one_format">
|
|
<input type="checkbox" id="one_format" name="one_format" value="1" ${checked} />
|
|
Only import one format of an ebook if multiple formats downloaded</label>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mag_dest_folder">Magazine Foldername Pattern:</label>
|
|
<input type="text" id="mag_dest_folder" name="mag_dest_folder" value="${lazylibrarian.CONFIG['MAG_DEST_FOLDER']}" class="form-control" placeholder="Magazines Destination Folder">
|
|
<span class="help-block">Absolute path, or inside book folder</span>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['MAG_RELATIVE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="mag_relative" class="control-label">
|
|
<input type="checkbox" id="mag_relative" name="mag_relative" value="1" ${checked} />
|
|
Magazines inside book folder</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['MAG_DELFOLDER'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="mag_delfolder" class="control-label">
|
|
<input type="checkbox" id="mag_delfolder" name="mag_delfolder" value="1" ${checked} />
|
|
Delete folder and magazine details when last issue is removed</label>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mag_dest_file">Magazine Filename Pattern:</label>
|
|
<input type="text" id="mag_dest_file" name="mag_dest_file" value="${lazylibrarian.CONFIG['MAG_DEST_FILE']}" class="form-control" placeholder="Magazine Issue Filename">
|
|
<span class="help-block">Options: $Title, $IssueDate, any string
|
|
<BR><strong>Current limitations: Filename must contain IssueDate
|
|
<BR>If Filename does not contain Title, Foldername is used as Title</strong></span>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<fieldset>
|
|
<legend>Folders</legend>
|
|
<div class="form-group">
|
|
<label for="download_dir" class="control-label">Download Directories:</label>
|
|
<input type="text" id="download_dir" name="download_dir" value="${lazylibrarian.CONFIG['DOWNLOAD_DIR']}" class="form-control" placeholder="Download Directory">
|
|
<span class="help-block">Comma separated list of folders where downloaders place books</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="ebook_dir" class="control-label">eBook Library Folder:</label>
|
|
<input type="text" id="ebook_dir" name="ebook_dir" value="${lazylibrarian.CONFIG['EBOOK_DIR']}" class="form-control" placeholder="eBook Library Folder">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="audio_dir" class="control-label">AudioBook Library Folder:</label>
|
|
<input type="text" id="audio_dir" name="audio_dir" value="${lazylibrarian.CONFIG['AUDIO_DIR']}" class="form-control" placeholder="AudioBook Library Folder">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="alternate_dir" class="control-label">Alternate Import/Export Folder:</label>
|
|
<input type="text" id="alternate_dir" name="alternate_dir" value="${lazylibrarian.CONFIG['ALTERNATE_DIR']}" class="form-control" placeholder="Alternate Directory">
|
|
<span class="help-block">Directory for wishlists and manually importing books<br>
|
|
<strong>If "keep original files" is not set, LazyLibrarian can delete this folder after import</strong></span>
|
|
</div>
|
|
<legend>Miscellaneous</legend>
|
|
<div class="form-group">
|
|
<label for="cache_age" class="control-label">Cache expire after:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="cache_age" name="cache_age" value="${lazylibrarian.CONFIG['CACHE_AGE']}" class="form-control" placeholder="0 to disable">
|
|
<span class="input-group-addon">Days</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mag_age" class="control-label">Max Magazine Issue Age:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="mag_age" name="mag_age" value="${lazylibrarian.CONFIG['MAG_AGE']}" class="form-control" placeholder="0 to disable">
|
|
<span class="input-group-addon">Days</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="task_age" class="control-label">Remove failed tasks after:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="task_age" name="task_age" value="${lazylibrarian.CONFIG['TASK_AGE']}" class="form-control" placeholder="0 to disable">
|
|
<span class="input-group-addon">Hours</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="match_ratio">Search Match Ratio:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="match_ratio" name="match_ratio" value="${lazylibrarian.CONFIG['MATCH_RATIO']}" class="form-control" placeholder="Search Match Ratio (percent)">
|
|
<span class="input-group-addon">%</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="dload_ratio">Download Match Ratio:</label>
|
|
<div class="input-group">
|
|
<input type="number" id="dload_ratio" name="dload_ratio" value="${lazylibrarian.CONFIG['DLOAD_RATIO']}" class="form-control" placeholder="Download Match Ratio (percent)">
|
|
<span class="input-group-addon">%</span>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="max_pages">Maximum Search Pages:</label>
|
|
<input type="number" id="max_pages" name="max_pages" value="${lazylibrarian.CONFIG['MAX_PAGES']}" class="form-control" placeholder="0 for no limit">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="max_bookpages">Maximum Author Pages:</label>
|
|
<input type="number" id="max_bookpages" name="max_bookpages" value="${lazylibrarian.CONFIG['MAX_BOOKPAGES']}" class="form-control" placeholder="0 for no limit">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="dload_ratio">Maximum Coverwall Images:</label>
|
|
<input type="number" id="max_wall" name="max_wall" value="${lazylibrarian.CONFIG['MAX_WALL']}" class="form-control" placeholder="0 for no limit">
|
|
</div>
|
|
</fieldset>
|
|
<fieldset>
|
|
<div class="form-group">
|
|
<label for="git_program">git program:</label>
|
|
<input type="text" placeholder="git program" id="git_program" name="git_program" value="${lazylibrarian.CONFIG['GIT_PROGRAM']}" class="form-control">
|
|
<span class="help-block">Git program unless already in your path. Usually leave this blank</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="imp_convert">Cover creation program:</label>
|
|
<input type="text" placeholder="Cover creation program" id="imp_convert" name="imp_convert" value="${lazylibrarian.CONFIG['IMP_CONVERT']}" class="form-control">
|
|
<span class="help-block">Program for creating magazine covers (see wiki for details) Leave blank to use a local copy of ghostscript, or PythonMagick or Wand interfaces to ImageMagick</span>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_MAGCOVER'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_magcover" class="control-label">
|
|
<input type="checkbox" id="imp_magcover" name="imp_magcover" value="1" ${checked} />
|
|
Create cover files for magazines</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_MAGOPF'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_magopf" class="control-label">
|
|
<input type="checkbox" id="imp_magopf" name="imp_magopf" value="1" ${checked} />
|
|
Create opf files for magazines</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['FULL_SCAN'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="full_scan" class="control-label">
|
|
<input type="checkbox" id="full_scan" name="full_scan" value="1" ${checked} />
|
|
Full scan</label>
|
|
<span class="help-block">This will remove database entries for ebooks not found in the download location</span>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_SINGLEBOOK'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_singlebook" class="control-label">
|
|
<input type="checkbox" id="imp_singlebook" name="imp_singlebook" value="1" ${checked} />
|
|
Import one book per directory</label>
|
|
<span class="help-block">Tick this if you keep multiple formats of the same book in the same directory</span>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_RENAME'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_rename" class="control-label">
|
|
<input type="checkbox" id="imp_rename" name="imp_rename" value="1" ${checked} />
|
|
Rename existing books on libraryscan</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['MAG_RENAME'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="mag_rename" class="control-label">
|
|
<input type="checkbox" id="mag_rename" name="mag_rename" value="1" ${checked} />
|
|
Rename existing magazines on libraryscan</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['ADD_AUTHOR'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="add_author" class="control-label">
|
|
<input type="checkbox" id="add_author" name="add_author" value="1" ${checked} />
|
|
Add New Authors</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['ADD_SERIES'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="add_series" class="control-label">
|
|
<input type="checkbox" id="add_series" name="add_series" value="1" ${checked} />
|
|
Add Series Info</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['IMP_AUTOSEARCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="imp_autosearch" class="control-label">
|
|
<input type="checkbox" id="imp_autosearch" name="imp_autosearch" value="1" ${checked} />
|
|
Search when added</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['MAG_SINGLE'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="mag_single" class="control-label">
|
|
<input type="checkbox" id="mag_single" name="mag_single" value="1" ${checked} />
|
|
Quick open single issues of magazines</label>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane" id="notifications">
|
|
<div class="configtable">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_TWITTER'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_twitter">
|
|
<input type="checkbox" id="use_twitter" name="use_twitter" value="1" ${checked} />
|
|
Enable Twitter Notifications</label>
|
|
</div>
|
|
<div id="twitteroptions">
|
|
<fieldset>
|
|
<legend>Twitter</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['TWITTER_NOTIFY_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="twitter_notify_onsnatch" class="control-label">
|
|
<input type="checkbox" id="twitter_notify_onsnatch" name="twitter_notify_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['TWITTER_NOTIFY_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="twitter_notify_ondownload">
|
|
<input type="checkbox" id="twitter_notify_ondownload" name="twitter_notify_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Request Authorization" id="twitterStep1" class="btn btn-default" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="twitter_key" class="control-label">Twitter Key</label>
|
|
<input type="text" id="twitter_key" name="twitter_key" value="" placeholder="Twitter Authorization Key" class="form-control" />
|
|
<span class="help-block">Enter the key from the twitter authorization page here, DO NOT press Enter or save the config. The key is single-use and will not be saved. Press [Verify Key] to complete authorization.</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Verify Key" id="twitterStep2" class="btn btn-default" />
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Twitter" id="testTwitter" class="btn btn-default" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_BOXCAR'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_boxcar" class="control-label">
|
|
<input type="checkbox" id="use_boxcar" name="use_boxcar" value="1" ${checked} />
|
|
Enable boxcar Notifications</label>
|
|
</div>
|
|
<div id="boxcaroptions">
|
|
<fieldset>
|
|
<legend>Boxcar2</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['BOXCAR_NOTIFY_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="boxcar_notify_onsnatch" class="control-label">
|
|
<input type="checkbox" id="boxcar_notify_onsnatch" name="boxcar_notify_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['BOXCAR_NOTIFY_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="boxcar_notify_ondownload">
|
|
<input type="checkbox" id="boxcar_notify_ondownload" name="boxcar_notify_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="boxcar_token" class="control-label">Boxcar Token</label>
|
|
<input type="text" id="boxcar_token" name="boxcar_token" value="${lazylibrarian.CONFIG['BOXCAR_TOKEN']}" placeholder="Boxcar token" class="form-control">
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Boxcar" id="testBoxcar" class="btn btn-default">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_PUSHBULLET'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_pushbullet" class="control-label">
|
|
<input type="checkbox" id="use_pushbullet" name="use_pushbullet" value="1" ${checked} />
|
|
Enable Pushbullet Notifications</label>
|
|
</div>
|
|
<div id="pushbulletoptions">
|
|
<fieldset>
|
|
<legend>Pushbullet</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['PUSHBULLET_NOTIFY_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="pushbullet_notify_onsnatch">
|
|
<input type="checkbox" id="pushbullet_notify_onsnatch" name="pushbullet_notify_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['PUSHBULLET_NOTIFY_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="pushbullet_notify_ondownload">
|
|
<input type="checkbox" id="pushbullet_notify_ondownload" name="pushbullet_notify_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="pushbullet_token">Pushbullet API</label>
|
|
<input type="text" id="pushbullet_token" name="pushbullet_token" value="${lazylibrarian.CONFIG['PUSHBULLET_TOKEN']}" class="form-control" placeholder="Pushbullet API">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="pushbullet_deviceid" class="control-label">Device ID</label>
|
|
<input type="text" id="pushbullet_deviceid" name="pushbullet_deviceid" value="${lazylibrarian.CONFIG['PUSHBULLET_DEVICEID']}" class="form-control" placeholder="Pushbullet DeviceID">
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Pushbullet" id="testPushbullet" class="btn btn-default">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_PUSHOVER'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_pushover" class="control-label">
|
|
<input type="checkbox" id="use_pushover" name="use_pushover" value="1" ${checked} />
|
|
Enable Pushover Notifications</label>
|
|
</div>
|
|
<div id="pushoveroptions">
|
|
<fieldset>
|
|
<legend>Pushover</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['PUSHOVER_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="pushover_onsnatch">
|
|
<input type="checkbox" id="pushover_onsnatch" name="pushover_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['PUSHOVER_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="pushover_ondownload" class="control-label">
|
|
<input type="checkbox" id="pushover_ondownload" name="pushover_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="pushover_apitoken">Pushover API</label>
|
|
<input type="text" id="pushover_apitoken" name="pushover_apitoken" value="${lazylibrarian.CONFIG['PUSHOVER_APITOKEN']}" class="form-control" placeholder="Pushover API Token">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="pushover_keys" class="control-label">Pushover Keys</label>
|
|
<input type="text" id="pushover_keys" name="pushover_keys" value="${lazylibrarian.CONFIG['PUSHOVER_KEYS']}" class="form-control" placeholder="Pushover Keys">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="pushover_device" class="control-label">Pushover Device</label>
|
|
<input type="text" id="pushover_device" name="pushover_device" value="${lazylibrarian.CONFIG['PUSHOVER_DEVICE']}" class="form-control" placeholder="Pushover Device">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="pushover_priority" class="control-label">Pushover Priority</label>
|
|
<input type="text" id="pushover_priority" name="pushover_priority" value="${lazylibrarian.CONFIG['PUSHOVER_PRIORITY']}" class="form-control" placeholder="Pushover Priority">
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Pushover" id="testPushover" class="btn btn-default">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_ANDROIDPN'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_androidpn" class="control-label">
|
|
<input type="checkbox" id="use_androidpn" name="use_androidpn" value="1" ${checked} />
|
|
Enable AndroidPN Notifications</label>
|
|
</div>
|
|
<div id="androidpnoptions">
|
|
<fieldset>
|
|
<legend>AndroidPN</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['ANDROIDPN_NOTIFY_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="androidpn_notify_onsnatch" class="control-label">
|
|
<input type="checkbox" id="androidpn_notify_onsnatch" name="androidpn_notify_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['ANDROIDPN_NOTIFY_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="androidpn_notify_ondownload" class="control-label">
|
|
<input type="checkbox" id="androidpn_notify_ondownload" name="androidpn_notify_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['ANDROIDPN_BROADCAST'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="androidpn_broadcast" class="control-label">
|
|
<input type="checkbox" id="androidpn_broadcast" name="androidpn_broadcast" value="1" ${checked} />
|
|
Broadcast notification</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="androidpn_url" class="control-label">AndroidPN Notification URL</label>
|
|
<input type="text" id="androidpn_url" name="androidpn_url" value="${lazylibrarian.CONFIG['ANDROIDPN_URL']}" class="form-control" placeholder="AndroidPN Notification URL" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="androidpn_username" class="control-label">Username</label>
|
|
<input type="text" id="androidpn_username" name="androidpn_username" value="${lazylibrarian.CONFIG['ANDROIDPN_USERNAME']}" class="form-control" placeholder="AndroidPN Username" />
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test AndroidPN" id="testAndroidPN" class="btn btn-default" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_PROWL'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_prowl" class="control-label">
|
|
<input type="checkbox" name="use_prowl" id="use_prowl" value="1" ${checked} />
|
|
Enable Prowl</label>
|
|
</div>
|
|
<div id="prowloptions">
|
|
<fieldset>
|
|
<legend>Prowl</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['PROWL_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="prowl_onsnatch" class="control-label">
|
|
<input type="checkbox" id="prowl_onsnatch" name="prowl_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['PROWL_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="prowl_ondownload" class="control-label">
|
|
<input type="checkbox" id="prowl_ondownload" name="prowl_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="prowl_apikey" class="control-label">Prowl API Key</label>
|
|
<input type="text" id="prowl_apikey" name="prowl_apikey" value="${lazylibrarian.CONFIG['PROWL_APIKEY']}" class="form-control" placeholder="Prowl API Key">
|
|
<span class="help-block">Separate multiple api keys with commas</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="prowl_priority" class="control-label">Priority</label>
|
|
<select id="prowl_priority" name="prowl_priority" class="form-control">
|
|
%for x in [-2,-1,0,1,2]:
|
|
<%
|
|
if lazylibrarian.CONFIG['PROWL_PRIORITY'] == x:
|
|
prowl_priority_selected = 'selected'
|
|
else:
|
|
prowl_priority_selected = ''
|
|
|
|
if x == -2:
|
|
prowl_priority_value = 'Very Low'
|
|
elif x == -1:
|
|
prowl_priority_value = 'Moderate'
|
|
elif x == 0:
|
|
prowl_priority_value = 'Normal'
|
|
elif x == 1:
|
|
prowl_priority_value = 'High'
|
|
else:
|
|
prowl_priority_value = 'Emergency'
|
|
%>
|
|
<option value="${x}" ${prowl_priority_selected}>${prowl_priority_value}</option>
|
|
%endfor
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Prowl" id="testProwl" class="btn btn-default" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_GROWL'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_growl" class="control-label">
|
|
<input type="checkbox" name="use_growl" id="use_growl" value="1" ${checked} />
|
|
Enable Growl</label>
|
|
</div>
|
|
<div id="growloptions">
|
|
<fieldset>
|
|
<legend>Growl</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['GROWL_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="growl_onsnatch" class="control-label">
|
|
<input type="checkbox" id="growl_onsnatch" name="growl_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['GROWL_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="growl_ondownload" class="control-label">
|
|
<input type="checkbox" id="growl_ondownload" name="growl_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Host</span>
|
|
<input type="text" id="growl_host" name="growl_host" value="${lazylibrarian.CONFIG['GROWL_HOST']}" class="form-control" placeholder="eg localhost:23053">
|
|
<span class="input-group-addon">Password</span>
|
|
<input type="number" id="growl_password" name="growl_password" value="${lazylibrarian.CONFIG['GROWL_PASSWORD']}" class="form-control" placeholder="none">
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Growl" id="testGrowl" class="btn btn-default" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_TELEGRAM'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_telegram" class="control-label">
|
|
<input type="checkbox" name="use_telegram" id="use_telegram" value="1" ${checked} />
|
|
Enable Telegram</label>
|
|
</div>
|
|
<div id="telegramoptions">
|
|
<fieldset>
|
|
<legend>Telegram</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['TELEGRAM_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="telegram_onsnatch" class="control-label">
|
|
<input type="checkbox" id="telegram_onsnatch" name="telegram_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['TELEGRAM_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="telegram_ondownload" class="control-label">
|
|
<input type="checkbox" id="telegram_ondownload" name="telegram_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="telegram_token" class="control-label">Telegram Token</label>
|
|
<input type="text" id="telegram_token" name="telegram_token" value="${lazylibrarian.CONFIG['TELEGRAM_TOKEN']}" class="form-control" placeholder="Telegram Token"><small>Contact <a href="http://telegram.me/BotFather">@BotFather</a> to create a bot and get its token
|
|
<br>After creating the bot, send it a message from telegram to activate it</small>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="telegram_userid" class="control-label">Telegram UserID</label>
|
|
<input type="text" id="telegram_userid" name="telegram_userid" value="${lazylibrarian.CONFIG['TELEGRAM_USERID']}" class="form-control" placeholder="Telegram UserID"><small>Contact <a href="http://telegram.me/myidbot">@myidbot</a> to get your user ID</small>
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Telegram" id="testTelegram" class="btn btn-default" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_NMA'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_nma" class="control-label">
|
|
<input type="checkbox" name="use_nma" id="use_nma" value="1" ${checked} />
|
|
Enable NotifyMyAndroid</label>
|
|
</div>
|
|
<div id="nmaoptions">
|
|
<fieldset>
|
|
<legend>NotifyMyAndroid</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['NMA_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="nma_onsnatch" class="control-label">
|
|
<input type="checkbox" id="nma_onsnatch" name="nma_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['NMA_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="nma_ondownload" class="control-label">
|
|
<input type="checkbox" id="nma_ondownload" name="nma_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="nma_apikey" class="control-label">NotifyMyAndroid API Key</label>
|
|
<input type="text" id="nma_apikey" name="nma_apikey" value="${lazylibrarian.CONFIG['NMA_APIKEY']}" class="form-control" placeholder="NotifyMyAndroid API Key">
|
|
<span class="help-block">Separate multiple api keys with commas</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="nma_priority" class="control-label">Priority</label>
|
|
<select id="nma_priority" name="nma_priority" class="form-control">
|
|
%for x in [-2,-1,0,1,2]:
|
|
<%
|
|
if lazylibrarian.CONFIG['NMA_PRIORITY'] == x:
|
|
nma_priority_selected = 'selected'
|
|
else:
|
|
nma_priority_selected = ''
|
|
|
|
if x == -2:
|
|
nma_priority_value = 'Very Low'
|
|
elif x == -1:
|
|
nma_priority_value = 'Moderate'
|
|
elif x == 0:
|
|
nma_priority_value = 'Normal'
|
|
elif x == 1:
|
|
nma_priority_value = 'High'
|
|
else:
|
|
nma_priority_value = 'Emergency'
|
|
%>
|
|
<option value="${x}" ${nma_priority_selected}>${nma_priority_value}</option>
|
|
%endfor
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test NMA" id="testNMA" class="btn btn-default" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_SLACK'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_slack" class="control-label">
|
|
<input type="checkbox" id="use_slack" name="use_slack" value="1" ${checked} />
|
|
Enable Slack Notifications</label>
|
|
</div>
|
|
<div id="slackoptions">
|
|
<fieldset>
|
|
<legend>Slack</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['SLACK_NOTIFY_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="slack_notify_onsnatch">
|
|
<input type="checkbox" id="slack_notify_onsnatch" name="slack_notify_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['SLACK_NOTIFY_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="slack_notify_ondownload">
|
|
<input type="checkbox" id="slack_notify_ondownload" name="slack_notify_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="slack_url">Slack Webhook URL (usually https://hooks.slack.com/services/)</label>
|
|
<input type="text" id="slack_url" name="slack_url" value="${lazylibrarian.CONFIG['SLACK_URL']}" class="form-control" placeholder="Slack Webhook URL">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="slack_token">Slack Webhook Token (everything after https://hooks.slack.com/services/)</label>
|
|
<input type="text" id="slack_token" name="slack_token" value="${lazylibrarian.CONFIG['SLACK_TOKEN']}" class="form-control" placeholder="Slack Webhook Token">
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Slack" id="testSlack" class="btn btn-default">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_EMAIL'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_email" class="control-label">
|
|
<input type="checkbox" id="use_email" name="use_email" value="1" ${checked} />
|
|
Enable Email Notifications</label>
|
|
</div>
|
|
<div id="emailoptions">
|
|
<fieldset>
|
|
<legend>Email</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['EMAIL_NOTIFY_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="email_notify_onsnatch">
|
|
<input type="checkbox" id="email_notify_onsnatch" name="email_notify_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['EMAIL_NOTIFY_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="email_notify_ondownload">
|
|
<input type="checkbox" id="email_notify_ondownload" name="email_notify_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['EMAIL_SENDFILE_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="email_sendfile_ondownload">
|
|
<input type="checkbox" id="email_sendfile_ondownload" name="email_sendfile_ondownload" value="1" ${checked} />
|
|
Attach book on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="row form-group">
|
|
<div class="col-md-6">
|
|
<label for="email_from">Email From</label>
|
|
<input type="text" id="email_from" name="email_from" value="${lazylibrarian.CONFIG['EMAIL_FROM']}" class="form-control" placeholder="Email From Address">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="email_to">Email To</label>
|
|
<input type="text" id="email_to" name="email_to" value="${lazylibrarian.CONFIG['EMAIL_TO']}" class="form-control" placeholder="Email To Address">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group">
|
|
<div class="col-md-6">
|
|
<label for="email_smtp_server">SMTP Server</label>
|
|
<input type="text" id="email_smtp_server" name="email_smtp_server" value="${lazylibrarian.CONFIG['EMAIL_SMTP_SERVER']}" class="form-control" placeholder="SMTP Server">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="email_smtp_port">SMTP Port</label>
|
|
<input type="number" id="email_smtp_port" name="email_smtp_port" value="${lazylibrarian.CONFIG['EMAIL_SMTP_PORT']}" class="form-control" placeholder="SMTP Port">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group">
|
|
<div class="col-md-6">
|
|
<label for="email_smtp_user">SMTP User</label>
|
|
<input type="text" id="email_smtp_user" name="email_smtp_user" value="${lazylibrarian.CONFIG['EMAIL_SMTP_USER']}" class="form-control" placeholder="SMTP User">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="email_smtp_password">SMTP Password</label>
|
|
<input type="password" id="email_smtp_password" name="email_smtp_password" value="${lazylibrarian.CONFIG['EMAIL_SMTP_PASSWORD']}" class="form-control" placeholder="SMTP Password">
|
|
</div>
|
|
</div>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['EMAIL_SSL'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="email_ssl">
|
|
<input type="checkbox" id="email_ssl" name="email_ssl" value="1" ${checked} />
|
|
SSL</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['EMAIL_TLS'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="email_tls">
|
|
<input type="checkbox" id="email_tls" name="email_tls" value="1" ${checked} />
|
|
TLS</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Email" id="testEmail" class="btn btn-default">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="checkbox">
|
|
<%
|
|
if lazylibrarian.CONFIG['USE_CUSTOM'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="use_custom" class="control-label">
|
|
<input type="checkbox" id="use_custom" name="use_custom" value="1" ${checked} />
|
|
Enable Custom Notifications</label>
|
|
</div>
|
|
<div id="customoptions">
|
|
<fieldset>
|
|
<legend>Custom</legend>
|
|
<div class="row checkbox">
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['CUSTOM_NOTIFY_ONSNATCH'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="custom_notify_onsnatch">
|
|
<input type="checkbox" id="custom_notify_onsnatch" name="custom_notify_onsnatch" value="1" ${checked} />
|
|
Notify on snatch</label>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<%
|
|
if lazylibrarian.CONFIG['CUSTOM_NOTIFY_ONDOWNLOAD'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="custom_notify_ondownload">
|
|
<input type="checkbox" id="custom_notify_ondownload" name="custom_notify_ondownload" value="1" ${checked} />
|
|
Notify on download</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="custom_script">Custom script to run</label>
|
|
<input type="text" id="custom_script" name="custom_script" value="${lazylibrarian.CONFIG['CUSTOM_SCRIPT']}" class="form-control" placeholder="Custom Script">
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="button" value="Test Custom" id="testCustom" class="btn btn-default">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane" id="capabilities">
|
|
<div class="configtable">
|
|
<div>
|
|
You only need to alter category settings if auto-detection fails or returns incorrect values. If you make any alterations, tick the lock button to prevent reloading values from the provider. API limit is not read from the provider and is not affected by lock.
|
|
</div>
|
|
<div class="row">
|
|
%for provider in lazylibrarian.NEWZNAB_PROV:
|
|
<%
|
|
if provider['HOST'] == "":
|
|
hidden = 'hidden="hidden"'
|
|
else:
|
|
hidden = ''
|
|
%>
|
|
<%
|
|
if 'APILIMIT' in provider:
|
|
apilimit = provider['APILIMIT']
|
|
else:
|
|
apilimit = 0
|
|
%>
|
|
<div class="col-md-6">
|
|
<legend ${hidden}>${provider['DISPNAME']}</legend>
|
|
<input type="text" id="newznab_${loop.index}_name" name="newznab_${loop.index}_name" value="${provider['NAME']}" class="hidden">
|
|
<input type="text" id="newznab_${loop.index}_updated" name="newznab_${loop.index}_updated" value="${provider['UPDATED']}" class="hidden">
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_generalsearch" class="control-label">General Search:</label>
|
|
<input type="text" placeholder="General Search" id="newznab_${loop.index}_generalsearch" name="newznab_${loop.index}_generalsearch" value="${provider['GENERALSEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_extended" class="control-label">Extended Search:</label>
|
|
<input type="text" placeholder="Extended Search" id="newznab_${loop.index}_extended" name="newznab_${loop.index}_extended" value="${provider['EXTENDED']}" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_booksearch" class="control-label">Book Search:</label>
|
|
<input type="text" placeholder="none" id="newznab_${loop.index}_booksearch" name="newznab_${loop.index}_booksearch" value="${provider['BOOKSEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_bookcat" class="control-label">Book Categories:</label>
|
|
<input type="text" id="newznab_${loop.index}_bookcat" name="newznab_${loop.index}_bookcat" value="${provider['BOOKCAT']}" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_magsearch" class="control-label">Magazine Search:</label>
|
|
<input type="text" placeholder="none" id="newznab_${loop.index}_magsearch" name="newznab_${loop.index}_magsearch" value="${provider['MAGSEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_magcat" class="control-label">Magazine Categories:</label>
|
|
<input type="text" id="newznab_${loop.index}_magcat" name="newznab_${loop.index}_magcat" value="${provider['MAGCAT']}" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_audiosearch" class="control-label">AudioBook Search:</label>
|
|
<input type="text" placeholder="none" id="newznab_${loop.index}_audiosearch" name="newznab_${loop.index}_audiosearch" value="${provider['AUDIOSEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_audiocat" class="control-label">AudioBook Categories:</label>
|
|
<input type="text" id="newznab_${loop.index}_audiocat" name="newznab_${loop.index}_audiocat" value="${provider['AUDIOCAT']}" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="newznab_${loop.index}_apilimit" class="control-label">Daily API Limit: (used ${provider['APICOUNT']})</label>
|
|
<input type="number" placeholder="API Limit" id="newznab_${loop.index}_apilimit" name="newznab_${loop.index}_apilimit" value="${provider['APILIMIT']}" class="form-control">
|
|
</div>
|
|
<div class="checkbox col-md-6">
|
|
<%
|
|
if provider['MANUAL'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="newznab_${loop.index}_manual" class="control-label" ${hidden}>
|
|
<input type="checkbox" id="newznab_${loop.index}_manual" name="newznab_${loop.index}_manual" value="1" ${checked} ${hidden}/>
|
|
Tick to lock settings</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
%endfor
|
|
</div>
|
|
<div class="row">
|
|
%for provider in lazylibrarian.TORZNAB_PROV:
|
|
<%
|
|
if provider['HOST'] == "":
|
|
hidden = 'hidden="hidden"'
|
|
else:
|
|
hidden = ''
|
|
%>
|
|
<div class="col-md-6">
|
|
<legend ${hidden}>${provider['DISPNAME']}</legend>
|
|
<input type="text" id="torznab_${loop.index}_name" name="torznab_${loop.index}_name" value="${provider['NAME']}" class="hidden">
|
|
<input type="text" id="torznab_${loop.index}_updated" name="torznab_${loop.index}_updated" value="${provider['UPDATED']}" class="hidden">
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_generalsearch" class="control-label">General Search:</label>
|
|
<input type="text" placeholder="General Search" id="torznab_${loop.index}_generalsearch" name="torznab_${loop.index}_generalsearch" value="${provider['GENERALSEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_extended" class="control-label">Extended Search:</label>
|
|
<input type="text" placeholder="Extended Search" id="torznab_${loop.index}_extended" name="torznab_${loop.index}_extended" value="${provider['EXTENDED']}" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_booksearch" class="control-label">Book Search:</label>
|
|
<input type="text" placeholder="none" id="torznab_${loop.index}_booksearch" name="torznab_${loop.index}_booksearch" value="${provider['BOOKSEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_bookcat" class="control-label">Book Categories:</label>
|
|
<input type="text" id="torznab_${loop.index}_bookcat" name="torznab_${loop.index}_bookcat" value="${provider['BOOKCAT']}" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_magsearch" class="control-label">Magazine Search:</label>
|
|
<input type="text" placeholder="none" id="torznab_${loop.index}_magsearch" name="torznab_${loop.index}_magsearch" value="${provider['MAGSEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_magcat" class="control-label">Magazine Categories:</label>
|
|
<input type="text" id="torznab_${loop.index}_magcat" name="torznab_${loop.index}_magcat" value="${provider['MAGCAT']}" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_audiosearch" class="control-label">AudioBook Search:</label>
|
|
<input type="text" placeholder="none" id="torznab_${loop.index}_audiosearch" name="torznab_${loop.index}_audiosearch" value="${provider['AUDIOSEARCH']}" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_audiocat" class="control-label">AudioBook Categories:</label>
|
|
<input type="text" id="torznab_${loop.index}_audiocat" name="torznab_${loop.index}_audiocat" value="${provider['AUDIOCAT']}" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="row form-group" ${hidden}>
|
|
<div class="col-md-6">
|
|
<label for="torznab_${loop.index}_apilimit" class="control-label">Daily API Limit: (used ${provider['APICOUNT']})</label>
|
|
<input type="number" placeholder="API Limit" id="torznab_${loop.index}_apilimit" name="torznab_${loop.index}_apilimit" value="${provider['APILIMIT']}" class="form-control">
|
|
</div>
|
|
<div class="checkbox col-md-6">
|
|
<%
|
|
if provider['MANUAL'] == True:
|
|
checked = 'checked="checked"'
|
|
else:
|
|
checked = ''
|
|
%>
|
|
<label for="torznab_${loop.index}_manual" class="control-label" ${hidden}>
|
|
<input type="checkbox" id="torznab_${loop.index}_manual" name="torznab_${loop.index}_manual" value="1" ${checked} ${hidden}/>
|
|
Tick to lock settings</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
%endfor
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane" id="filters">
|
|
<div class="configtable">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<legend>Book Reject List</legend>
|
|
<div class="form-group">
|
|
<input type="text" id="reject_words" name="reject_words" value="${lazylibrarian.CONFIG['REJECT_WORDS']}" class="form-control" placeholder="Reject word list">
|
|
<span class="help-block">Comma separated list of words to reject:<br/>
|
|
Search results with any of these words in the title or filenames<br>
|
|
(where available) will be ignored<br/>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<legend>AudioBook Reject List</legend>
|
|
<div class="form-group">
|
|
<input type="text" id="reject_audio" name="reject_audio" value="${lazylibrarian.CONFIG['REJECT_AUDIO']}" class="form-control" placeholder="Reject word list">
|
|
<span class="help-block">Comma separated list of words to reject:<br/>
|
|
Search results with any of these words in the title or filenames<br>
|
|
(where available) will be ignored<br/>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<legend>Magazine Reject List (all titles)</legend>
|
|
<div class="form-group">
|
|
<input type="text" id="reject_mags" name="reject_mags" value="${lazylibrarian.CONFIG['REJECT_MAGS']}" class="form-control" placeholder="Reject word list">
|
|
<span class="help-block">Comma separated list of words to reject:<br/>
|
|
Search results with any of these words in the title or filenames<br>
|
|
(where available) will be ignored<br/>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<legend>Extension Reject List (all types)</legend>
|
|
<div class="form-group">
|
|
<input type="text" id="banned_ext" name="banned_ext" value="${lazylibrarian.CONFIG['BANNED_EXT']}" class="form-control" placeholder="Reject extensions list">
|
|
<span class="help-block">Comma separated list of extensions to reject:<br/>
|
|
Results with any of these extensions in the filenames will be rejected<br/>
|
|
(where info is available)<br/>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<legend>eBook Size Limits</legend>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Max size</span>
|
|
<input type="number" id="reject_maxsize" name="reject_maxsize" value="${lazylibrarian.CONFIG['REJECT_MAXSIZE']}" class="form-control" placeholder="Reject maximum size">
|
|
<span class="input-group-addon">Min size</span>
|
|
<input type="number" id="reject_minsize" name="reject_minsize" value="${lazylibrarian.CONFIG['REJECT_MINSIZE']}" class="form-control" placeholder="Reject minimum size">
|
|
<span class="input-group-addon">Mb</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<legend>AudioBook Size Limits</legend>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Max size</span>
|
|
<input type="number" id="reject_maxaudio" name="reject_maxaudio" value="${lazylibrarian.CONFIG['REJECT_MAXAUDIO']}" class="form-control" placeholder="Reject maximum size">
|
|
<span class="input-group-addon">Min size</span>
|
|
<input type="number" id="reject_minaudio" name="reject_minaudio" value="${lazylibrarian.CONFIG['REJECT_MINAUDIO']}" class="form-control" placeholder="Reject minimum size">
|
|
<span class="input-group-addon">Mb</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<br>
|
|
<legend>Magazine Size Limits</legend>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Max size</span>
|
|
<input type="number" id="reject_magsize" name="reject_magsize" value="${lazylibrarian.CONFIG['REJECT_MAGSIZE']}" class="form-control" placeholder="Reject maximum size">
|
|
<span class="input-group-addon">Min size</span>
|
|
<input type="number" id="reject_magmin" name="reject_magmin" value="${lazylibrarian.CONFIG['REJECT_MAGMIN']}" class="form-control" placeholder="Reject minimum size">
|
|
<span class="input-group-addon">Mb</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-12">
|
|
<br>
|
|
<legend>Magazine Options (per title)</legend>
|
|
</div>
|
|
%for mag in config['magazines_list']:
|
|
<div class="col-md-6">
|
|
<label>${mag['Title']}</label>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Reject </span>
|
|
<input type="text" id="reject_list[${mag['Title']}]" name="reject_list[${mag['Title']}]" value="${mag['Reject']}" class="form-control" placeholder="Reject word list">
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Search</span>
|
|
<input type="text" id="regex[${mag['Title']}]" name="regex[${mag['Title']}]" value="${mag['Regex']}" class="form-control" placeholder="Search expression">
|
|
</div>
|
|
<div class="input-group">
|
|
<span class="input-group-addon">Date Style</span>
|
|
<input type="text" id="datetype[${mag['Title']}]" name="datetype[${mag['Title']}]" value="${mag['DateType']}" class="form-control" placeholder="auto">
|
|
<span class="input-group-addon">Cover Page</span>
|
|
<input type="number" id="coverpage[${mag['Title']}]" name="coverpage[${mag['Title']}]" value="${mag['CoverPage']}" class="form-control" placeholder="1">
|
|
</div>
|
|
</div>
|
|
%endfor
|
|
<div class="col-md-6">
|
|
<label>Settings:</label><br>
|
|
<input type="button" value="Export Filters" id="savefilters" class="btn btn-default" />
|
|
<input type="button" value="Import Filters" id="loadfilters" class="btn btn-default" />
|
|
</div>
|
|
</div>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- tabs content -->
|
|
</div>
|
|
<!-- tabs -->
|
|
<p> </p>
|
|
<p style="text-align:center;color:grey">Repo: https://${lazylibrarian.CONFIG['GIT_HOST']}/${lazylibrarian.CONFIG['GIT_USER']}/${lazylibrarian.CONFIG['GIT_REPO']} : Branch: ${lazylibrarian.CONFIG['GIT_BRANCH']} : Updated: ${config['updated']}<br>
|
|
Current Version: ${lazylibrarian.CONFIG['CURRENT_VERSION']} : Latest Version: ${lazylibrarian.CONFIG['LATEST_VERSION']}</p>
|
|
</div>
|
|
<!-- form -->
|
|
</form>
|
|
</%def>
|
|
<%def name="javascriptIncludes()">
|
|
<script type="text/javascript">
|
|
function initThisPage()
|
|
|
|
{
|
|
"use strict";
|
|
|
|
if ($("#calibre_use_server").is(":checked"))
|
|
{
|
|
$("#calibre_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#calibre_options").hide();
|
|
}
|
|
$("#calibre_use_server").click(function(){
|
|
if ($("#calibre_use_server").is(":checked"))
|
|
{
|
|
$("#calibre_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#calibre_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#gr_sync").is(":checked"))
|
|
{
|
|
$("#grsync_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#grsync_options").hide();
|
|
}
|
|
|
|
$("#gr_sync").click(function(){
|
|
if ($("#gr_sync").is(":checked"))
|
|
{
|
|
$("#grsync_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#grsync_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#user_accounts").is(":checked"))
|
|
{
|
|
$("#admin_options").show();
|
|
$("#webserver_options").hide();
|
|
}
|
|
else
|
|
{
|
|
$("#webserver_options").show();
|
|
$("#admin_options").hide();
|
|
}
|
|
|
|
$("#user_accounts").click(function(){
|
|
if ($("#user_accounts").is(":checked"))
|
|
{
|
|
$("#webserver_options").slideUp();
|
|
$("#admin_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#admin_options").slideUp();
|
|
$("#webserver_options").slideDown();
|
|
}
|
|
});
|
|
|
|
if ($("#https_enabled").is(":checked"))
|
|
{
|
|
$("#https_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#https_options").hide();
|
|
}
|
|
|
|
$("#https_enabled").click(function(){
|
|
if ($("#https_enabled").is(":checked"))
|
|
{
|
|
$("#https_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#https_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#audio_tab").is(":checked"))
|
|
{
|
|
$("#graudio_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#graudio_options").hide();
|
|
}
|
|
|
|
$("#audio_tab").click(function(){
|
|
if ($("#audiobook_enabled").is(":checked"))
|
|
{
|
|
$("#graudio_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#graudio_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#api_enabled").is(":checked"))
|
|
{
|
|
$("#api_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#api_options").hide();
|
|
}
|
|
|
|
$("#api_enabled").click(function(){
|
|
if ($("#api_enabled").is(":checked"))
|
|
{
|
|
$("#api_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#api_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#tor_downloader_blackhole").is(":checked"))
|
|
{
|
|
$("#tor_blackhole_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#tor_blackhole_options").hide();
|
|
}
|
|
|
|
$("#tor_downloader_blackhole").click(function(){
|
|
if ($("#tor_downloader_blackhole").is(":checked"))
|
|
{
|
|
$("#tor_blackhole_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#tor_blackhole_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#tor_downloader_deluge").is(":checked"))
|
|
{
|
|
$("#deluge_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#deluge_options").hide();
|
|
}
|
|
$("#tor_downloader_deluge").click(function(){
|
|
if ($("#tor_downloader_deluge").is(":checked"))
|
|
{
|
|
$("#deluge_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#deluge_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#tor_downloader_transmission").is(":checked"))
|
|
{
|
|
$("#transmission_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#transmission_options").hide();
|
|
}
|
|
$("#tor_downloader_transmission").click(function(){
|
|
if ($("#tor_downloader_transmission").is(":checked"))
|
|
{
|
|
$("#transmission_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#transmission_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#tor_downloader_utorrent").is(":checked"))
|
|
{
|
|
$("#utorrent_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#utorrent_options").hide();
|
|
}
|
|
|
|
$("#tor_downloader_utorrent").click(function(){
|
|
if ($("#tor_downloader_utorrent").is(":checked"))
|
|
{
|
|
$("#utorrent_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#utorrent_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#tor_downloader_rtorrent").is(":checked"))
|
|
{
|
|
$("#rtorrent_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#rtorrent_options").hide();
|
|
}
|
|
|
|
$("#tor_downloader_rtorrent").click(function(){
|
|
if ($("#tor_downloader_rtorrent").is(":checked"))
|
|
{
|
|
$("#rtorrent_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#rtorrent_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#tor_downloader_qbittorrent").is(":checked"))
|
|
{
|
|
$("#qbittorrent_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#qbittorrent_options").hide();
|
|
}
|
|
|
|
$("#tor_downloader_qbittorrent").click(function(){
|
|
if ($("#tor_downloader_qbittorrent").is(":checked"))
|
|
{
|
|
$("#qbittorrent_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#qbittorrent_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#nzb_downloader_blackhole").is(":checked"))
|
|
{
|
|
$("#nzb_blackhole_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#nzb_blackhole_options").hide();
|
|
}
|
|
|
|
$("#nzb_downloader_blackhole").click(function(){
|
|
if ($("#nzb_downloader_blackhole").is(":checked"))
|
|
{
|
|
$("#nzb_blackhole_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#nzb_blackhole_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#nzb_downloader_sabnzbd").is(":checked"))
|
|
{
|
|
$("#sabnzbd_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#sabnzbd_options").hide();
|
|
}
|
|
$("#nzb_downloader_sabnzbd").click(function(){
|
|
if ($("#nzb_downloader_sabnzbd").is(":checked"))
|
|
{
|
|
$("#sabnzbd_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#sabnzbd_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#nzb_downloader_nzbget").is(":checked"))
|
|
{
|
|
$("#nzbget_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#nzbget_options").hide();
|
|
}
|
|
$("#nzb_downloader_nzbget").click(function(){
|
|
if ($("#nzb_downloader_nzbget").is(":checked"))
|
|
{
|
|
$("#nzbget_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#nzbget_options").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_synology").is(":checked"))
|
|
{
|
|
$("#synology_options").show();
|
|
}
|
|
else
|
|
{
|
|
$("#synology_options").hide();
|
|
}
|
|
$("#use_synology").click(function(){
|
|
if ($("#use_synology").is(":checked"))
|
|
{
|
|
$("#synology_options").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#synology_options").slideUp();
|
|
}
|
|
});
|
|
|
|
$('#generateAPI').click(function () {
|
|
$.get("generateAPI",
|
|
function (data) { });
|
|
});
|
|
|
|
$('#showblocked').on('click', function(e) {
|
|
$.get('showblocked', function(data) {
|
|
bootbox.dialog({
|
|
title: 'Provider Status',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
prompt: {
|
|
label: "Clear Blocklist",
|
|
className: 'btn-danger',
|
|
callback: function(result){ $.get("clearblocked", function(e) {}); }
|
|
},
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
if ($("#opds_enabled").is(":checked"))
|
|
{
|
|
$("#opdsoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#opdsoptions").hide();
|
|
}
|
|
|
|
$("#opds_enabled").click(function(){
|
|
if ($("#opds_enabled").is(":checked"))
|
|
{
|
|
$("#opdsoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#opdsoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#opds_authentication").is(":checked"))
|
|
{
|
|
$("#opdscredentials").show();
|
|
}
|
|
else
|
|
{
|
|
$("#opdscredentials").hide();
|
|
}
|
|
|
|
$("#opds_authentication").click(function(){
|
|
if ($("#opds_authentication").is(":checked"))
|
|
{
|
|
$("#opdscredentials").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#opdscredentials").slideUp();
|
|
}
|
|
});
|
|
|
|
$("button[role='testprov']").on('click', function(e) {
|
|
var prov = $(this).val();
|
|
var host = ""
|
|
var api = ""
|
|
if ( 'KAT TPB WWT ZOO TDL LIME GEN GEN2'.indexOf(prov) >= 0 ) {
|
|
var host = $("#" + prov.toLowerCase() + "_host").val();
|
|
}
|
|
if ( 'GEN GEN2'.indexOf(prov) >= 0 ) {
|
|
var api = $("#" + prov.toLowerCase() + "_search").val();
|
|
}
|
|
if ( prov.indexOf('newznab_') == 0 ) {
|
|
var host = $("#" + prov.toLowerCase() + "_host").val();
|
|
var api = $("#" + prov.toLowerCase() + "_api").val();
|
|
}
|
|
if ( prov.indexOf('torznab_') == 0 ) {
|
|
var host = $("#" + prov.toLowerCase() + "_host").val();
|
|
var api = $("#" + prov.toLowerCase() + "_api").val();
|
|
}
|
|
if ( prov.indexOf('rss_') == 0 ) {
|
|
var host = $("#" + prov.toLowerCase() + "_host").val();
|
|
}
|
|
$("#myAlert").removeClass('hidden');
|
|
$.get('testprovider', {'name': prov, 'host': host, 'api': api},
|
|
function(data) {
|
|
$("#myAlert").addClass('hidden');
|
|
bootbox.dialog({
|
|
title: 'Test Result',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#show_Stats').on('click', function(e) {
|
|
$.get('show_Stats', function(data) {
|
|
bootbox.dialog({
|
|
title: 'Database Stats',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#show_Jobs').on('click', function(e) {
|
|
$.get('show_Jobs', function(data) {
|
|
bootbox.dialog({
|
|
title: 'Job Status',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
stopit: {
|
|
label: "<i class=\"fa fa-ban\"></i> Stop Jobs",
|
|
className: 'btn-warning',
|
|
callback: function(result){ $.get("stop_Jobs", function(e) {}); }
|
|
},
|
|
restart: {
|
|
label: "<i class=\"fa fa-sync\"></i> Restart Jobs",
|
|
className: 'btn-info',
|
|
callback: function(result){ $.get("restart_Jobs", function(e) {}); }
|
|
},
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testSABnzbd').on('click', function() {
|
|
var host = $.trim($("#sab_host").val());
|
|
var port = $.trim($("#sab_port").val());
|
|
var user = $.trim($("#sab_user").val());
|
|
var pwd = $.trim($("#sab_pass").val());
|
|
var api = $.trim($("#sab_api").val());
|
|
var cat = $.trim($("#sab_cat").val());
|
|
var subdir = $.trim($("#sab_subdir").val());
|
|
$.get("testSABnzbd", {'host': host, 'port': port, 'user': user, 'pwd': pwd, 'api': api, 'cat': cat, 'subdir': subdir},
|
|
function(data) {
|
|
bootbox.dialog({
|
|
title: 'SABnzbd Connection',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testNZBget').on('click', function(e) {
|
|
var host = $.trim($("#nzbget_host").val());
|
|
var port = $.trim($("#nzbget_port").val());
|
|
var user = $.trim($("#nzbget_user").val());
|
|
var pwd = $.trim($("#nzbget_pass").val());
|
|
var cat = $.trim($("#nzbget_category").val());
|
|
var pri = $.trim($("#nzbget_priority").val());
|
|
$.get('testNZBget', {'host': host, 'port': port, 'user': user, 'pwd': pwd, 'cat': cat, 'pri': pri},
|
|
function(data) {
|
|
bootbox.dialog({
|
|
title: 'NZBget Connection',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testSynology').on('click', function(e) {
|
|
var host = $.trim($("#synology_host").val());
|
|
var port = $.trim($("#synology_port").val());
|
|
var user = $.trim($("#synology_user").val());
|
|
var pwd = $.trim($("#synology_pass").val());
|
|
var dir = $.trim($("#synology_dir").val());
|
|
$.get('testSynology', {'host': host, 'port': port, 'user': user, 'pwd': pwd, 'dir': dir},
|
|
function(data) {
|
|
bootbox.dialog({
|
|
title: 'Synology Connection',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testDeluge').on('click', function() {
|
|
var host = $.trim($("#deluge_host").val());
|
|
var base = $.trim($("#deluge_base").val());
|
|
var cert = $.trim($("#deluge_cert").val());
|
|
var port = $.trim($("#deluge_port").val());
|
|
var user = $.trim($("#deluge_user").val());
|
|
var pwd = $.trim($("#deluge_pass").val());
|
|
var label = $.trim($("#deluge_label").val());
|
|
$.get("testDeluge", {'host': host, 'port': port, 'base': base, 'cert': cert, 'user': user, 'pwd': pwd, 'label': label},
|
|
function(data) {
|
|
bootbox.dialog({
|
|
title: 'Deluge Connection',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testTransmission').on('click', function(e) {
|
|
var host = $.trim($("#transmission_host").val());
|
|
var port = $.trim($("#transmission_port").val());
|
|
var base = $.trim($("#transmission_base").val());
|
|
var user = $.trim($("#transmission_user").val());
|
|
var pwd = $.trim($("#transmission_pass").val());
|
|
$.get('testTransmission', {'host': host, 'port': port, 'base': base, 'user': user, 'pwd': pwd},
|
|
function(data) {
|
|
bootbox.dialog({
|
|
title: 'Transmission Connection',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testqBittorrent').on('click', function() {
|
|
var host = $.trim($("#qbittorrent_host").val());
|
|
var port = $.trim($("#qbittorrent_port").val());
|
|
var user = $.trim($("#qbittorrent_user").val());
|
|
var pwd = $.trim($("#qbittorrent_pass").val());
|
|
var label = $.trim($("#qbittorrent_label").val());
|
|
$.get('testqBittorrent', {'host': host, 'port': port, 'user': user, 'pwd': pwd, 'label': label},
|
|
function(data) {
|
|
bootbox.dialog({
|
|
title: 'qBittorrent Connection',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testuTorrent').on('click', function(e) {
|
|
var host = $.trim($("#utorrent_host").val());
|
|
var port = $.trim($("#utorrent_port").val());
|
|
var user = $.trim($("#utorrent_user").val());
|
|
var pwd = $.trim($("#utorrent_pass").val());
|
|
var label = $.trim($("#utorrent_label").val());
|
|
$.get('testuTorrent', {'host': host, 'port': port, 'user': user, 'pwd': pwd, 'label': label},
|
|
function(data) {
|
|
bootbox.dialog({
|
|
title: 'uTorrent Connection',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testrTorrent').on('click', function(e) {
|
|
var host = $.trim($("#rtorrent_host").val());
|
|
var dir = $.trim($("#rtorrent_dir").val());
|
|
var user = $.trim($("#rtorrent_user").val());
|
|
var pwd = $.trim($("#rtorrent_pass").val());
|
|
var label = $.trim($("#rtorrent_label").val());
|
|
$.get('testrTorrent', {'host': host, 'dir': dir, 'user': user, 'pwd': pwd, 'label': label},
|
|
function(data) {
|
|
bootbox.dialog({
|
|
title: 'rTorrent Connection',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
if ($("#use_twitter").is(":checked"))
|
|
{
|
|
$("#twitteroptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#twitteroptions").hide();
|
|
}
|
|
|
|
$("#use_twitter").click(function(){
|
|
if ($("#use_twitter").is(":checked"))
|
|
{
|
|
$("#twitteroptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#twitteroptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_boxcar").is(":checked"))
|
|
{
|
|
$("#boxcaroptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#boxcaroptions").hide();
|
|
}
|
|
|
|
$("#use_boxcar").click(function(){
|
|
if ($("#use_boxcar").is(":checked"))
|
|
{
|
|
$("#boxcaroptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#boxcaroptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#fullscan").is(":checked"))
|
|
{
|
|
$("#fullscanoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#fullscanoptions").hide();
|
|
}
|
|
|
|
$("#fullscan").click(function(){
|
|
if ($("#fullscan").is(":checked"))
|
|
{
|
|
$("#fullscanoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#fullscanoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_pushbullet").is(":checked"))
|
|
{
|
|
$("#pushbulletoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#pushbulletoptions").hide();
|
|
}
|
|
|
|
$("#use_pushbullet").click(function(){
|
|
if ($("#use_pushbullet").is(":checked"))
|
|
{
|
|
$("#pushbulletoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#pushbulletoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_pushover").is(":checked"))
|
|
{
|
|
$("#pushoveroptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#pushoveroptions").hide();
|
|
}
|
|
$("#use_pushover").click(function(){
|
|
if ($("#use_pushover").is(":checked"))
|
|
{
|
|
$("#pushoveroptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#pushoveroptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_androidpn").is(":checked"))
|
|
{
|
|
$("#androidpnoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#androidpnoptions").hide();
|
|
}
|
|
$("#use_androidpn").click(function(){
|
|
if ($("#use_androidpn").is(":checked"))
|
|
{
|
|
$("#androidpnoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#androidpnoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#androidpn_broadcast").is(":checked"))
|
|
{
|
|
$("#androidpn_username").hide();
|
|
}
|
|
else
|
|
{
|
|
$("#androidpn_username").show();
|
|
}
|
|
$("#androidpn_broadcast").click(function(){
|
|
if ($("#androidpn_broadcast").is(":checked"))
|
|
{
|
|
$("#androidpn_username").slideUp();
|
|
}
|
|
else
|
|
{
|
|
$("#androidpn_username").slideDown();
|
|
}
|
|
});
|
|
|
|
if ($("#use_nma").is(":checked"))
|
|
{
|
|
$("#nmaoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#nmaoptions").hide();
|
|
}
|
|
|
|
$("#use_nma").click(function(){
|
|
if ($("#use_nma").is(":checked"))
|
|
{
|
|
$("#nmaoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#nmaoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
$("#use_prowl").click(function(){
|
|
if ($("#use_prowl").is(":checked"))
|
|
{
|
|
$("#prowloptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#prowloptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_prowl").is(":checked"))
|
|
{
|
|
$("#prowloptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#prowloptions").hide();
|
|
}
|
|
|
|
$("#use_growl").click(function(){
|
|
if ($("#use_growl").is(":checked"))
|
|
{
|
|
$("#growloptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#growloptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_growl").is(":checked"))
|
|
{
|
|
$("#growloptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#growloptions").hide();
|
|
}
|
|
|
|
$("#use_telegram").click(function(){
|
|
if ($("#use_telegram").is(":checked"))
|
|
{
|
|
$("#telegramoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#telegramoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_telegram").is(":checked"))
|
|
{
|
|
$("#telegramoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#telegramoptions").hide();
|
|
}
|
|
|
|
if ($("#use_slack").is(":checked"))
|
|
{
|
|
$("#slackoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#slackoptions").hide();
|
|
}
|
|
|
|
$("#use_slack").click(function(){
|
|
if ($("#use_slack").is(":checked"))
|
|
{
|
|
$("#slackoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#slackoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_custom").is(":checked"))
|
|
{
|
|
$("#customoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#customoptions").hide();
|
|
}
|
|
|
|
$("#use_custom").click(function(){
|
|
if ($("#use_custom").is(":checked"))
|
|
{
|
|
$("#customoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#customoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
if ($("#use_email").is(":checked"))
|
|
{
|
|
$("#emailoptions").show();
|
|
}
|
|
else
|
|
{
|
|
$("#emailoptions").hide();
|
|
}
|
|
|
|
$("#use_email").click(function(){
|
|
if ($("#use_email").is(":checked"))
|
|
{
|
|
$("#emailoptions").slideDown();
|
|
}
|
|
else
|
|
{
|
|
$("#emailoptions").slideUp();
|
|
}
|
|
});
|
|
|
|
$('#sysinfo').on('click', function(e) {
|
|
$.get('logHeader', function(data) {
|
|
bootbox.dialog({
|
|
title: 'System Info',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#savefilters').on('click', function(e) {
|
|
$.get('saveFilters', function(data) {
|
|
bootbox.dialog({
|
|
title: 'Export Filters',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#loadfilters').on('click', function(e) {
|
|
$.get('loadFilters', function(data) {
|
|
bootbox.dialog({
|
|
title: 'Import Filters',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
$('#testgrauth').click(function () {
|
|
var gr_api = $.trim($("#gr_api").val());
|
|
var gr_secret = $.trim($("#gr_secret").val());
|
|
var oauth_token = $.trim($("#gr_oauth_token").val());
|
|
var oauth_secret = $.trim($("#gr_oauth_secret").val());
|
|
$.get("testGRAuth", {'gr_api': gr_api, 'gr_secret': gr_secret, 'oauth_token': oauth_token, 'oauth_secret': oauth_secret},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'GoodReads Auth',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#grauthStep1').click(function () {
|
|
var gr_api = $.trim($("#gr_api").val());
|
|
var gr_secret = $.trim($("#gr_secret").val());
|
|
$.get("grauthStep1", {'gr_api': gr_api, 'gr_secret': gr_secret},
|
|
function (data) {
|
|
if ( data.substr(0, 4) == 'http') { bootbox.dialog({
|
|
title: 'GoodReads Auth',
|
|
message: '<pre>When you click [OK] a new page will open to authorise lazylibrarian. Follow the prompts, then go back to LazyLibrarian and request oAuth2\nIf the page does not open, visit this link...\n'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
}); window.open(data);
|
|
}
|
|
else { bootbox.dialog({
|
|
title: 'GoodReads Response',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
}
|
|
})
|
|
});
|
|
|
|
$('#grauthStep2').click(function () {
|
|
$.get("grauthStep2", {},
|
|
function (data) { bootbox.dialog({
|
|
title: 'GoodReads Confirm',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary',
|
|
callback: function(){ document.location.reload(true); }
|
|
}
|
|
}
|
|
});
|
|
})
|
|
});
|
|
|
|
|
|
$('#twitterStep1').click(function () {
|
|
$('#testTwitter-result').html('');
|
|
$.get("twitterStep1", function (data) {window.open(data); })
|
|
.done(function () { $('#testTwitter-result').html('<b>Step1:</b> Confirm Authorization'); });
|
|
});
|
|
|
|
$('#twitterStep2').click(function () {
|
|
$('#testTwitter-result').html('');
|
|
var twitter_key = $("#twitter_key").val();
|
|
$.get("twitterStep2", {'key': twitter_key},
|
|
function (data) { $('#testTwitter-result').html(data); });
|
|
});
|
|
|
|
$('#testTwitter').click(function () {
|
|
$.get("testTwitter", {},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Twitter Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testBoxcar').click(function () {
|
|
var token = $.trim($("#boxcar_token").val());
|
|
$.get("testBoxcar", {'token': token},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Boxcar Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testPushbullet').click(function () {
|
|
var token = $.trim($("#pushbullet_token").val());
|
|
var device = $.trim($("#pushbullet_deviceid").val());
|
|
$.get("testPushbullet", {'token': token, 'device': device},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Pushbullet Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testPushover').click(function () {
|
|
var token = $.trim($("#pushover_apitoken").val());
|
|
var keys = $.trim($("#pushover_keys").val());
|
|
var priority = $.trim($("#pushover_priority").val());
|
|
var device = $.trim($("#pushover_device").val());
|
|
$.get("testPushover", {'apitoken': token, 'keys': keys, 'priority': priority, 'device': device},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Pushover Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testProwl').click(function () {
|
|
var apikey = $.trim($("#prowl_apikey").val());
|
|
var priority = $.trim($("#prowl_priority").val());
|
|
$.get("testProwl", {'apikey': apikey, 'priority': priority},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Prowl Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testGrowl').click(function () {
|
|
var host = $.trim($("#growl_host").val());
|
|
var password = $.trim($("#growl_password").val());
|
|
$.get("testGrowl", {'host': host, 'password': password},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Growl Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testTelegram').click(function () {
|
|
var token = $.trim($("#telegram_token").val());
|
|
var userid = $.trim($("#telegram_userid").val());
|
|
$.get("testTelegram", {'token': token, 'userid': userid},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Telegram Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testNMA').click(function () {
|
|
var apikey = $.trim($("#nma_apikey").val());
|
|
var priority = $.trim($("#nma_priority").val());
|
|
$.get("testNMA", {'apikey': apikey, 'priority': priority},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'NMA Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testSlack').click(function () {
|
|
var token = $.trim($("#slack_token").val());
|
|
var url = $.trim($("#slack_url").val());
|
|
$.get("testSlack", {'token': token, 'url': url},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Slack Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testCustom').click(function () {
|
|
var script = $.trim($("#custom_script").val());
|
|
$.get("testCustom", {'script': script},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Custom Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testEmail').click(function () {
|
|
var tls = ($("#email_tls").prop('checked') == true) ? 'True' : 'False';
|
|
var ssl = ($("#email_ssl").prop('checked') == true) ? 'True' : 'False';
|
|
var sendfile = ($("#email_sendfile_ondownload").prop('checked') == true) ? 'True' : 'False';
|
|
var emailfrom = $.trim($("#email_from").val());
|
|
var emailto = $.trim($("#email_to").val());
|
|
var server = $.trim($("#email_smtp_server").val());
|
|
var user = $.trim($("#email_smtp_user").val());
|
|
var password = $.trim($("#email_smtp_password").val());
|
|
var port = $.trim($("#email_smtp_port").val());
|
|
$.get("testEmail", {'tls': tls, 'ssl': ssl, 'emailfrom': emailfrom, 'emailto': emailto, 'server': server, 'user': user, 'password': password, 'port': port, 'sendfile': sendfile},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Email Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$("#testAndroidPN").click(function () {
|
|
var androidpn_url = $.trim($("#androidpn_url").val());
|
|
var androidpn_username = $.trim($("#androidpn_username").val());
|
|
var androidpn_broadcast = ($("#androidpn_broadcast").prop('checked') == true) ? 'Y' : 'N';
|
|
$.get("testAndroidPN", {'url': androidpn_url, 'username': androidpn_username, 'broadcast': androidpn_broadcast},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'Android Notifier',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testCalibredb').click(function () {
|
|
var prg = $.trim($("#imp_calibredb").val());
|
|
$.get("testCalibredb", { 'prg': prg},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'CalibreDB',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$('#testpreprocessor').click(function () {
|
|
var prg = $.trim($("#imp_preprocessor").val());
|
|
$.get("testPreProcessor", { 'prg': prg},
|
|
function (data) {
|
|
bootbox.dialog({
|
|
title: 'PreProcessor',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
if ($("#book_api").val() == 'GoodReads')
|
|
{
|
|
$("#gr_options").show();
|
|
$("#gb_options").hide();
|
|
}
|
|
else
|
|
{
|
|
$("#gr_options").hide();
|
|
$("#gb_options").show();
|
|
}
|
|
$('#book_api').change(function() {
|
|
if ($(this).val() == 'GoodReads') {
|
|
$("#gb_options").slideUp();
|
|
$("#gr_options").slideDown();
|
|
} else {
|
|
$("#gr_options").slideUp();
|
|
$("#gb_options").slideDown();
|
|
}
|
|
});
|
|
|
|
$('#http_look').change(function() {
|
|
if ($(this).val() == 'bookstrap') {
|
|
$('#bookstrap_options').removeClass("hidden");
|
|
} else {
|
|
$('#bookstrap_options').addClass("hidden");
|
|
}
|
|
});
|
|
|
|
// when the page first loads, hide all tab headers and panels
|
|
$("li[role='presentation']").attr("aria-selected", "false");
|
|
$("li[role='presentation']").removeClass('active');
|
|
$("div[role='tabpanel']").attr("aria-hidden", "true");
|
|
$("div[role='tabpanel']").removeClass('active');
|
|
// which one do we want to show
|
|
var tabnum = $("#current_tab").val();
|
|
var tabid = $("#" + tabnum);
|
|
var tabpanel = tabid.attr('aria-controls');
|
|
var tabpanelid = $("#" + tabpanel);
|
|
// show the tab header and panel we want
|
|
tabpanelid.attr("aria-hidden", "false");
|
|
tabpanelid.addClass('active');
|
|
tabid.attr("aria-selected", "true");
|
|
tabid.addClass('active');
|
|
$("div[role='tab-table']").removeClass('hidden');
|
|
|
|
// when a tab is clicked
|
|
$("li[role='presentation']").click(function(){
|
|
var tabnum = $(this).attr('id'); // store current tab for python
|
|
$("#current_tab").val(tabnum);
|
|
});
|
|
|
|
|
|
$('#checkforupdates').on('click', function(e) {
|
|
eraseCookie("ignoreUpdate");
|
|
$("#myAlert").removeClass('hidden');
|
|
$.get('checkForUpdates', function(data) {
|
|
$("#myAlert").addClass('hidden');
|
|
bootbox.dialog({
|
|
title: 'Check Version',
|
|
message: '<pre>'+data+'</pre>',
|
|
buttons: {
|
|
primary: {
|
|
label: "Close",
|
|
className: 'btn-primary',
|
|
callback: function(){ location.reload(true); }
|
|
},
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
} // End Init
|
|
|
|
$(document).ready(function() {
|
|
initThisPage();
|
|
});
|
|
</script>
|
|
</%def>
|
|
<html><head></head><body></body></html>
|