#import sickgear #from sickgear.common import * #from sickgear.helpers import anon_url #from sickgear import config #from sickgear import metadata #from sickgear.metadata.generic import GenericMetadata #from sickgear import naming ## #set global $title = 'Config - Media Process' #set global $header = 'Media Process' #set global $sbPath = '../..' #set global $topmenu = 'config' ## #import os.path #include $os.path.join($sickgear.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="save_post_processing" method="post"> $xsrf_form_html <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 where files are downloading in progress</p> </span> <span class="component-desc"> <input type="text" name="tv_download_dir" id="tv_download_dir" value="$sickgear.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. <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)[$sickgear.PROCESS_METHOD == $curAction] <option value="$curAction" $process_method>$process_method_text[$curAction]</option> #end for </select> <span>... 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 $sickgear.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 sabTosickgear for SABnzbd, or NZBMedia for NZBGET unless you're an expert</p> </span> </label> </div> <div class="field-pair"> <label for="mediaprocess_interval"> <span class="component-title">Run media process every</span> <span class="component-desc"> <input type="text" name="mediaprocess_interval" id="mediaprocess_interval" value="$sickgear.MEDIAPROCESS_INTERVAL" 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 $sickgear.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="process_positive_log"> <span class="component-title">If no media to process</span> <span class="component-desc"> <input type="checkbox" name="process_positive_log" id="process_positive_log" #if $sickgear.PROCESS_POSITIVE_LOG then $checked else ''#> <p>use positive log message "<i class="grey-text">Success, no media to process.</i>"</p> <p class="clear-left note">some setups require the old warning "<i class="grey-text">Failed! Did not process any files.</i>"</p> </span> </label> </div> #if False: """ <div class="field-pair"> <label for="sg_extra_scripts"> <span class="component-title">Extra scripts</span> <span class="component-desc"> #set $extra_scripts = '|'.join(sickgear.EXTRA_SCRIPTS) #if $extra_scripts <input type="text" name="extra_scripts" value="$extra_scripts" class="form-control input-sm input350"> <div class="clear-left"> <p class="note">2019 July: sickgear scripts are deprecated. <span class="grey-text">Click image below for the parameters to update in each script, after editing, move each from the above field to below</span></p> </div> #else <input type="hidden" name="extra_scripts" value=""> #end if <input type="text" name="sg_extra_scripts" id="sg_extra_scripts" value="<%= '|'.join(sickgear.SG_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"> <div class="clear-left"> <p class="note">scripts are called after built-in post processing. <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">Param</th> <th>Description</th> <th style="width:5%"></th> <th class="text-center">Param</th> <th>Description</th> </tr> </thead> <tfoot> <tr> <th colspan="5">These parameters are passed in order 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> </td><td class="text-center"><span class="grey-text">5</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> </td><td class="text-center"><span class="grey-text">6</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>#if $extra_scripts#*<span class="grey-text">NEW</span>* #end if#source TV info id</td> <td> </td><td class="text-center"><span class="grey-text">7</span></td><td>episode air date</td></tr> <tr class="even"><td class="text-center"><span class="grey-text">4</span></td><td>production id (i.e show id)</td> <td> </td><td class="text-center"><span class="grey-text"> </span></td><td> </td></tr> </tbody> </table> </div> </div> </span> </label> </div> """ #end if <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 $sickgear.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 = ($sickgear.SKIP_REMOVED_FILES, $IGNORED)[not $sickgear.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 $sickgear.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 $sickgear.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 episode files</span> <span class="component-desc"> <input type="checkbox" name="rename_episodes" id="rename_episodes" #if $sickgear.RENAME_EPISODES == True then $checked else ''#> <p>using the Episode Naming settings</p> </span> </label> </div> <div class="field-pair"> <label for="rename_tba_episodes"> <span class="component-title">Rename "TBA" named files</span> <span class="component-desc"> <input type="checkbox" name="rename_tba_episodes" id="rename_tba_episodes" #if $sickgear.RENAME_TBA_EPISODES == True then $checked else ''#> <p>if the TV info episode name changes</p> </span> </label> </div> <div class="field-pair"> <label for="rename_name_changed_episodes"> <span class="component-title">Rename any named file</span> <span class="component-desc"> <input type="checkbox" name="rename_name_changed_episodes" id="rename_name_changed_episodes" #if $sickgear.RENAME_NAME_CHANGED_EPISODES == True then $checked else ''#> <p>if the TV info episode name changes</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 $sickgear.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 $sickgear.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"> <p class="note" style="margin-bottom:20px">failed download handling does not require a particular client</p> <ul id="failed-guide"> <li class="title note">guidance specific for SABnzbd setup</li> <li class="action note">menu "Switches" ... [disable] "<em class="boldest">Abort jobs that cannot be completed</em>"</li> <li class="action note">menu "Switches" ... [disable] "<em class="boldest">Post-Process Only Verified Jobs</em>"</li> <li class="action note">menu "Special" ... [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 $sickgear.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 $sickgear.NAMING_PATTERN == $cur_preset: #set is_custom = False #end if <option id="$cur_preset" #if $sickgear.NAMING_PATTERN == $cur_preset then $selected else ''#>$os.path.join($tmp['dir'], $tmp['name'])</option> #end for <option id="$sickgear.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="$sickgear.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"> </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> </td> <td>%S.N</td> <td>Show.Name</td> </tr> <tr> <td> </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> </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> </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> </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> </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> </td> <td>%E.N</td> <td>Episode.Name</td> </tr> <tr class="even"> <td> </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> </td> <td>%Q.N</td> <td>720p.BluRay</td> </tr> <tr> <td> </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 $sickgear.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 $sickgear.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"> </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"> </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 $sickgear.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 $sickgear.NAMING_ABD_PATTERN == $cur_preset: #set is_abd_custom = False #end if <option id="$cur_preset" #if $sickgear.NAMING_ABD_PATTERN == $cur_preset then $selected else ''#>$os.path.join($tmp['dir'], $tmp['name'])</option> #end for <option id="$sickgear.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="$sickgear.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"> </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> </td> <td>%S.N</td> <td>Show.Name</td> </tr> <tr> <td> </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> </td> <td>%A.D</td> <td>2010.03.09</td> </tr> <tr class="even"> <td> </td> <td>%A_D</td> <td>2010_03_09</td> </tr> <tr> <td> </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> </td> <td>%E.N</td> <td>Episode.Name</td> </tr> <tr class="even"> <td> </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> </td> <td>%Q.N</td> <td>720p.BluRay</td> </tr> <tr> <td> </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"> </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"> </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"> </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 $sickgear.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 $sickgear.NAMING_SPORTS_PATTERN == $cur_preset: #set is_sports_custom = False #end if <option id="$cur_preset" #if $sickgear.NAMING_SPORTS_PATTERN == $cur_preset then $selected else ''#>$os.path.join($tmp['dir'], $tmp['name'])</option> #end for <option id="$sickgear.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="$sickgear.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"> </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> </td> <td>%S.N</td> <td>Show.Name</td> </tr> <tr> <td> </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> </td> <td>%A.D</td> <td>9.Mar.2011</td> </tr> <tr class="even"> <td> </td> <td>%A_D</td> <td>9_Mar_2011</td> </tr> <tr> <td> </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> </td> <td>%E.N</td> <td>Episode.Name</td> </tr> <tr class="even"> <td> </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> </td> <td>%Q.N</td> <td>720p.BluRay</td> </tr> <tr> <td> </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"> </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"> </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"> </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 $sickgear.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 $sickgear.NAMING_ANIME_PATTERN == $cur_preset: #set is_anime_custom = False #end if <option id="$cur_preset" #if $sickgear.NAMING_ANIME_PATTERN == $cur_preset then $selected else ''#>$os.path.join($tmp['dir'], $tmp['name'])</option> #end for <option id="$sickgear.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="$sickgear.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"> </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> </td> <td>%S.N</td> <td>Show.Name</td> </tr> <tr> <td> </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> </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> </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> </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> </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> </td> <td>%E.N</td> <td>Episode.Name</td> </tr> <tr class="even"> <td> </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> </td> <td>%Q.N</td> <td>720p.BluRay</td> </tr> <tr> <td> </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 $sickgear.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"> </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"> </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 $sickgear.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 $sickgear.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 $sickgear.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 = $sickgear.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 ''#/> 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 ''#/> 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 ''#/> 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 ''#/> 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 ''#/> 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 ''#/> 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 ''#/> 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 ''#/> 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 ''#/> 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 ''#/> 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">$sickgear.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($sickgear.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl')