SickGear/gui/slick/interfaces/default/config_postProcessing.tmpl
2015-11-19 06:39:17 +08:00

1267 lines
No EOL
48 KiB
Cheetah

#import sickbeard
#from sickbeard.common import *
#from sickbeard.helpers import anon_url
#from sickbeard import config
#from sickbeard import metadata
#from sickbeard.metadata.generic import GenericMetadata
#from sickbeard import naming
##
#set global $title = 'Config - Post Processing'
#set global $header = 'Post Processing'
#set global $sbPath = '../..'
#set global $topmenu = 'config'
##
#import os.path
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_top.tmpl')
<script type="text/javascript" src="$sbRoot/js/configPostProcessing.js?v=$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/config.js?v=$sbPID"></script>
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#end if
##
#set $checked = 'checked="checked"'
#set $selected = 'selected="selected" class="selected"'
<div id="config" class="pp">
<div id="config-content" class="linefix">
<form id="configForm" action="savePostProcessing" method="post">
<div id="config-components">
<ul>
<li><a href="#core-component-group1">Post-Processing</a></li>
<li><a href="#core-component-group2">Episode Naming</a></li>
<li><a href="#core-component-group3">Metadata</a></li>
</ul>
<div id="core-component-group1">
<div class="component-group">
<div class="component-group-desc">
<h3>Post-Processing</h3>
<p>SickGear options to process completed downloads.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label for="tv_download_dir">
<span class="component-title">Completed TV downloads
<p class="red-text" style="line-height:20px;margin:0"><em class="boldest">must not</em> be the folder where downloading files are created</p>
</span>
<span class="component-desc">
<input type="text" name="tv_download_dir" id="tv_download_dir" value="$sickbeard.TV_DOWNLOAD_DIR" class="form-control input-sm input350">
<div class="pull-left">
<p class="note">folder where download clients save <b><em class="boldest">completed</em></b> downloads.&nbsp;
<b>note:</b> only use if not using SABnzbd post processing <em>or</em> if SABnzbd is on a different PC to SickGear</p>
</div>
</span>
</label>
</div>
<div class="field-pair">
<label for="process_method">
<span class="component-title">Process episode method</span>
<span class="component-desc">
<select name="process_method" id="process_method" class="form-control input-sm">
#set $process_method_text = {'copy': 'Copy', 'move': 'Move', 'hardlink': 'Hard Link', 'symlink' : 'Symbolic Link'}
#for $curAction in ('copy', 'move', 'hardlink', 'symlink'):
#set $process_method = ('', $selected)[$sickbeard.PROCESS_METHOD == $curAction]
<option value="$curAction" $process_method>$process_method_text[$curAction]</option>
#end for
</select>
<span>...&nbsp;completed downloads to under a parent TV folder</span>
</span>
</label>
</div>
<div class="field-pair">
<label for="process_automatically">
<span class="component-title">Scan and post process</span>
<span class="component-desc">
<input type="checkbox" name="process_automatically" id="process_automatically" #if $sickbeard.PROCESS_AUTOMATICALLY == True then $checked else ''#>
<p>files in the <em>completed TV downloads</em> folder</p>
<p class="clear-left note"><b>note:</b> do not enable with external post processing scripts like sabToSickbeard for SABnzbd, or NZBMedia for NZBGET</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="autopostprocesser_frequency">
<span class="component-title">Run post process every</span>
<span class="component-desc">
<input type="text" name="autopostprocesser_frequency" id="autopostprocesser_frequency" value="$sickbeard.AUTOPOSTPROCESSER_FREQUENCY" class="form-control input-sm input75">
<p>minutes to check for new files to process (e.g. 10)</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="postpone_if_sync_files">
<span class="component-title">Postpone post processing</span>
<span class="component-desc">
<input type="checkbox" name="postpone_if_sync_files" id="postpone_if_sync_files" #if $sickbeard.POSTPONE_IF_SYNC_FILES == True then $checked else ''#>
<p>if <b class="grey-text">!sync</b> files are present in the <em>completed TV downloads</em> folder</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="extra_scripts">
<span class="component-title">Extra scripts</span>
<span class="component-desc">
<input type="text" name="extra_scripts" id="extra_scripts" value="<%='|'.join(sickbeard.EXTRA_SCRIPTS)%>" class="form-control input-sm input350">
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_extra_params" title="Toggle info for script arguments" class="legend" class="legend" />
<div class="clear-left">
<p class="note">scripts are called after built-in post processing.
&nbsp;<b>note:</b> use <b class="grey-text boldest">|</b> to separate additional extra scripts
(e.g. <span class="grey-text">inside_SG_root_folder.sh|/other/path/to/script.py</span>)</p>
<div id="extra_params" style="display: none">
<table class="Key" style="width:auto">
<thead>
<tr>
<th class="text-center">Arg</th>
<th>Description</th>
<th style="width:5%"></th>
<th class="text-center">Arg</th>
<th>Description</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="5">These arguments are passed to every script</th>
</tr>
</tfoot>
<tbody>
<tr><td class="text-center"><span class="grey-text">1</span></td><td>final full episode file path</td>
<td>&nbsp;</td><td class="text-center"><span class="grey-text">4</span></td><td>season number</td></tr>
<tr class="even"><td class="text-center"><span class="grey-text">2</span></td><td>original episode file name</td>
<td>&nbsp;</td><td class="text-center"><span class="grey-text">5</span></td><td style="padding-right:1.5em !important">episode number</td></tr>
<tr><td class="text-center"><span class="grey-text">3</span></td><td>show id</td>
<td>&nbsp;</td><td class="text-center"><span class="grey-text">6</span></td><td>episode air date</td></tr>
</tbody>
</table>
</div>
</div>
</span>
</label>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes"><br />
</fieldset>
</div>
<div class="component-group">
<div class="component-group-desc">
<h3>File Handling</h3>
<p>More file processing controls.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label for="unpack">
<span class="component-title">Unpack downloads</span>
<span class="component-desc">
<input id="unpack" type="checkbox" name="unpack" #if $sickbeard.UNPACK == True then $checked else ''#>
<p>unrar TV releases in the <em>completed TV downloads</em> folder</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="skip_removed_files">
<span class="component-title">Status of removed episodes</span>
<span class="component-desc">
<select name="skip_removed_files" id="skip_removed_files" class="form-control form-control-inline input-sm">
#set $opt_selected = ($sickbeard.SKIP_REMOVED_FILES, $IGNORED)[not $sickbeard.SKIP_REMOVED_FILES]
#for $cur_status in [1, $SKIPPED, $ARCHIVED, $IGNORED]:
#set $opt_text = ('Will Be Untouched', 'Set ' + $statusStrings[$cur_status] + ('', ' (default)')[$IGNORED == $cur_status])[1 != $cur_status]
<option value="$cur_status"#echo ('', ' ' + $selected)[$cur_status == $opt_selected]#>$opt_text</option>
#end for
</select>
<span><strong><em>untouched</em></strong> may mean SickGear also misses renames</span>
</span>
</label>
</div>
<div class="field-pair">
<label for="move_associated_files">
<span class="component-title">Move associated files</span>
<span class="component-desc">
<input type="checkbox" name="move_associated_files" id="move_associated_files" #if $sickbeard.MOVE_ASSOCIATED_FILES == True then $checked else ''#>
<p>move srr/srt/sfv/etc files with the episode when processed</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="nfo_rename">
<span class="component-title">Rename .nfo file</span>
<span class="component-desc">
<input type="checkbox" name="nfo_rename" id="nfo_rename" #if $sickbeard.NFO_RENAME == True then $checked else ''#>
<p>rename the original .nfo file to .nfo-orig to avoid conflicts</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="rename_episodes">
<span class="component-title">Rename episodes</span>
<span class="component-desc">
<input type="checkbox" name="rename_episodes" id="rename_episodes" #if $sickbeard.RENAME_EPISODES == True then $checked else ''#>
<p>rename episodes using the Episode Naming settings</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="airdate_episodes">
<span class="component-title">Change file date</span>
<span class="component-desc">
<input type="checkbox" name="airdate_episodes" id="airdate_episodes" #if $sickbeard.AIRDATE_EPISODES == True then $checked else ''#>
<p>set last modified filedate to the date that the episode aired</p>
<p class="note"><b>note:</b> some systems may ignore this feature.</p>
</span>
</label>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes"><br />
</fieldset>
</div>
<div class="component-group">
<div class="component-group-desc">
<h3>Failed Downloads</h3>
<p>SickGear can attempt a different release if a download is found to fail</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair" style="padding-bottom:0">
<label for="use_failed_downloads" style="margin-bottom:0">
<span class="component-title">Enable</span>
<span class="component-desc">
<input id="use_failed_downloads" type="checkbox" class="enabler" name="use_failed_downloads" #if $sickbeard.USE_FAILED_DOWNLOADS == True then $checked else ''#>
<p>failed download handling</p>
</span>
</label>
</div>
<div id="content_use_failed_downloads">
<div class="field-pair" style="padding-top:0">
<span class="component-desc">
<ul id="failed-guide">
<li class="title note">SABnzbd setup guide</li>
<li class="action note">menu "Switches"&nbsp;... [disable] "<em class="boldest">Abort jobs that cannot be completed</em>"</li>
<li class="action note">menu "Switches"&nbsp;... [disable] "<em class="boldest">Post-Process Only Verified Jobs</em>"</li>
<li class="action note">menu "Special"&nbsp;... [enable] "<em class="boldest">empty_postproc</em>"</li>
</ul>
</span>
</div>
<div class="field-pair">
<label for="delete_failed">
<span class="component-title">Delete failed downloads</span>
<span class="component-desc">
<input id="delete_failed" type="checkbox" name="delete_failed" #if $sickbeard.DELETE_FAILED == True then $checked else ''#>
<p>delete left over files from a failed download<br />
</span>
</label>
</div>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes"><br />
</fieldset>
</div>
</div><!-- /component-group1 //-->
<% ######################################################################################### %>
<% ######################################################################################### %>
<% ## TAB 2 ## %>
<% ######################################################################################### %>
<% ######################################################################################### %>
<% ########################### %>
<% ## Start of Regular Show ## %>
<% ########################### %>
<div id="core-component-group2" class="component-group">
<div class="component-group-desc">
<h3>Episode Naming</h3>
<p>Regular episode naming.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label for="name_presets">
<span class="component-title">Name pattern</span>
<span class="component-desc">
<select id="name_presets" class="form-control input-sm">
#set is_custom = True
#for $cur_preset in $naming.name_presets:
#set $tmp = $naming.test_name($cur_preset, anime_type=3)
#if $sickbeard.NAMING_PATTERN == $cur_preset:
#set is_custom = False
#end if
<option id="$cur_preset" #if $sickbeard.NAMING_PATTERN == $cur_preset then $selected else ''#>$os.path.join($tmp['dir'], $tmp['name'])</option>
#end for
<option id="$sickbeard.NAMING_PATTERN" #if $is_custom then $selected else ''#>Custom...</option>
</select>
</span>
</label>
</div>
<div id="naming_custom">
<div class="field-pair" style="padding-top: 0;">
<label for="naming_pattern">
<span class="component-title"></span>
<span class="component-desc">
<input type="text" name="naming_pattern" id="naming_pattern" value="$sickbeard.NAMING_PATTERN" class="form-control input-sm input350 custom-pattern">
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_key" title="Toggle Naming Legend" class="legend" class="legend" />
</span>
</label>
</div>
<div id="naming_key" style="display: none;">
<table class="Key">
<thead>
<tr>
<th class="align-right">Meaning</th>
<th>Pattern</th>
<th width="60%">Result</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="3">Use lower case if you want lower case names (eg. %sn, %e.n, %q_n etc)</th>
</tr>
</tfoot>
<tbody>
<tr>
<td class="align-right"><b>Show Name:</b></td>
<td>%SN</td>
<td>Show Name</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%S.N</td>
<td>Show.Name</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%S_N</td>
<td>Show_Name</td>
</tr>
<tr class="even">
<td class="align-right"><b>Season Number:</b></td>
<td>%S</td>
<td>2</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%0S</td>
<td>02</td>
</tr>
<tr class="even">
<td class="align-right"><b>XEM Season Number:</b></td>
<td>%XMS</td>
<td>2</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%0XMS</td>
<td>02</td>
</tr>
<tr class="even">
<td class="align-right"><b>Episode Number:</b></td>
<td>%E</td>
<td>3</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%0E</td>
<td>03</td>
</tr>
<tr class="even">
<td class="align-right"><b>XEM Episode Number:</b></td>
<td>%XME</td>
<td>3</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%0XME</td>
<td>03</td>
</tr>
<tr class="even">
<td class="align-right"><b>Episode Name:</b></td>
<td>%EN</td>
<td>Episode Name</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%E.N</td>
<td>Episode.Name</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%E_N</td>
<td>Episode_Name</td>
</tr>
<tr>
<td class="align-right"><b>Quality:</b></td>
<td>%QN</td>
<td>720p BluRay</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%Q.N</td>
<td>720p.BluRay</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%Q_N</td>
<td>720p_BluRay</td>
</tr>
<tr class="even">
<td class="align-right"><i class="sgicon-info" title="Multi-EP style is ignored"></i> <b>Release Name:</b></td>
<td>%RN</td>
<td>Show.Name.S02E03.HDTV.XviD-RLSGROUP</td>
</tr>
<tr>
<td class="align-right"><i class="sgicon-info" title="'SickGear' is used in place of RLSGROUP if it could not be properly detected"></i> <b>Release Group:</b></td>
<td>-%RG</td>
<td>RLSGROUP</td>
</tr>
<tr class="even">
<td class="align-right"><i class="sgicon-info" title="If episode is proper/repack add 'proper' to name."></i> <b>Release Type:</b></td>
<td>%RT</td>
<td>PROPER</td>
</tr>
</tbody>
</table>
<br />
</div>
</div>
<div class="field-pair">
<label for="naming_multi_ep">
<span class="component-title">Multi episode style</span>
<span class="component-desc">
<select id="naming_multi_ep" name="naming_multi_ep" class="form-control input-sm">
#for $cur_multi_ep in sorted($multiEpStrings.items(), key=lambda x: x[1]):
<option value="$cur_multi_ep[0]" #if $sickbeard.NAMING_MULTI_EP == $cur_multi_ep[0] then $selected else ''#>$cur_multi_ep[1]</option>
#end for
</select>
</span>
</label>
</div>
<div class="field-pair">
<label for="naming_strip_year">
<span class="component-title">Strip show year</span>
<span class="component-desc">
<input type="checkbox" id="naming_strip_year" name="naming_strip_year" #if $sickbeard.NAMING_STRIP_YEAR then $checked else ''#/>
<p>when renaming files, remove years that are inside parentheses #if True then 'e.g. "(%s)"' % str(time.strftime('%Y')) else ''#</p>
</span>
</label>
</div>
</fieldset>
<fieldset class="component-group-list">
<div id="naming_example_div">
<div class="component-group-desc episode-sample">
<h3>Single episode sample:</h3>
</div>
<div class="example">
<span class="jumbo" id="naming_example">&nbsp;</span>
</div>
<br />
</div>
<div id="naming_example_multi_div">
<div class="component-group-desc episode-sample">
<h3>Multi episode sample:</h3>
</div>
<div class="example">
<span class="jumbo" id="naming_example_multi">&nbsp;</span>
</div>
<br />
</div>
</fieldset>
<% ########################## %>
<% ## End of Regular Show ## %>
<% ## ## %>
<% ## Start of Air-by-Date ## %>
<% ########################## %>
<div class="component-group-desc">
<p>Air-by-date episode naming.</p>
</div>
<div class="field-pair right">
<label for="naming_custom_abd">
<span class="component-title">Custom air-by-date</span>
<span class="component-desc">
<input type="checkbox" class="enabler" id="naming_custom_abd" name="naming_custom_abd" #if $sickbeard.NAMING_CUSTOM_ABD then $checked else ''#/>
<p>name air-by-date shows differently than regular shows</p>
</span>
</label>
</div>
<div id="content_naming_custom_abd">
<fieldset class="component-group-list">
<div class="field-pair right">
<label for="name_abd_presets">
<span class="component-title">Air-by-date name pattern</span>
<span class="component-desc">
<select id="name_abd_presets" class="form-control input-sm">
#set is_abd_custom = True
#for $cur_preset in $naming.name_abd_presets:
#set $tmp = $naming.test_name($cur_preset)
#if $sickbeard.NAMING_ABD_PATTERN == $cur_preset:
#set is_abd_custom = False
#end if
<option id="$cur_preset" #if $sickbeard.NAMING_ABD_PATTERN == $cur_preset then $selected else ''#>$os.path.join($tmp['dir'], $tmp['name'])</option>
#end for
<option id="$sickbeard.NAMING_ABD_PATTERN" #if $is_abd_custom then $selected else ''#>Custom...</option>
</select>
</span>
</label>
<div id="naming_abd_custom">
<div class="field-pair">
<label for="naming_abd_pattern">
<span class="component-title"></span>
<span class="component-desc">
<input type="text" name="naming_abd_pattern" id="naming_abd_pattern" value="$sickbeard.NAMING_ABD_PATTERN" class="form-control input-sm input350 custom-pattern">
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_abd_key" title="Toggle ABD Naming Legend" class="legend" />
</span>
</label>
</div>
<div id="naming_abd_key" style="display: none;">
<table class="Key">
<thead>
<tr>
<th class="align-right">Meaning</th>
<th>Pattern</th>
<th width="60%">Result</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="3">Use lower case if you want lower case names (eg. %sn, %e.n, %q_n etc)</th>
</tr>
</tfoot>
<tbody>
<tr>
<td class="align-right"><b>Show Name:</b></td>
<td>%SN</td>
<td>Show Name</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%S.N</td>
<td>Show.Name</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%S_N</td>
<td>Show_Name</td>
</tr>
<tr class="even">
<td class="align-right"><b>Regular Air Date:</b></td>
<td>%AD</td>
<td>2010 03 09</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%A.D</td>
<td>2010.03.09</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%A_D</td>
<td>2010_03_09</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%A-D</td>
<td>2010-03-09</td>
</tr>
<tr class="even">
<td class="align-right"><b>Episode Name:</b></td>
<td>%EN</td>
<td>Episode Name</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%E.N</td>
<td>Episode.Name</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%E_N</td>
<td>Episode_Name</td>
</tr>
<tr>
<td class="align-right"><b>Quality:</b></td>
<td>%QN</td>
<td>720p BluRay</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%Q.N</td>
<td>720p.BluRay</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%Q_N</td>
<td>720p_BluRay</td>
</tr>
<tr class="even">
<td class="align-right"><b>Year:</b></td>
<td>%Y</td>
<td>2010</td>
</tr>
<tr>
<td class="align-right"><b>Month:</b></td>
<td>%M</td>
<td>3</td>
</tr>
<tr class="even">
<td class="align-right">&nbsp;</td>
<td>%0M</td>
<td>03</td>
</tr>
<tr>
<td class="align-right"><b>Day:</b></td>
<td>%D</td>
<td>9</td>
</tr>
<tr class="even">
<td class="align-right">&nbsp;</td>
<td>%0D</td>
<td>09</td>
</tr>
<tr>
<td class="align-right"><i class="sgicon-info" title="Multi-episode style is ignored"></i> <b>Release Name:</b></td>
<td>%RN</td>
<td>Show.Name.2010.03.09.HDTV.XviD-RLSGROUP</td>
</tr>
<tr class="even">
<td class="align-right"><i class="sgicon-info" title="if RLSGROUP is not detected, 'SickGear' is used"></i> <b>Release Group:</b></td>
<td>-%RG</td>
<td>RLSGROUP</td>
</tr>
<tr>
<td class="align-right"><i class="sgicon-info" title="Add 'proper' to name if episode is a proper or repack"></i> <b>Release Type:</b></td>
<td>%RT</td>
<td>PROPER</td>
</tr>
</tbody>
</table>
<br />
</div>
</div><!-- /naming_abd_custom -->
</div>
</fieldset>
<fieldset class="component-group-list">
<div class="component-group-list">
<div id="naming_abd_example_div">
<div class="component-group-desc episode-sample">
<h3>Air-by-date sample:</h3>
</div>
<div class="example">
<span class="jumbo" id="naming_abd_example">&nbsp;</span>
</div>
<br />
</div>
</div>
</fieldset>
<div class="field-pair right">
<input type="submit" class="btn config_submitter" value="Save Changes"><br />
</div>
</div><!-- /naming_abd_different -->
<% ######################## %>
<% ## End of Air-by-Date ## %>
<% ## ## %>
<% ## Start of Sports ## %>
<% ######################## %>
<div class="component-group-desc">
<p>Sport episode naming.</p>
</div>
<div class="field-pair right">
<label for="naming_custom_sports">
<span class="component-title">Custom sports</span>
<span class="component-desc">
<input type="checkbox" class="enabler" id="naming_custom_sports" name="naming_custom_sports" #if $sickbeard.NAMING_CUSTOM_SPORTS then $checked else ''#/>
<p>name sports shows differently than regular shows</p>
</span>
</label>
</div>
<div id="content_naming_custom_sports">
<fieldset class="component-group-list">
<div class="field-pair right">
<label for="name_sports_presets">
<span class="component-title">Sports name pattern</span>
<span class="component-desc">
<select id="name_sports_presets" class="form-control input-sm">
#set is_sports_custom = True
#for $cur_preset in $naming.name_sports_presets:
#set $tmp = $naming.test_name($cur_preset)
#if $sickbeard.NAMING_SPORTS_PATTERN == $cur_preset:
#set is_sports_custom = False
#end if
<option id="$cur_preset" #if $sickbeard.NAMING_SPORTS_PATTERN == $cur_preset then $selected else ''#>$os.path.join($tmp['dir'], $tmp['name'])</option>
#end for
<option id="$sickbeard.NAMING_SPORTS_PATTERN" #if $is_sports_custom then $selected else ''#>Custom...</option>
</select>
</span>
</label>
<div id="naming_sports_custom">
<div class="field-pair">
<label for="naming_sports_pattern">
<span class="component-title"></span>
<span class="component-desc">
<input type="text" name="naming_sports_pattern" id="naming_sports_pattern" value="$sickbeard.NAMING_SPORTS_PATTERN" class="form-control input-sm input350 custom-pattern">
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_sports_key" title="Toggle Sports Naming Legend" class="legend" />
</span>
</label>
</div>
<div id="naming_sports_key" style="display: none;">
<table class="Key">
<thead>
<tr>
<th class="align-right">Meaning</th>
<th>Pattern</th>
<th width="60%">Result</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="3">Use lower case if you want lower case names (eg. %sn, %e.n, %q_n etc)</th>
</tr>
</tfoot>
<tbody>
<tr>
<td class="align-right"><b>Show Name:</b></td>
<td>%SN</td>
<td>Show Name</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%S.N</td>
<td>Show.Name</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%S_N</td>
<td>Show_Name</td>
</tr>
<tr class="even">
<td class="align-right"><b>Sports Air Date:</b></td>
<td>%AD</td>
<td>9 Mar 2011</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%A.D</td>
<td>9.Mar.2011</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%A_D</td>
<td>9_Mar_2011</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%A-D</td>
<td>9-Mar-2011</td>
</tr>
<tr class="even">
<td class="align-right"><b>Episode Name:</b></td>
<td>%EN</td>
<td>Episode Name</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%E.N</td>
<td>Episode.Name</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%E_N</td>
<td>Episode_Name</td>
</tr>
<tr>
<td class="align-right"><b>Quality:</b></td>
<td>%QN</td>
<td>720p BluRay</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%Q.N</td>
<td>720p.BluRay</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%Q_N</td>
<td>720p_BluRay</td>
</tr>
<tr class="even">
<td class="align-right"><b>Year:</b></td>
<td>%Y</td>
<td>2010</td>
</tr>
<tr>
<td class="align-right"><b>Month:</b></td>
<td>%M</td>
<td>3</td>
</tr>
<tr class="even">
<td class="align-right">&nbsp;</td>
<td>%0M</td>
<td>03</td>
</tr>
<tr>
<td class="align-right"><b>Day:</b></td>
<td>%D</td>
<td>9</td>
</tr>
<tr class="even">
<td class="align-right">&nbsp;</td>
<td>%0D</td>
<td>09</td>
</tr>
<tr>
<td class="align-right"><i class="sgicon-info" title="Multi-episode style is ignored"></i> <b>Release Name:</b></td>
<td>%RN</td>
<td>Show.Name.9th.Mar.2011.HDTV.XviD-RLSGROUP</td>
</tr>
<tr class="even">
<td class="align-right"><i class="sgicon-info" title="If RLSGROUP is not detected, 'SickGear' is used"></i> <b>Release Group:</b></td>
<td>-%RG</td>
<td>RLSGROUP</td>
</tr>
<tr>
<td class="align-right"><i class="sgicon-info" title="Add 'proper' to name if episode is a proper or repack"></i> <b>Release Type:</b></td>
<td>%RT</td>
<td>PROPER</td>
</tr>
</tbody>
</table>
<br />
</div>
</div><!-- /naming_sports_custom -->
</div>
</fieldset>
<fieldset class="component-group-list">
<div class="component-group-list">
<div id="naming_sports_example_div">
<div class="component-group-desc episode-sample">
<h3>Sports sample:</h3>
</div>
<div class="example">
<span class="jumbo" id="naming_sports_example">&nbsp;</span>
</div>
<br />
</div>
</div>
</fieldset>
<div class="field-pair right">
<input type="submit" class="btn config_submitter" value="Save Changes"><br />
</div>
</div><!-- /naming_sports_different -->
<% #################### %>
<% ## End of Sports ## %>
<% ## ## %>
<% ## Start of Anime ## %>
<% #################### %>
<div class="component-group-desc">
<p>Anime episode naming.</p>
</div>
<!-- naming_anime_custom -->
<div class="field-pair right">
<label for="naming_custom_anime">
<span class="component-title">Custom anime</span>
<span class="component-desc">
<input type="checkbox" class="enabler" id="naming_custom_anime" name="naming_custom_anime" #if $sickbeard.NAMING_CUSTOM_ANIME then $checked else ''#/>
<p>name anime shows differently than regular shows</p>
</span>
</label>
</div>
<div id="content_naming_custom_anime">
<fieldset class="component-group-list">
<div class="field-pair right">
<label for="name_anime_presets">
<span class="component-title">Anime name pattern</span>
<span class="component-desc">
<select id="name_anime_presets" class="form-control input-sm">
#set is_anime_custom = True
#for $cur_preset in $naming.name_anime_presets:
#set $tmp = $naming.test_name($cur_preset)
#if $sickbeard.NAMING_ANIME_PATTERN == $cur_preset:
#set is_anime_custom = False
#end if
<option id="$cur_preset" #if $sickbeard.NAMING_ANIME_PATTERN == $cur_preset then $selected else ''#>$os.path.join($tmp['dir'], $tmp['name'])</option>
#end for
<option id="$sickbeard.NAMING_ANIME_PATTERN" #if $is_anime_custom then $selected else ''#>Custom...</option>
</select>
</span>
</label>
<div id="naming_anime_custom">
<div class="field-pair">
<label for="naming_anime_pattern">
<span class="component-title"></span>
<span class="component-desc">
<input type="text" name="naming_anime_pattern" id="naming_anime_pattern" value="$sickbeard.NAMING_ANIME_PATTERN" class="form-control input-sm input350 custom-pattern">
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_anime_key" title="Toggle Anime Naming Legend" class="legend" />
</span>
</label>
</div>
<div id="naming_anime_key" style="display: none;">
<table class="Key">
<thead>
<tr>
<th class="align-right">Meaning</th>
<th>Pattern</th>
<th width="60%">Result</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="3">Use lower case if you want lower case names (eg. %sn, %e.n, %q_n etc)</th>
</tr>
</tfoot>
<tbody>
<tr>
<td class="align-right"><b>Show Name:</b></td>
<td>%SN</td>
<td>Show Name</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%S.N</td>
<td>Show.Name</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%S_N</td>
<td>Show_Name</td>
</tr>
<tr class="even">
<td class="align-right"><b>Season Number:</b></td>
<td>%S</td>
<td>2</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%0S</td>
<td>02</td>
</tr>
<tr class="even">
<td class="align-right"><b>XEM Season Number:</b></td>
<td>%XMS</td>
<td>2</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%0XMS</td>
<td>02</td>
</tr>
<tr class="even">
<td class="align-right"><b>Episode Number:</b></td>
<td>%E</td>
<td>3</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%0E</td>
<td>03</td>
</tr>
<tr class="even">
<td class="align-right"><b>XEM Episode Number:</b></td>
<td>%XME</td>
<td>3</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%0XME</td>
<td>03</td>
</tr>
<tr class="even">
<td class="align-right"><b>Episode Name:</b></td>
<td>%EN</td>
<td>Episode Name</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%E.N</td>
<td>Episode.Name</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%E_N</td>
<td>Episode_Name</td>
</tr>
<tr>
<td class="align-right"><b>Quality:</b></td>
<td>%QN</td>
<td>720p BluRay</td>
</tr>
<tr class="even">
<td>&nbsp;</td>
<td>%Q.N</td>
<td>720p.BluRay</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>%Q_N</td>
<td>720p_BluRay</td>
</tr>
<tr class="even">
<td class="align-right"><i class="sgicon-info" title="Multi-episode style is ignored"></i> <b>Release Name:</b></td>
<td>%RN</td>
<td>Show.Name.S02E03.HDTV.XviD-RLSGROUP</td>
</tr>
<tr>
<td class="align-right"><i class="sgicon-info" title="If RLSGROUP is not detected, 'SickGear' is used"></i> <b>Release Group:</b></td>
<td>[%RG]</td>
<td>RLSGROUP</td>
</tr>
<tr class="even">
<td class="align-right"><i class="sgicon-info" title="Add 'proper' to name if episode is a proper or repack"></i> <b>Release Type:</b></td>
<td>%RT</td>
<td>PROPER</td>
</tr>
<tr class="even">
<td class="align-right"><b>Version:</b></td>
<td>%V</td>
<td>2</td>
</tr>
</tbody>
</table>
<br />
</div>
</div><!-- /naming_anime_custom -->
<div class="field-pair">
<label for="naming_anime_multi_ep">
<span class="component-title">Multi episode style</span>
<span class="component-desc">
<select id="naming_anime_multi_ep" name="naming_anime_multi_ep" class="form-control input-sm">
#for $cur_multi_ep in sorted($multiEpStrings.items(), key=lambda x: x[1]):
<option value="$cur_multi_ep[0]" #if $sickbeard.NAMING_ANIME_MULTI_EP == $cur_multi_ep[0] then $selected else ''#>$cur_multi_ep[1]</option>
#end for
</select>
</span>
</label>
</div>
</div>
</fieldset>
<fieldset class="component-group-list">
<div id="naming_example_anime_div">
<div class="component-group-desc episode-sample">
<h3>Single anime sample:</h3>
</div>
<div class="example">
<span class="jumbo" id="naming_example_anime">&nbsp;</span>
</div>
<br />
</div>
<div id="naming_example_multi_anime_div">
<div class="component-group-desc episode-sample">
<h3>Multi anime sample:</h3>
</div>
<div class="example">
<span class="jumbo" id="naming_example_multi_anime">&nbsp;</span>
</div>
<br />
</div>
</fieldset>
<fieldset class="component-group-list right">
<div class="field-pair">
<label for="naming_anime">
<span class="component-title">Add absolute numbering</span>
<span class="component-desc">
<input type="radio" name="naming_anime" id="naming_anime" value="1" #if $sickbeard.NAMING_ANIME == 1 then $checked else ''#/>
<p>add the absolute number to the season/episode format</p>
<p class="note">(eg. S15E45 - 310 vs S15E45)</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="naming_anime_only">
<span class="component-title">Only absolute numbering</span>
<span class="component-desc">
<input type="radio" name="naming_anime" id="naming_anime_only" value="2" #if $sickbeard.NAMING_ANIME == 2 then $checked else ''#/>
<p>replace season/episode format with absolute numbering</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="naming_anime_none">
<span class="component-title">No absolute numbering</span>
<span class="component-desc">
<input type="radio" name="naming_anime" id="naming_anime_none" value="3" #if $sickbeard.NAMING_ANIME == 3 then $checked else ''#/>
<p>do <b>not</b> include absolute numbering</p>
</span>
</label>
</div>
</fieldset>
<div class="field-pair right">
<input type="submit" class="btn config_submitter" value="Save Changes"><br />
</div>
</div><!-- /naming_anime_different -->
<div></div>
</div><!-- /component-group2 //-->
<% ######################################################################################### %>
<% ######################################################################################### %>
<% ## TAB 3 ## %>
<% ######################################################################################### %>
<% ######################################################################################### %>
<div id="core-component-group3" class="component-group">
<div class="component-group-desc">
<h3>Metadata</h3>
<p>These are files associated to a TV show in the form of images and text that, where supported, enhance the viewing experience.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label>
<span class="component-title">Metadata target</span>
<span class="component-desc">
#set $m_dict = $metadata.get_metadata_generator_dict()
<select id="metadataType" class="form-control input-sm">
#for ($cur_name, $cur_generator) in sorted($m_dict.items()):
<option value="$cur_generator.get_id()">$cur_name</option>
#end for
</select>
<span>multiple targets can be configured in turn</span>
</span>
</label>
</div>
<div class="field-pair">
<span>Choose data files to create with the following toggle options...</span>
</div>
<div class="field-pair">
#for ($cur_name, $cur_generator) in $m_dict.items():
#set $cur_metadata_inst = $sickbeard.metadata_provider_dict[$cur_generator.name]
#set $cur_id = $cur_generator.get_id()
<div class="metadataDiv" id="$cur_id">
<div class="metadata_options_wrapper">
<h4>Create:</h4>
<div class="metadata_options">
<label for="${cur_id}_show_metadata"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_show_metadata" #if $cur_metadata_inst.show_metadata then $checked else ''#/>&nbsp;Show Metadata</label>
<label for="${cur_id}_episode_metadata"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_episode_metadata" #if $cur_metadata_inst.episode_metadata then $checked else ''#/>&nbsp;Episode Metadata</label>
<label for="${cur_id}_fanart"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_fanart" #if $cur_metadata_inst.fanart then $checked else ''#/>&nbsp;Show Fanart</label>
<label for="${cur_id}_poster"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_poster" #if $cur_metadata_inst.poster then $checked else ''#/>&nbsp;Show Poster</label>
<label for="${cur_id}_banner"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_banner" #if $cur_metadata_inst.banner then $checked else ''#/>&nbsp;Show Banner</label>
<label for="${cur_id}_episode_thumbnails"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_episode_thumbnails" #if $cur_metadata_inst.episode_thumbnails then $checked else ''#/>&nbsp;Episode Thumbnails</label>
<label for="${cur_id}_season_posters"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_season_posters" #if $cur_metadata_inst.season_posters then $checked else ''#/>&nbsp;Season Posters</label>
<label for="${cur_id}_season_banners"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_season_banners" #if $cur_metadata_inst.season_banners then $checked else ''#/>&nbsp;Season Banners</label>
<label for="${cur_id}_season_all_poster"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_season_all_poster" #if $cur_metadata_inst.season_all_poster then $checked else ''#/>&nbsp;Season All Poster</label>
<label for="${cur_id}_season_all_banner"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_season_all_banner" #if $cur_metadata_inst.season_all_banner then $checked else ''#/>&nbsp;Season All Banner</label>
</div>
</div>
<div class="metadata_example_wrapper">
<h4>Results:</h4>
<div class="metadata_example">
<label for="${cur_id}_show_metadata"><span id="${cur_id}_eg_show_metadata">$cur_metadata_inst.eg_show_metadata</span></label>
<label for="${cur_id}_episode_metadata"><span id="${cur_id}_eg_episode_metadata">$cur_metadata_inst.eg_episode_metadata</span></label>
<label for="${cur_id}_fanart"><span id="${cur_id}_eg_fanart">$cur_metadata_inst.eg_fanart</span></label>
<label for="${cur_id}_poster"><span id="${cur_id}_eg_poster">$cur_metadata_inst.eg_poster</span></label>
<label for="${cur_id}_banner"><span id="${cur_id}_eg_banner">$cur_metadata_inst.eg_banner</span></label>
<label for="${cur_id}_episode_thumbnails"><span id="${cur_id}_eg_episode_thumbnails">$cur_metadata_inst.eg_episode_thumbnails</span></label>
<label for="${cur_id}_season_posters"><span id="${cur_id}_eg_season_posters">$cur_metadata_inst.eg_season_posters</span></label>
<label for="${cur_id}_season_banners"><span id="${cur_id}_eg_season_banners">$cur_metadata_inst.eg_season_banners</span></label>
<label for="${cur_id}_season_all_poster"><span id="${cur_id}_eg_season_all_poster">$cur_metadata_inst.eg_season_all_poster</span></label>
<label for="${cur_id}_season_all_banner"><span id="${cur_id}_eg_season_all_banner">$cur_metadata_inst.eg_season_all_banner</span></label>
</div>
</div>
<input type="hidden" name="${cur_id}_data" id="${cur_id}_data" value="$cur_metadata_inst.get_config()">
</div>
#end for
<div class="clearfix"></div><br />
<input type="submit" class="btn config_submitter" value="Save Changes"><br />
</fieldset>
</div><!-- /component-group3 //-->
<br />
<h6 class="pull-right"><b>All non-absolute folder locations are relative to <span class="path">$sickbeard.DATA_DIR</span></b> </h6>
<input type="submit" class="btn pull-left config_submitter button" value="Save Changes">
</form>
</div>
</div>
<div class="clearfix"></div>
<script type="text/javascript" charset="utf-8">
<!--
jQuery('#config-components').tabs();
jQuery('#tv_download_dir').fileBrowser({ title: 'Select completed TV downloads directory' });
//-->
</script>
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl')