From a1feed4ea019387b31df49dfb0e04f329c4ee4b3 Mon Sep 17 00:00:00 2001 From: miigotu <miigotu@gmail.com> Date: Mon, 17 Jul 2017 15:52:29 -0700 Subject: [PATCH] Fix issue with variable in static_url call, add more static calls (#3921) * Fix issue with variable in static_url call, add more static calls (they work with normal paths to add the root/port) * Send include_version=False to avoide static lookup error. This should probably be a custom method added to the rh * Fix rest of srRoot in main.mako * Fix static_url calls to match other template replacements (remove wrapping spaces) * Small fix, sbPID and sickbeard logging levels are INT * Fix custom.css error in log --- gui/slick/views/addShows.mako | 8 +- gui/slick/views/addShows_addExistingShow.mako | 4 +- gui/slick/views/addShows_newShow.mako | 4 +- gui/slick/views/addShows_trendingShows.mako | 4 +- gui/slick/views/apiBuilder.mako | 61 +++--- gui/slick/views/config_general.mako | 2 +- gui/slick/views/config_providers.mako | 4 +- gui/slick/views/config_subtitles.mako | 6 +- gui/slick/views/displayShow.mako | 28 +-- gui/slick/views/editShow.mako | 2 +- gui/slick/views/history.mako | 16 +- gui/slick/views/inc_home_showList.mako | 6 +- gui/slick/views/layouts/main.mako | 182 ++++++++++-------- gui/slick/views/manage_episodeStatuses.mako | 2 +- gui/slick/views/manage_failedDownloads.mako | 4 +- gui/slick/views/manage_manageSearches.mako | 2 +- gui/slick/views/schedule.mako | 16 +- gui/slick/views/testRename.mako | 2 +- gui/slick/views/trendingShows.mako | 2 +- sickbeard/webserve.py | 3 +- sickbeard/webserveInit.py | 1 + 21 files changed, 188 insertions(+), 171 deletions(-) diff --git a/gui/slick/views/addShows.mako b/gui/slick/views/addShows.mako index 9db5cd7a8..519d02818 100644 --- a/gui/slick/views/addShows.mako +++ b/gui/slick/views/addShows.mako @@ -12,7 +12,7 @@ </div> <div class="row"> <div class="col-md-12"> - <a href="${srRoot}/addShows/newShow/" id="btnNewShow" class="btn btn-large"> + <a href="${static_url("addShows/newShow", include_version=False)}" id="btnNewShow" class="btn btn-large"> <div class="button"><div class="add-list-icon-addnewshow"></div></div> <div class="buttontext"> <h3>${_('Add New Show')}</h3> @@ -24,7 +24,7 @@ <br/> <div class="row"> <div class="col-md-12"> - <a href="${srRoot}/addShows/trendingShows/?traktList=anticipated" id="btnNewShow" class="btn btn-large"> + <a href="${static_url("addShows/trendingShows/?traktList=anticipated", include_version=False)}" id="btnNewShow" class="btn btn-large"> <div class="button"><div class="add-list-icon-addtrakt"></div></div> <div class="buttontext"> <h3>${_('Add From Trakt Lists')}</h3> @@ -36,7 +36,7 @@ <br/> <div class="row"> <div class="col-md-12"> - <a href="${srRoot}/addShows/popularShows/" id="btnNewShow" class="btn btn-large"> + <a href="${static_url("addShows/popularShows", include_version=False)}" id="btnNewShow" class="btn btn-large"> <div class="button"><div class="add-list-icon-addimdb"></div></div> <div class="buttontext"> <h3>${_('Add From IMDB\'s Popular Shows')}</h3> @@ -48,7 +48,7 @@ <br/> <div class="row"> <div class="col-md-12"> - <a href="${srRoot}/addShows/existingShows/" id="btnExistingShow" class="btn btn-large"> + <a href="${static_url("addShows/existingShows", include_version=False)}" id="btnExistingShow" class="btn btn-large"> <div class="button"><div class="add-list-icon-addexistingshow"></div></div> <div class="buttontext"> <h3>${_('Add Existing Shows')}</h3> diff --git a/gui/slick/views/addShows_addExistingShow.mako b/gui/slick/views/addShows_addExistingShow.mako index eb3bfad8b..2b2afbd77 100644 --- a/gui/slick/views/addShows_addExistingShow.mako +++ b/gui/slick/views/addShows_addExistingShow.mako @@ -1,7 +1,7 @@ <%inherit file="/layouts/main.mako"/> <%block name="scripts"> - <script type="text/javascript" src="${ static_url('js/plotTooltip.js') }"></script> - <script type="text/javascript" src="${ static_url('js/blackwhite.js') }"></script> + <script type="text/javascript" src="${static_url('js/plotTooltip.js')}"></script> + <script type="text/javascript" src="${static_url('js/blackwhite.js')}"></script> </%block> <%block name="content"> <div class="col-md-12"> diff --git a/gui/slick/views/addShows_newShow.mako b/gui/slick/views/addShows_newShow.mako index 7201a2288..83f498859 100644 --- a/gui/slick/views/addShows_newShow.mako +++ b/gui/slick/views/addShows_newShow.mako @@ -4,8 +4,8 @@ from sickbeard.helpers import anon_url %> <%block name="scripts"> - <script type="text/javascript" src="${ static_url('js/plotTooltip.js') }"></script> - <script type="text/javascript" src="${ static_url('js/blackwhite.js') }"></script> + <script type="text/javascript" src="${static_url('js/plotTooltip.js')}"></script> + <script type="text/javascript" src="${static_url('js/blackwhite.js')}"></script> </%block> <%block name="tabs"> diff --git a/gui/slick/views/addShows_trendingShows.mako b/gui/slick/views/addShows_trendingShows.mako index d17958766..8fcaf0c6b 100644 --- a/gui/slick/views/addShows_trendingShows.mako +++ b/gui/slick/views/addShows_trendingShows.mako @@ -3,8 +3,8 @@ import sickbeard %> <%block name="scripts"> - <script type="text/javascript" src="${ static_url('js/plotTooltip.js') }"></script> - <script type="text/javascript" src="${ static_url('js/blackwhite.js') }"></script> + <script type="text/javascript" src="${static_url('js/plotTooltip.js')}"></script> + <script type="text/javascript" src="${static_url('js/blackwhite.js')}"></script> </%block> <%block name="content"> <div id="tabs"> diff --git a/gui/slick/views/apiBuilder.mako b/gui/slick/views/apiBuilder.mako index 0d9b7503e..896901066 100644 --- a/gui/slick/views/apiBuilder.mako +++ b/gui/slick/views/apiBuilder.mako @@ -1,5 +1,6 @@ <%! import json + from requests.compat import urljoin import sickbeard %> @@ -27,8 +28,8 @@ <![endif]--> <meta name="msapplication-TileColor" content="#FFFFFF"> - <meta name="msapplication-TileImage" content="${ static_url('images/ico/favicon-144.png') }"> - <meta name="msapplication-config" content="${ static_url('css/browserconfig.xml') }"> + <meta name="msapplication-TileImage" content="${static_url('images/ico/favicon-144.png')}"> + <meta name="msapplication-config" content="${static_url('css/browserconfig.xml')}"> <meta data-var="srRoot" data-content="${srRoot}"> <meta data-var="themeSpinner" data-content="${('', '-dark')[sickbeard.THEME_NAME == 'dark']}"> @@ -52,31 +53,31 @@ <meta data-var="sickbeard.FANART_BACKGROUND_OPACITY" data-content="${sickbeard.FANART_BACKGROUND_OPACITY}"> <%block name="metas" /> - <link rel="shortcut icon" href="${ static_url('images/ico/favicon.ico') }"> - <link rel="icon" sizes="16x16 32x32 64x64" href="${ static_url('images/ico/favicon.ico') }"> - <link rel="icon" type="image/png" sizes="196x196" href="${ static_url('images/ico/favicon-196.png') }"> - <link rel="icon" type="image/png" sizes="160x160" href="${ static_url('images/ico/favicon-160.png') }"> - <link rel="icon" type="image/png" sizes="96x96" href="${ static_url('images/ico/favicon-96.png') }"> - <link rel="icon" type="image/png" sizes="64x64" href="${ static_url('images/ico/favicon-64.png') }"> - <link rel="icon" type="image/png" sizes="32x32" href="${ static_url('images/ico/favicon-32.png') }"> - <link rel="icon" type="image/png" sizes="16x16" href="${ static_url('images/ico/favicon-16.png') }"> - <link rel="apple-touch-icon" sizes="152x152" href="${ static_url('images/ico/favicon-152.png') }"> - <link rel="apple-touch-icon" sizes="144x144" href="${ static_url('images/ico/favicon-144.png') }"> - <link rel="apple-touch-icon" sizes="120x120" href="${ static_url('images/ico/favicon-120.png') }"> - <link rel="apple-touch-icon" sizes="114x114" href="${ static_url('images/ico/favicon-114.png') }"> - <link rel="apple-touch-icon" sizes="76x76" href="${ static_url('images/ico/favicon-76.png') }"> - <link rel="apple-touch-icon" sizes="72x72" href="${ static_url('images/ico/favicon-72.png') }"> - <link rel="apple-touch-icon" href="${ static_url('images/ico/favicon-57.png') }"> + <link rel="shortcut icon" href="${static_url('images/ico/favicon.ico')}"> + <link rel="icon" sizes="16x16 32x32 64x64" href="${static_url('images/ico/favicon.ico')}"> + <link rel="icon" type="image/png" sizes="196x196" href="${static_url('images/ico/favicon-196.png')}"> + <link rel="icon" type="image/png" sizes="160x160" href="${static_url('images/ico/favicon-160.png')}"> + <link rel="icon" type="image/png" sizes="96x96" href="${static_url('images/ico/favicon-96.png')}"> + <link rel="icon" type="image/png" sizes="64x64" href="${static_url('images/ico/favicon-64.png')}"> + <link rel="icon" type="image/png" sizes="32x32" href="${static_url('images/ico/favicon-32.png')}"> + <link rel="icon" type="image/png" sizes="16x16" href="${static_url('images/ico/favicon-16.png')}"> + <link rel="apple-touch-icon" sizes="152x152" href="${static_url('images/ico/favicon-152.png')}"> + <link rel="apple-touch-icon" sizes="144x144" href="${static_url('images/ico/favicon-144.png')}"> + <link rel="apple-touch-icon" sizes="120x120" href="${static_url('images/ico/favicon-120.png')}"> + <link rel="apple-touch-icon" sizes="114x114" href="${static_url('images/ico/favicon-114.png')}"> + <link rel="apple-touch-icon" sizes="76x76" href="${static_url('images/ico/favicon-76.png')}"> + <link rel="apple-touch-icon" sizes="72x72" href="${static_url('images/ico/favicon-72.png')}"> + <link rel="apple-touch-icon" href="${static_url('images/ico/favicon-57.png')}"> - <link rel="stylesheet" type="text/css" href="${ static_url('css/vender.min.css') }"/> - <link rel="stylesheet" type="text/css" href="${ static_url('css/browser.css') }" /> - <link rel="stylesheet" type="text/css" href="${ static_url('css/lib/jquery-ui-1.10.4.custom.min.css') }" /> - <link rel="stylesheet" type="text/css" href="${ static_url('css/lib/jquery.qtip-2.2.1.min.css') }"/> - <link rel="stylesheet" type="text/css" href="${ static_url('css/style.css') }"/> - <link rel="stylesheet" type="text/css" href="${ static_url('css/print.css') }" /> + <link rel="stylesheet" type="text/css" href="${static_url('css/vender.min.css')}"/> + <link rel="stylesheet" type="text/css" href="${static_url('css/browser.css')}" /> + <link rel="stylesheet" type="text/css" href="${static_url('css/lib/jquery-ui-1.10.4.custom.min.css')}" /> + <link rel="stylesheet" type="text/css" href="${static_url('css/lib/jquery.qtip-2.2.1.min.css')}"/> + <link rel="stylesheet" type="text/css" href="${static_url('css/style.css')}"/> + <link rel="stylesheet" type="text/css" href="${static_url('css/print.css')}" /> %if sickbeard.THEME_NAME != "light": - <link rel="stylesheet" type="text/css" href="${ static_url('css/${sickbeard.THEME_NAME}.css') }" /> + <link rel="stylesheet" type="text/css" href="${static_url(urljoin('css/', '.'.join((sickbeard.THEME_NAME, 'css'))))}" /> %endif <%block name="css" /> </head> @@ -91,8 +92,8 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="${srRoot}/apibuilder/" title="SickRage"> - <img alt="SickRage" src="${ static_url('images/sickrage.png') }" style="height: 50px;padding: 3px;" class="img-responsive pull-left" /> + <a class="navbar-brand" href="${static_url("apibuilder", include_version=False)}" title="SickRage"> + <img alt="SickRage" src="${static_url('images/sickrage.png')}" style="height: 50px;padding: 3px;" class="img-responsive pull-left" /> <p class="navbar-text hidden-xs">${title}</p> </a> </div> @@ -108,7 +109,7 @@ </div> <ul class="nav navbar-nav navbar-right"> - <li><a href="${srRoot}/home/">${_('Back to SickRage')}</a></li> + <li><a href="${static_url("home", include_version=False)}">${_('Back to SickRage')}</a></li> </ul> <form class="navbar-form navbar-right"> @@ -224,9 +225,9 @@ var episodes = ${ json.dumps(episodes) }; var commands = ${ json.dumps(sorted(commands)) }; </script> - <script type="text/javascript" src="${ static_url('js/vender.min.js') }"></script> - <script type="text/javascript" src="${ static_url('js/core.min.js') }"></script> - <script type="text/javascript" src="${ static_url('js/apibuilder.js') }"></script> + <script type="text/javascript" src="${static_url('js/vender.min.js')}"></script> + <script type="text/javascript" src="${static_url('js/core.min.js')}"></script> + <script type="text/javascript" src="${static_url('js/apibuilder.js')}"></script> </body> </html> diff --git a/gui/slick/views/config_general.mako b/gui/slick/views/config_general.mako index acca46bcd..18f53c0da 100644 --- a/gui/slick/views/config_general.mako +++ b/gui/slick/views/config_general.mako @@ -660,7 +660,7 @@ </div> <div class="row"> <div class="col-md-12"> - <label>${_('you can try all the features of the API')} <a href="${srRoot}/apibuilder/">${_('here')}</a></label> + <label>${_('you can try all the features of the API')} <a href="${static_url("apibuilder", include_version=False)}">${_('here')}</a></label> </div> </div> </div> diff --git a/gui/slick/views/config_providers.mako b/gui/slick/views/config_providers.mako index ccfc57194..aaebae5c7 100644 --- a/gui/slick/views/config_providers.mako +++ b/gui/slick/views/config_providers.mako @@ -6,7 +6,7 @@ %> <%block name="scripts"> - <script type="text/javascript" src="${ static_url('js/configProviders.js') }"></script> + <script type="text/javascript" src="${static_url('js/configProviders.js')}"></script> <script type="text/javascript"> $(document).ready(function() { $('#config-components').tabs(); @@ -86,7 +86,7 @@ <input type="checkbox" id="enable_${curName}" class="provider_enabler" ${('', 'checked="checked"')[curProvider.is_enabled() is True]}/> <a href="${anon_url(curURL)}" class="imgLink" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;"> - <img src="${ static_url('images/providers/' + curProvider.image_name()) }" + <img src="${static_url('images/providers/' + curProvider.image_name())}" alt="${curProvider.name}" title="${curProvider.name}" width="16" height="16" style="vertical-align:middle;"/> </a> diff --git a/gui/slick/views/config_subtitles.mako b/gui/slick/views/config_subtitles.mako index 6bd387c49..312a68f19 100644 --- a/gui/slick/views/config_subtitles.mako +++ b/gui/slick/views/config_subtitles.mako @@ -14,10 +14,10 @@ preventDuplicates: true, prePopulate: [${','.join("{\"id\": \"" + code + "\", name: \"" + subtitles.name_from_code(code) + "\"}" for code in subtitles.wanted_languages())}], resultsFormatter: function(item) { - return "<li><img src='${srRoot}/images/subtitles/flags/" + item.id + ".png' onError='this.onerror=null;this.src=\"${ static_url('images/flags/unknown.png') }\";' style='vertical-align: middle !important;' /> " + item.name + "</li>" + return "<li><img src='${srRoot}/images/subtitles/flags/" + item.id + ".png' onError='this.onerror=null;this.src=\"${static_url('images/flags/unknown.png')}\";' style='vertical-align: middle !important;' /> " + item.name + "</li>" }, tokenFormatter: function(item) { - return "<li><img src='${srRoot}/images/subtitles/flags/" + item.id + ".png' onError='this.onerror=null;this.src=\"${ static_url('images/flags/unknown.png') }\";' style='vertical-align: middle !important;' /> " + item.name + "</li>" + return "<li><img src='${srRoot}/images/subtitles/flags/" + item.id + ".png' onError='this.onerror=null;this.src=\"${static_url('images/flags/unknown.png')}\";' style='vertical-align: middle !important;' /> " + item.name + "</li>" } }); }); @@ -295,7 +295,7 @@ <input type="checkbox" id="enable_${curService['name']}" class="service_enabler" ${('', 'checked="checked"')[curService['enabled'] is True]}/> <a href="${anon_url(curService['url'])}" class="imgLink" target="_new"> - <img src="${ static_url('images/subtitles/' + curService['image']) }" + <img src="${static_url('images/subtitles/' + curService['image'])}" alt="${curService['url']}" title="${curService['url']}" width="16" height="16" style="vertical-align:middle;"/> </a> diff --git a/gui/slick/views/displayShow.mako b/gui/slick/views/displayShow.mako index 1aa12781c..d33c9bee1 100644 --- a/gui/slick/views/displayShow.mako +++ b/gui/slick/views/displayShow.mako @@ -13,11 +13,11 @@ %> <%block name="scripts"> - <script type="text/javascript" src="${ static_url('js/lib/jquery.bookmarkscroll.js') }"></script> - <script type="text/javascript" src="${ static_url('js/plotTooltip.js') }"></script> - <script type="text/javascript" src="${ static_url('js/sceneExceptionsTooltip.js') }"></script> - <script type="text/javascript" src="${ static_url('js/ratingTooltip.js') }"></script> - <script type="text/javascript" src="${ static_url('js/ajaxEpSearch.js') }"></script> + <script type="text/javascript" src="${static_url('js/lib/jquery.bookmarkscroll.js')}"></script> + <script type="text/javascript" src="${static_url('js/plotTooltip.js')}"></script> + <script type="text/javascript" src="${static_url('js/sceneExceptionsTooltip.js')}"></script> + <script type="text/javascript" src="${static_url('js/ratingTooltip.js')}"></script> + <script type="text/javascript" src="${static_url('js/ajaxEpSearch.js')}"></script> </%block> <%block name="content"> @@ -131,7 +131,7 @@ % else: % if 'country_codes' in show.imdb_info: % for country in show.imdb_info['country_codes'].split('|'): - <img src="${ static_url('images/blank.png') }" class="country-flag flag-${country}" width="16" height="11" style="margin-left: 3px; vertical-align:middle;" /> + <img src="${static_url('images/blank.png')}" class="country-flag flag-${country}" width="16" height="11" style="margin-left: 3px; vertical-align:middle;" /> % endfor % endif <span> @@ -142,7 +142,7 @@ </span> <a href="${anon_url('http://www.imdb.com/title/', _show.imdbid)}" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;" title="http://www.imdb.com/title/${show.imdbid}"><span class="displayshow-icon-imdb" /></a> % endif - <a href="${anon_url(sickbeard.indexerApi(_show.indexer).config['show_url'], _show.indexerid)}" onclick="window.open(this.href, '_blank'); return false;" title="${sickbeard.indexerApi(show.indexer).config["show_url"] + str(show.indexerid)}"><img alt="${sickbeard.indexerApi(show.indexer).name}" src="${ static_url('images/indexers/' + sickbeard.indexerApi(show.indexer).config["icon"]) }" style="margin-top: -1px; vertical-align:middle;"/></a> + <a href="${anon_url(sickbeard.indexerApi(_show.indexer).config['show_url'], _show.indexerid)}" onclick="window.open(this.href, '_blank'); return false;" title="${sickbeard.indexerApi(show.indexer).config["show_url"] + str(show.indexerid)}"><img alt="${sickbeard.indexerApi(show.indexer).name}" src="${static_url('images/indexers/' + sickbeard.indexerApi(show.indexer).config["icon"])}" style="margin-top: -1px; vertical-align:middle;"/></a> % if xem_numbering or xem_absolute_numbering: <a href="${anon_url('http://thexem.de/search?q=', _show.name)}" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;" title="http://thexem.de/search?q-${show.name}"><span alt="" class="displayshow-icon-xem" /></a> % endif @@ -253,7 +253,7 @@ <% info_flag = subtitles.code_from_code(show.lang) if show.lang else '' %> <tr> <td class="showLegend">${_('Info Language')}:</td> - <td><img src="${ static_url('images/subtitles/flags/' + info_flag + '.png') }" width="16" height="11" alt="${show.lang}" title="${show.lang}" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png') }';"/></td> + <td><img src="${static_url('images/subtitles/flags/' + info_flag + '.png') }" width="16" height="11" alt="${show.lang}" title="${show.lang}" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png')}';"/></td> </tr> % if sickbeard.USE_SUBTITLES: <tr> @@ -451,8 +451,8 @@ <input type="checkbox" class="epCheck" id="${str(epResult[b"season"])+'x'+str(epResult[b"episode"])}" name="${str(epResult[b"season"]) +"x"+str(epResult[b"episode"])}" /> % endif </td> - <td align="center"><img src="${ static_url('images/' + ("nfo-no.gif", "nfo.gif")[epResult[b"hasnfo"]]) }" alt="${("N", "Y")[epResult[b"hasnfo"]]}" width="23" height="11" /></td> - <td align="center"><img src="${ static_url('images/' + ("tbn-no.gif", "tbn.gif")[epResult[b"hastbn"]]) }" alt="${("N", "Y")[epResult[b"hastbn"]]}" width="23" height="11" /></td> + <td align="center"><img src="${static_url('images/' + ("nfo-no.gif", "nfo.gif")[epResult[b"hasnfo"]])}" alt="${("N", "Y")[epResult[b"hasnfo"]]}" width="23" height="11" /></td> + <td align="center"><img src="${static_url('images/' + ("tbn-no.gif", "tbn.gif")[epResult[b"hastbn"]])}" alt="${("N", "Y")[epResult[b"hastbn"]]}" width="23" height="11" /></td> <td align="center" class="episode"> <% text = str(epResult[b'episode']) @@ -488,9 +488,9 @@ </td> <td class="col-name"> % if epResult[b"description"] != "" and epResult[b"description"] is not None: - <img src="${ static_url('images/info32.png') }" width="16" height="16" class="plotInfo" alt="" id="plot_info_${str(show.indexerid)}_${str(epResult[b"season"])}_${str(epResult[b"episode"])}" /> + <img src="${static_url('images/info32.png')}" width="16" height="16" class="plotInfo" alt="" id="plot_info_${str(show.indexerid)}_${str(epResult[b"season"])}_${str(epResult[b"episode"])}" /> % else: - <img src="${ static_url('images/info32.png') }" width="16" height="16" class="plotInfoNone" alt="" /> + <img src="${static_url('images/info32.png')}" width="16" height="16" class="plotInfoNone" alt="" /> % endif ${epResult[b"name"]} </td> @@ -530,10 +530,10 @@ % if flag.strip(): % if flag != 'und': <a class="epRetrySubtitlesSearch" href="retrySearchSubtitles?show=${show.indexerid}&season=${epResult[b"season"]}&episode=${epResult[b"episode"]}&lang=${flag}"> - <img src="${ static_url('images/subtitles/flags/' + flag + '.png') }" data-image-url="${ static_url('images/subtitles/flags/' + flag + '.png') }" width="16" height="11" alt="${subtitles.name_from_code(flag)}" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png') }';" /> + <img src="${static_url('images/subtitles/flags/' + flag + '.png') }" data-image-url="${ static_url('images/subtitles/flags/' + flag + '.png') }" width="16" height="11" alt="${subtitles.name_from_code(flag)}" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png')}';" /> </a> % else: - <img src="${ static_url('images/subtitles/flags/' + flag + '.png') }" width="16" height="11" alt="${subtitles.name_from_code(flag)}" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png') }';" /> + <img src="${static_url('images/subtitles/flags/' + flag + '.png') }" width="16" height="11" alt="${subtitles.name_from_code(flag)}" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png')}';" /> % endif % endif % endfor diff --git a/gui/slick/views/editShow.mako b/gui/slick/views/editShow.mako index c84a03c85..c692be032 100644 --- a/gui/slick/views/editShow.mako +++ b/gui/slick/views/editShow.mako @@ -12,7 +12,7 @@ <%block name="scripts"> % if show.is_anime: - <script type="text/javascript" src="${ static_url('js/blackwhite.js') }"></script> + <script type="text/javascript" src="${static_url('js/blackwhite.js')}"></script> % endif </%block> diff --git a/gui/slick/views/history.mako b/gui/slick/views/history.mako index 0944412fc..39dbc1b66 100644 --- a/gui/slick/views/history.mako +++ b/gui/slick/views/history.mako @@ -77,7 +77,7 @@ <td class="tvShow" width="35%"><a href="${srRoot}/home/displayShow?show=${hItem[b"show_id"]}#S${hItem[b"season"]}E${hItem[b"episode"]}">${hItem[b"show_name"]} - ${"S%02i" % int(hItem[b"season"])}${"E%02i" % int(hItem[b"episode"])} ${('', '<span class="quality Proper">Proper</span>')[b"proper" in hItem[b"resource"].lower() or "repack" in hItem[b"resource"].lower()]}</a></td> <td align="center" ${('', 'class="subtitles_column"')[curStatus == SUBTITLED]}> % if curStatus == SUBTITLED: - <img width="16" height="11" style="vertical-align:middle;" src="${ static_url('images/subtitles/flags/' + hItem[b'resource'] + '.png') }" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png') }';"> + <img width="16" height="11" style="vertical-align:middle;" src="${static_url('images/subtitles/flags/' + hItem[b'resource'] + '.png') }" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png')}';"> % endif <span style="cursor: help; vertical-align:middle;" title="${ek(os.path.basename, hItem[b'resource'])}">${statusStrings[curStatus]}</span> </td> @@ -93,12 +93,12 @@ % if curStatus in [SNATCHED, FAILED]: <% provider = providers.getProviderClass(GenericProvider.make_id(hItem[b"provider"])) %> % if provider is not None: - <img src="${ static_url('images/providers/' + provider.image_name()) }" width="16" height="16" style="vertical-align:middle;" /> <span style="vertical-align:middle;">${provider.name}</span> + <img src="${static_url('images/providers/' + provider.image_name())}" width="16" height="16" style="vertical-align:middle;" /> <span style="vertical-align:middle;">${provider.name}</span> % else: - <img src="${ static_url('images/providers/missing.png') }" width="16" height="16" style="vertical-align:middle;" title="missing provider"/> <span style="vertical-align:middle;">${_('Missing Provider')}</span> + <img src="${static_url('images/providers/missing.png')}" width="16" height="16" style="vertical-align:middle;" title="missing provider"/> <span style="vertical-align:middle;">${_('Missing Provider')}</span> % endif % else: - <img src="${ static_url('images/subtitles/' + hItem[b'provider'] + '.png') }" width="16" height="16" style="vertical-align:middle;" /> <span style="vertical-align:middle;">${hItem[b"provider"].capitalize()}</span> + <img src="${static_url('images/subtitles/' + hItem[b'provider'] + '.png')}" width="16" height="16" style="vertical-align:middle;" /> <span style="vertical-align:middle;">${hItem[b"provider"].capitalize()}</span> % endif % endif % endif @@ -150,9 +150,9 @@ % if curStatus in [SNATCHED, FAILED]: <% provider = providers.getProviderClass(GenericProvider.make_id(action[b"provider"])) %> % if provider is not None: - <img src="${ static_url('images/providers/' + provider.image_name()) }" width="16" height="16" style="vertical-align:middle;" alt="${provider.name}" style="cursor: help;" title="${provider.name}: ${ek(os.path.basename, action[b"resource"])}"/> + <img src="${static_url('images/providers/' + provider.image_name())}" width="16" height="16" style="vertical-align:middle;" alt="${provider.name}" style="cursor: help;" title="${provider.name}: ${ek(os.path.basename, action[b"resource"])}"/> % else: - <img src="${ static_url('images/providers/missing.png') }" width="16" height="16" style="vertical-align:middle;" alt="${_('missing provider')}" title="${_('missing provider')}"/> + <img src="${static_url('images/providers/missing.png')}" width="16" height="16" style="vertical-align:middle;" alt="${_('missing provider')}" title="${_('missing provider')}"/> % endif % endif % endfor @@ -174,9 +174,9 @@ % for action in sorted(hItem[b"actions"]): <% curStatus, curQuality = Quality.splitCompositeStatus(int(action[b"action"])) %> % if curStatus == SUBTITLED: - <img src="${ static_url('images/subtitles/' + action[b'provider'] + '.png') }" width="16" height="16" style="vertical-align:middle;" alt="${action[b"provider"]}" title="${action[b"provider"].capitalize()}: ${ek(os.path.basename, action[b"resource"])}"/> + <img src="${static_url('images/subtitles/' + action[b'provider'] + '.png')}" width="16" height="16" style="vertical-align:middle;" alt="${action[b"provider"]}" title="${action[b"provider"].capitalize()}: ${ek(os.path.basename, action[b"resource"])}"/> <span style="vertical-align:middle;"> / </span> - <img width="16" height="11" style="vertical-align:middle !important;" src="${ static_url('images/subtitles/flags/' + action[b'resource'] + '.png') }" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png') }';"> + <img width="16" height="11" style="vertical-align:middle !important;" src="${static_url('images/subtitles/flags/' + action[b'resource'] + '.png') }" onError="this.onerror=null;this.src='${ static_url('images/flags/unknown.png')}';"> % endif % endfor diff --git a/gui/slick/views/inc_home_showList.mako b/gui/slick/views/inc_home_showList.mako index fe271cd16..38592ef11 100644 --- a/gui/slick/views/inc_home_showList.mako +++ b/gui/slick/views/inc_home_showList.mako @@ -145,7 +145,7 @@ % if curShow.network: <span title="${curShow.network}"><img class="show-network-image" src="" data-src="${srRoot}/showPoster/?show=${curShow.indexerid}&which=network" alt="${curShow.network}" title="${curShow.network}" /></span> % else: - <span title="${_('No Network')}"><img class="show-network-image" src="" data-src="${ static_url('images/network/nonetwork.png') }" alt="No Network" title="No Network" /></span> + <span title="${_('No Network')}"><img class="show-network-image" src="" data-src="${static_url('images/network/nonetwork.png')}" alt="No Network" title="No Network" /></span> % endif </td> <td class="show-table"> @@ -176,7 +176,7 @@ </thead> <tfoot class="hidden-print"> <tr> - <th rowspan="1" colspan="1" align="center"><a href="${srRoot}/addShows/">${_('Add')} ${(_('Show'), _('Anime'))[curListType == 'Anime']}</a></th> + <th rowspan="1" colspan="1" align="center"><a href="${static_url("addShows", include_version=False)}">${_('Add')} ${(_('Show'), _('Anime'))[curListType == 'Anime']}</a></th> <th> </th> <th> </th> <th> </th> @@ -345,7 +345,7 @@ <span title="${curShow.network}" class="hidden-print"><img id="network" width="54" height="27" src="" data-src="${srRoot}/showPoster/?show=${curShow.indexerid}&which=network" alt="${curShow.network}" title="${curShow.network}" /></span> <span class="visible-print-inline">${curShow.network}</span> % else: - <span title="No Network" class="hidden-print"><img id="network" width="54" height="27" src="" data-src="${ static_url('images/network/nonetwork.png') }" alt="No Network" title="No Network" /></span> + <span title="No Network" class="hidden-print"><img id="network" width="54" height="27" src="" data-src="${static_url('images/network/nonetwork.png')}" alt="No Network" title="No Network" /></span> <span class="visible-print-inline">${_('No Network')}</span> % endif </td> diff --git a/gui/slick/views/layouts/main.mako b/gui/slick/views/layouts/main.mako index 1dabc3033..7b06eab0b 100644 --- a/gui/slick/views/layouts/main.mako +++ b/gui/slick/views/layouts/main.mako @@ -1,6 +1,7 @@ <%! import re import datetime + from requests.compat import urljoin import sickbeard from sickrage.helper.common import pretty_file_size from sickrage.show.Show import Show @@ -12,8 +13,6 @@ import resource except ImportError: has_resource_module = False - - srRoot = sickbeard.WEB_ROOT %> <!DOCTYPE html> <html lang="${sickbeard.GUI_LANG}"> @@ -42,10 +41,10 @@ <![endif]--> <meta name="msapplication-TileColor" content="#FFFFFF"> - <meta name="msapplication-TileImage" content="${ static_url('images/ico/favicon-144.png') }"> - <meta name="msapplication-config" content="${ static_url('css/browserconfig.xml') }"> + <meta name="msapplication-TileImage" content="${static_url('images/ico/favicon-144.png')}"> + <meta name="msapplication-config" content="${static_url('css/browserconfig.xml')}"> - <meta data-var="srRoot" data-content="${srRoot}"> + <meta data-var="srRoot" data-content="${sickbeard.WEB_ROOT}"> <meta data-var="themeSpinner" data-content="${('', '-dark')[sickbeard.THEME_NAME == 'dark']}"> <meta data-var="anonURL" data-content="${sickbeard.ANON_REDIRECT}"> @@ -69,39 +68,40 @@ <meta data-var="sickbeard.FANART_BACKGROUND_OPACITY" data-content="${sickbeard.FANART_BACKGROUND_OPACITY}"> <%block name="metas" /> - <link rel="shortcut icon" href="${ static_url('images/ico/favicon.ico') }"> - <link rel="icon" sizes="16x16 32x32 64x64" href="${ static_url('images/ico/favicon.ico') }"> - <link rel="icon" type="image/png" sizes="196x196" href="${ static_url('images/ico/favicon-196.png') }"> - <link rel="icon" type="image/png" sizes="160x160" href="${ static_url('images/ico/favicon-160.png') }"> - <link rel="icon" type="image/png" sizes="96x96" href="${ static_url('images/ico/favicon-96.png') }"> - <link rel="icon" type="image/png" sizes="64x64" href="${ static_url('images/ico/favicon-64.png') }"> - <link rel="icon" type="image/png" sizes="32x32" href="${ static_url('images/ico/favicon-32.png') }"> - <link rel="icon" type="image/png" sizes="16x16" href="${ static_url('images/ico/favicon-16.png') }"> - <link rel="apple-touch-icon" sizes="152x152" href="${ static_url('images/ico/favicon-152.png') }"> - <link rel="apple-touch-icon" sizes="144x144" href="${ static_url('images/ico/favicon-144.png') }"> - <link rel="apple-touch-icon" sizes="120x120" href="${ static_url('images/ico/favicon-120.png') }"> - <link rel="apple-touch-icon" sizes="114x114" href="${ static_url('images/ico/favicon-114.png') }"> - <link rel="apple-touch-icon" sizes="76x76" href="${ static_url('images/ico/favicon-76.png') }"> - <link rel="apple-touch-icon" sizes="72x72" href="${ static_url('images/ico/favicon-72.png') }"> - <link rel="apple-touch-icon" href="${ static_url('images/ico/favicon-57.png') }"> + <link rel="shortcut icon" href="${static_url('images/ico/favicon.ico')}"> + <link rel="icon" sizes="16x16 32x32 64x64" href="${static_url('images/ico/favicon.ico')}"> + <link rel="icon" type="image/png" sizes="196x196" href="${static_url('images/ico/favicon-196.png')}"> + <link rel="icon" type="image/png" sizes="160x160" href="${static_url('images/ico/favicon-160.png')}"> + <link rel="icon" type="image/png" sizes="96x96" href="${static_url('images/ico/favicon-96.png')}"> + <link rel="icon" type="image/png" sizes="64x64" href="${static_url('images/ico/favicon-64.png')}"> + <link rel="icon" type="image/png" sizes="32x32" href="${static_url('images/ico/favicon-32.png')}"> + <link rel="icon" type="image/png" sizes="16x16" href="${static_url('images/ico/favicon-16.png')}"> + <link rel="apple-touch-icon" sizes="152x152" href="${static_url('images/ico/favicon-152.png')}"> + <link rel="apple-touch-icon" sizes="144x144" href="${static_url('images/ico/favicon-144.png')}"> + <link rel="apple-touch-icon" sizes="120x120" href="${static_url('images/ico/favicon-120.png')}"> + <link rel="apple-touch-icon" sizes="114x114" href="${static_url('images/ico/favicon-114.png')}"> + <link rel="apple-touch-icon" sizes="76x76" href="${static_url('images/ico/favicon-76.png')}"> + <link rel="apple-touch-icon" sizes="72x72" href="${static_url('images/ico/favicon-72.png')}"> + <link rel="apple-touch-icon" href="${static_url('images/ico/favicon-57.png')}"> - <link rel="stylesheet" type="text/css" href="${ static_url('css/vender.min.css') }"/> - <link rel="stylesheet" type="text/css" href="${ static_url('css/browser.css') }" /> - <link rel="stylesheet" type="text/css" href="${ static_url('css/font-awesome.min.css') }" /> - <link rel="stylesheet" type="text/css" href="${ static_url('css/lib/jquery-ui-1.10.4.custom.min.css') }" /> - <link rel="stylesheet" type="text/css" href="${ static_url('css/lib/jquery.qtip-2.2.1.min.css') }"/> - <link rel="stylesheet" type="text/css" href="${ static_url('css/style.css') }"/> - <link rel="stylesheet" type="text/css" href="${ static_url('css/print.css') }" /> - <link rel="stylesheet" type="text/css" href="${ static_url('css/country-flags.css') }"/> + <link rel="stylesheet" type="text/css" href="${static_url('css/vender.min.css')}"/> + <link rel="stylesheet" type="text/css" href="${static_url('css/browser.css')}" /> + <link rel="stylesheet" type="text/css" href="${static_url('css/font-awesome.min.css')}" /> + <link rel="stylesheet" type="text/css" href="${static_url('css/lib/jquery-ui-1.10.4.custom.min.css')}" /> + <link rel="stylesheet" type="text/css" href="${static_url('css/lib/jquery.qtip-2.2.1.min.css')}"/> + <link rel="stylesheet" type="text/css" href="${static_url('css/style.css')}"/> + <link rel="stylesheet" type="text/css" href="${static_url('css/print.css')}" /> + <link rel="stylesheet" type="text/css" href="${static_url('css/country-flags.css')}"/> % if sickbeard.THEME_NAME != "light": - <link rel="stylesheet" type="text/css" href="${ static_url('css/${sickbeard.THEME_NAME}.css') }" /> + <link rel="stylesheet" type="text/css" href="${static_url(urljoin('css/', '.'.join((sickbeard.THEME_NAME, 'css'))))}" /> % endif <%block name="css" /> % if sickbeard.CUSTOM_CSS: - <link rel="stylesheet" type="text/css" href="${ static_url('ui/custom.css') }" /> + ## TODO: check if this exists first + <link rel="stylesheet" type="text/css" href="${static_url('ui/custom.css', include_version=False)}" /> % endif </head> <body data-controller="${controller}" data-action="${action}"> @@ -127,23 +127,25 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="${srRoot}/home/" title="SickRage"><img alt="SickRage" src="${ static_url('images/sickrage.png') }" style="height: 50px;padding: 3px;" class="img-responsive pull-left" /></a> + <a class="navbar-brand" href="${static_url("home", include_version=False)}" title="SickRage"><img alt="SickRage" src="${static_url('images/sickrage.png')}" + style="height: 50px;padding: 3px;" + class="img-responsive pull-left" /></a> </div> % if srLogin: <div class="collapse navbar-collapse" id="collapsible-navbar"> <ul class="nav navbar-nav navbar-right"> <li id="NAVhome" class="navbar-split dropdown${('', ' active')[topmenu == 'home']}"> - <a href="${srRoot}/home/" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span>${_('Shows')}</span> + <a href="${static_url("home", include_version=False)}" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span>${_('Shows')}</span> <b class="caret"></b> </a> <ul class="dropdown-menu"> - <li><a href="${srRoot}/home/"><i class="fa fa-fw fa-home"></i> ${_('Show List')}</a></li> - <li><a href="${srRoot}/addShows/"><i class="fa fa-fw fa-television"></i> ${_('Add Shows')}</a></li> - <li><a href="${srRoot}/home/postprocess/"><i class="fa fa-fw fa-refresh"></i> ${_('Manual Post-Processing')}</a></li> + <li><a href="${static_url("home", include_version=False)}"><i class="fa fa-fw fa-home"></i> ${_('Show List')}</a></li> + <li><a href="${static_url("addShows", include_version=False)}"><i class="fa fa-fw fa-television"></i> ${_('Add Shows')}</a></li> + <li><a href="${static_url("home/postprocess", include_version=False)}"><i class="fa fa-fw fa-refresh"></i> ${_('Manual Post-Processing')}</a></li> % if sickbeard.SHOWS_RECENT: <li role="separator" class="divider"></li> % for recentShow in sickbeard.SHOWS_RECENT: - <li><a href="${srRoot}/home/displayShow?show=${recentShow['indexerid']}"><i class="fa fa-fw fa-television"></i> ${recentShow['name']|trim,h}</a></li> + <li><a href="${static_url("home/displayShow?show=${recentShow['indexerid']}", include_version=False)}><i class="fa fa-fw fa-television"></i> ${recentShow['name']|trim,h}</a></li> % endfor % endif </ul> @@ -151,58 +153,58 @@ </li> <li id="NAVschedule"${('', ' class="active"')[topmenu == 'schedule']}> - <a href="${srRoot}/schedule/">${_('Schedule')}</a> + <a href="${static_url("schedule", include_version=False)}">${_('Schedule')}</a> </li> <li id="NAVhistory"${('', ' class="active"')[topmenu == 'history']}> - <a href="${srRoot}/history/">${_('History')}</a> + <a href="${static_url("history", include_version=False)}">${_('History')}</a> </li> <li id="NAVmanage" class="navbar-split dropdown${('', ' active')[topmenu == 'manage']}"> - <a href="${srRoot}/manage/episodeStatuses/" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span>${_('Manage')}</span> + <a href="${static_url("manage/episodeStatuses", include_version=False)}" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span>${_('Manage')}</span> <b class="caret"></b> </a> <ul class="dropdown-menu"> - <li><a href="${srRoot}/manage/"><i class="fa fa-fw fa-pencil"></i> ${_('Mass Update')}</a></li> - <li><a href="${srRoot}/manage/backlogOverview/"><i class="fa fa-fw fa-binoculars"></i> ${_('Backlog Overview')}</a></li> - <li><a href="${srRoot}/manage/manageSearches/"><i class="fa fa-fw fa-search"></i> ${_('Manage Searches')}</a></li> - <li><a href="${srRoot}/manage/episodeStatuses/"><i class="fa fa-fw fa-gavel"></i> ${_('Episode Status Management')}</a></li> + <li><a href="${static_url("manage", include_version=False)}"><i class="fa fa-fw fa-pencil"></i> ${_('Mass Update')}</a></li> + <li><a href="${static_url("manage/backlogOverview", include_version=False)}"><i class="fa fa-fw fa-binoculars"></i> ${_('Backlog Overview')}</a></li> + <li><a href="${static_url("manage/manageSearches", include_version=False)}"><i class="fa fa-fw fa-search"></i> ${_('Manage Searches')}</a></li> + <li><a href="${static_url("manage/episodeStatuses", include_version=False)}"><i class="fa fa-fw fa-gavel"></i> ${_('Episode Status Management')}</a></li> % if sickbeard.USE_PLEX_SERVER and sickbeard.PLEX_SERVER_HOST != "": - <li><a href="${srRoot}/home/updatePLEX/"><i class="menu-icon-plex"></i> ${_('Update PLEX')}</a></li> + <li><a href="${static_url("home/updatePLEX", include_version=False)}"><i class="menu-icon-plex"></i> ${_('Update PLEX')}</a></li> % endif % if sickbeard.USE_KODI and sickbeard.KODI_HOST != "": - <li><a href="${srRoot}/home/updateKODI/"><i class="menu-icon-kodi"></i> ${_('Update KODI')}</a></li> + <li><a href="${static_url("home/updateKODI", include_version=False)}"><i class="menu-icon-kodi"></i> ${_('Update KODI')}</a></li> % endif % if sickbeard.USE_EMBY and sickbeard.EMBY_HOST != "" and sickbeard.EMBY_APIKEY != "": - <li><a href="${srRoot}/home/updateEMBY/"><i class="menu-icon-emby"></i> ${_('Update Emby')}</a></li> + <li><a href="${static_url("home/updateEMBY", include_version=False)}"><i class="menu-icon-emby"></i> ${_('Update Emby')}</a></li> % endif % if manage_torrents_url: <li><a href="${manage_torrents_url}" target="_blank"><i class="fa fa-fw fa-download"></i> ${_('Manage Torrents')}</a></li> % endif % if sickbeard.USE_FAILED_DOWNLOADS: - <li><a href="${srRoot}/manage/failedDownloads/"><i class="fa fa-fw fa-thumbs-o-down"></i> ${_('Failed Downloads')}</a></li> + <li><a href="${static_url("manage/failedDownloads", include_version=False)}"><i class="fa fa-fw fa-thumbs-o-down"></i> ${_('Failed Downloads')}</a></li> % endif % if sickbeard.USE_SUBTITLES: - <li><a href="${srRoot}/manage/subtitleMissed/"><i class="fa fa-fw fa-language"></i> ${_('Missed Subtitle Management')}</a></li> + <li><a href="${static_url("manage/subtitleMissed", include_version=False)}"><i class="fa fa-fw fa-language"></i> ${_('Missed Subtitle Management')}</a></li> % endif </ul> <div style="clear:both;"></div> </li> <li id="NAVconfig" class="navbar-split dropdown${('', ' active')[topmenu == 'config']}"> - <a href="${srRoot}/config/" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span class="visible-xs-inline">Config</span><img src="${ static_url('images/menu/system18.png') }" class="navbaricon hidden-xs" /> + <a href="${static_url("config", include_version=False) }" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span class="visible-xs-inline">Config</span><img src="${ static_url('images/menu/system18.png')}" class="navbaricon hidden-xs" /> <b class="caret"></b> </a> <ul class="dropdown-menu"> - <li><a href="${srRoot}/config/"><i class="fa fa-fw fa-question"></i> ${_('Help & Info')}</a></li> - <li><a href="${srRoot}/config/general/"><i class="fa fa-fw fa-cog"></i> ${_('General')}</a></li> - <li><a href="${srRoot}/config/backuprestore/"><i class="fa fa-fw fa-floppy-o"></i> ${_('Backup & Restore')}</a></li> - <li><a href="${srRoot}/config/search/"><i class="fa fa-fw fa-search"></i> ${_('Search Settings')}</a></li> - <li><a href="${srRoot}/config/providers/"><i class="fa fa-fw fa-plug"></i> ${_('Search Providers')}</a></li> - <li><a href="${srRoot}/config/subtitles/"><i class="fa fa-fw fa-language"></i> ${_('Subtitles Settings')}</a></li> - <li><a href="${srRoot}/config/postProcessing/"><i class="fa fa-fw fa-refresh"></i> ${_('Post Processing')}</a></li> - <li><a href="${srRoot}/config/notifications/"><i class="fa fa-fw fa-bell-o"></i> ${_('Notifications')}</a></li> - <li><a href="${srRoot}/config/anime/"><i class="fa fa-fw fa-eye"></i> ${_('Anime')}</a></li> + <li><a href="${static_url("config", include_version=False)}"><i class="fa fa-fw fa-question"></i> ${_('Help & Info')}</a></li> + <li><a href="${static_url("config/general", include_version=False)}"><i class="fa fa-fw fa-cog"></i> ${_('General')}</a></li> + <li><a href="${static_url("config/backuprestore", include_version=False)}"><i class="fa fa-fw fa-floppy-o"></i> ${_('Backup & Restore')}</a></li> + <li><a href="${static_url("config/search", include_version=False)}"><i class="fa fa-fw fa-search"></i> ${_('Search Settings')}</a></li> + <li><a href="${static_url("config/providers", include_version=False)}"><i class="fa fa-fw fa-plug"></i> ${_('Search Providers')}</a></li> + <li><a href="${static_url("config/subtitles", include_version=False)}"><i class="fa fa-fw fa-language"></i> ${_('Subtitles Settings')}</a></li> + <li><a href="${static_url("config/postProcessing", include_version=False)}"><i class="fa fa-fw fa-refresh"></i> ${_('Post Processing')}</a></li> + <li><a href="${static_url("config/notifications", include_version=False)}"><i class="fa fa-fw fa-bell-o"></i> ${_('Notifications')}</a></li> + <li><a href="${static_url("config/anime", include_version=False)}"><i class="fa fa-fw fa-eye"></i> ${_('Anime')}</a></li> </ul> <div style="clear:both;"></div> </li> @@ -219,31 +221,39 @@ toolsBadge = '' %> <li id="NAVsystem" class="navbar-split dropdown${('', ' active')[topmenu == 'system']}"> - <a href="${srRoot}/home/status/" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span class="visible-xs-inline">${_('Tools')}</span><img src="${ static_url('images/menu/system18-2.png') }" class="navbaricon hidden-xs" />${toolsBadge} + <a href="${static_url("home/status", include_version=False) }" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span class="visible-xs-inline">${_('Tools')}</span><img src="${ static_url('images/menu/system18-2.png')}" class="navbaricon hidden-xs" />${toolsBadge} <b class="caret"></b> </a> <ul class="dropdown-menu"> - <li><a href="${srRoot}/news/"><i class="fa fa-fw fa-newspaper-o"></i> ${_('News')}${newsBadge}</a></li> - <li><a href="${srRoot}/IRC/"><i class="fa fa-fw fa-hashtag"></i> ${_('IRC')}</a></li> - <li><a href="${srRoot}/changes/"><i class="fa fa-fw fa-globe"></i> ${_('Changelog')}</a></li> + <li><a href="${static_url("news", include_version=False)}"><i class="fa fa-fw fa-newspaper-o"></i> ${_('News')}${newsBadge}</a></li> + <li><a href="${static_url("IRC", include_version=False)}"><i class="fa fa-fw fa-hashtag"></i> ${_('IRC')}</a></li> + <li><a href="${static_url("changes", include_version=False)}"><i class="fa fa-fw fa-globe"></i> ${_('Changelog')}</a></li> <li><a href="https://github.com/SickRage/SickRage/wiki/Donations" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href); return false;"><i class="fa fa-fw fa-life-ring"></i> ${_('Support SickRage')}</a></li> <li role="separator" class="divider"></li> %if numErrors: - <li><a href="${srRoot}/errorlogs/"><i class="fa fa-fw fa-exclamation-circle"></i> ${_('View Errors')} <span class="badge btn-danger">${numErrors}</span></a></li> + <li><a href="${static_url("errorlogs", include_version=False)}"><i class="fa fa-fw fa-exclamation-circle"></i> ${_('View Errors')} <span class="badge btn-danger">${numErrors}</span></a></li> %endif %if numWarnings: - <li><a href="${srRoot}/errorlogs/?level=${sickbeard.logger.WARNING}"><i class="fa fa-fw fa-exclamation-triangle"></i> ${_('View Warnings')} <span class="badge btn-warning">${numWarnings}</span></a></li> + <li> + <a href="${static_url("errorlogs/?level={}".format(sickbeard.logger.WARNING), include_version=False)}"> + <i class="fa fa-fw fa-exclamation-triangle"></i> ${_('View Warnings')} <span class="badge btn-warning">${numWarnings}</span> + </a> + </li> %endif - <li><a href="${srRoot}/errorlogs/viewlog/"><i class="fa fa-fw fa-file-text-o"></i> ${_('View Log')}</a></li> + <li><a href="${static_url("errorlogs/viewlog", include_version=False)}"><i class="fa fa-fw fa-file-text-o"></i> ${_('View Log')}</a></li> <li role="separator" class="divider"></li> - <li><a href="${srRoot}/home/updateCheck?pid=${sbPID}"><i class="fa fa-fw fa-wrench"></i> ${_('Check For Updates')}</a></li> - <li><a href="${srRoot}/home/restart/?pid=${sbPID}" class="confirm restart"><i class="fa fa-fw fa-repeat"></i> ${_('Restart')}</a></li> - <li><a href="${srRoot}/home/shutdown/?pid=${sbPID}" class="confirm shutdown"><i class="fa fa-fw fa-power-off"></i> ${_('Shutdown')}</a></li> + <li><a href="${static_url("home/updateCheck?pid={}".format(sbPID), include_version=False)}><i class="fa fa-fw fa-wrench"></i> ${_('Check For Updates')}</a></li> + <li><a href="${static_url("home/restart/?pid={}".format(sbPID), include_version=False)}" class="confirm restart"><i + class="fa fa-fw fa-repeat"></i> ${_('Restart')}</a></li> + <li><a href="${static_url("home/shutdown/?pid={}".format(sbPID), include_version=False)}" class="confirm shutdown"><i class="fa \ + fa-fw \ + + fa-power-off"></i> ${_('Shutdown')}</a></li> % if srLogin: - <li><a href="${srRoot}/logout" class="confirm logout"><i class="fa fa-fw fa-sign-out"></i> ${_('Logout')}</a></li> + <li><a href="${static_url("logout", include_version=False)} class="confirm logout"><i class="fa fa-fw fa-sign-out"></i> ${_('Logout')}</a></li> % endif <li role="separator" class="divider"></li> - <li><a href="${srRoot}/home/status/"><i class="fa fa-fw fa-info-circle"></i> ${_('Server Status')}</a></li> + <li><a href="${static_url("home/status", include_version=False)}"><i class="fa fa-fw fa-info-circle"></i> ${_('Server Status')}</a></li> </ul> <div style="clear:both;"></div> </li> @@ -266,11 +276,11 @@ inner_first = True %> % for cur_link in menuItem['path']: - ${("·", "")[bool(inner_first)]}<a href="${srRoot}/${menuItem['path'][cur_link]}" class="inner ${menuItem.get('class', '')}">${cur_link}</a> + ${("·", "")[bool(inner_first)]}<a href="${static_url(menuItem['path'][cur_link], include_version=False)}" class="inner ${menuItem.get('class', '')}">${cur_link}</a> <% inner_first = False %> % endfor % else: - <a href="${srRoot}/${menuItem['path']}" class="btn ${('', ' confirm ')['confirm' in menuItem] + menuItem.get('class', '')}"> + <a href="${static_url(menuItem['path'], include_version=False)}" class="btn ${('', ' confirm ')['confirm' in menuItem] + menuItem.get('class', '')}"> <i class='${menuItem.get('icon', '')}'></i> ${menuItem['title']} </a> <% first = False %> @@ -322,7 +332,11 @@ <span class="footer-item"> <span class="footerhighlight">${ep_downloaded}</span> % if ep_snatched: - <span class="footerhighlight"><a href="${srRoot}/manage/episodeStatuses?whichStatus=2" title="${_('View overview of snatched episodes')}">+${ep_snatched}</a></span> ${_('Snatched')} + <span class="footerhighlight"> + <a href="${static_url("manage/episodeStatuses?whichStatus=2", include_version=False)} title="${_('View overview of snatched episodes')}"> + +${ep_snatched} + </a> + </span> ${_('Snatched')} % endif / <span class="footerhighlight">${ep_total}</span> ${_('Episodes Downloaded')} ${ep_percentage} </span> | @@ -341,20 +355,20 @@ </div> </div> </div> - <script type="text/javascript" src="${ static_url('js/vender.min.js') }"></script> - <script type="text/javascript" src="${ static_url('js/lib/jquery.form.min.js') }"></script> - <script type="text/javascript" src="${ static_url('js/lib/jquery.selectboxes.min.js') }"></script> - <script type="text/javascript" src="${ static_url('js/lib/formwizard.js') }"></script><!-- Can't be added to bower --> - <script type="text/javascript" src="${ static_url('js/parsers.js') }"></script> - <script type="text/javascript" src="${ static_url('js/rootDirs.js') }"></script> + <script type="text/javascript" src="${static_url('js/vender.min.js')}"></script> + <script type="text/javascript" src="${static_url('js/lib/jquery.form.min.js')}"></script> + <script type="text/javascript" src="${static_url('js/lib/jquery.selectboxes.min.js')}"></script> + <script type="text/javascript" src="${static_url('js/lib/formwizard.js')}"></script><!-- Can't be added to bower --> + <script type="text/javascript" src="${static_url('js/parsers.js')}"></script> + <script type="text/javascript" src="${static_url('js/rootDirs.js')}"></script> % if sickbeard.DEVELOPER: - <script type="text/javascript" src="${ static_url('js/core.js') }"></script> + <script type="text/javascript" src="${static_url('js/core.js')}"></script> % else: - <script type="text/javascript" src="${ static_url('js/core.min.js') }"></script> + <script type="text/javascript" src="${static_url('js/core.min.js')}"></script> % endif - <script type="text/javascript" src="${ static_url('js/lib/jquery.scrolltopcontrol-1.1.js') }"></script> - <script type="text/javascript" src="${ static_url('js/browser.js') }" charset="utf-8"></script> - <script type="text/javascript" src="${ static_url('js/ajaxNotifications.js') }"></script> + <script type="text/javascript" src="${static_url('js/lib/jquery.scrolltopcontrol-1.1.js')}"></script> + <script type="text/javascript" src="${static_url('js/browser.js')}" charset="utf-8"></script> + <script type="text/javascript" src="${static_url('js/ajaxNotifications.js')}"></script> % endif <%block name="scripts" /> </div> diff --git a/gui/slick/views/manage_episodeStatuses.mako b/gui/slick/views/manage_episodeStatuses.mako index c491b5413..98dae3aeb 100644 --- a/gui/slick/views/manage_episodeStatuses.mako +++ b/gui/slick/views/manage_episodeStatuses.mako @@ -6,7 +6,7 @@ <%block name="scripts"> % if whichStatus or (whichStatus and ep_counts): - <script type="text/javascript" src="${ static_url('js/manageEpisodeStatuses.js') }"></script> + <script type="text/javascript" src="${static_url('js/manageEpisodeStatuses.js')}"></script> % endif </%block> diff --git a/gui/slick/views/manage_failedDownloads.mako b/gui/slick/views/manage_failedDownloads.mako index 1842c6d7d..ee6dbcd3f 100644 --- a/gui/slick/views/manage_failedDownloads.mako +++ b/gui/slick/views/manage_failedDownloads.mako @@ -52,9 +52,9 @@ <td> <% provider = providers.getProviderClass(GenericProvider.make_id(hItem["provider"])) %> % if provider is not None: - <img src="${ static_url('images/providers/' + provider.image_name()) }" width="16" height="16" alt="${provider.name}" title="${provider.name}"/> + <img src="${static_url('images/providers/' + provider.image_name())}" width="16" height="16" alt="${provider.name}" title="${provider.name}"/> % else: - <img src="${ static_url('images/providers/missing.png') }" width="16" height="16" alt="Missing provider" title="Missing provider"/> + <img src="${static_url('images/providers/missing.png')}" width="16" height="16" alt="Missing provider" title="Missing provider"/> % endif </td> <td> diff --git a/gui/slick/views/manage_manageSearches.mako b/gui/slick/views/manage_manageSearches.mako index 45ec73fb3..b4f4f5f72 100644 --- a/gui/slick/views/manage_manageSearches.mako +++ b/gui/slick/views/manage_manageSearches.mako @@ -3,7 +3,7 @@ import sickbeard %> <%block name="scripts"> -<script type="text/javascript" src="${ static_url('js/plotTooltip.js') }"></script> +<script type="text/javascript" src="${static_url('js/plotTooltip.js')}"></script> </%block> <%block name="content"> <div class="row"> diff --git a/gui/slick/views/schedule.mako b/gui/slick/views/schedule.mako index 770678a6a..e3b079ef4 100644 --- a/gui/slick/views/schedule.mako +++ b/gui/slick/views/schedule.mako @@ -12,8 +12,8 @@ SNATCHED = Quality.SNATCHED + Quality.SNATCHED_PROPER + Quality.SNATCHED_BEST # type = list %> <%block name="scripts"> - <script type="text/javascript" src="${ static_url('js/ajaxEpSearch.js') }"></script> - <script type="text/javascript" src="${ static_url('js/plotTooltip.js') }"></script> + <script type="text/javascript" src="${static_url('js/ajaxEpSearch.js')}"></script> + <script type="text/javascript" src="${static_url('js/plotTooltip.js')}"></script> </%block> <%block name="content"> @@ -172,10 +172,10 @@ </td> <td> % if cur_result[b'description']: - <img alt="" src="${ static_url('images/info32.png') }" height="16" width="16" class="plotInfo" + <img alt="" src="${static_url('images/info32.png')}" height="16" width="16" class="plotInfo" id="plot_info_${'%s_%s_%s' % (cur_result[b'showid'], cur_result[b'season'], cur_result[b'episode'])}"/> % else: - <img alt="" src="${ static_url('images/info32.png') }" width="16" height="16" class="plotInfoNone"/> + <img alt="" src="${static_url('images/info32.png')}" width="16" height="16" class="plotInfoNone"/> % endif ${cur_result[b'name']} </td> @@ -200,7 +200,7 @@ rel="noreferrer" onclick="window.open(this.href, '_blank'); return false" title="${sickbeard.indexerApi(cur_indexer).config['show_url']}${cur_result[b'showid']}"> <img alt="${sickbeard.indexerApi(cur_indexer).name}" height="16" width="16" - src="${ static_url('images/indexers/' + sickbeard.indexerApi(cur_indexer).config['icon']) }"/> + src="${static_url('images/indexers/' + sickbeard.indexerApi(cur_indexer).config['icon'])}"/> </a> </td> <td align="center"> @@ -439,7 +439,7 @@ rel="noreferrer" onclick="window.open(this.href, '_blank'); return false" title="${sickbeard.indexerApi(cur_indexer).config['show_url']}"><img alt="${sickbeard.indexerApi(cur_indexer).name}" height="16" width="16" - src="${ static_url('images/indexers/' + sickbeard.indexerApi(cur_indexer).config['icon']) }"/> + src="${static_url('images/indexers/' + sickbeard.indexerApi(cur_indexer).config['icon'])}"/> </a> <span> <a href="${srRoot}/home/searchEpisode?show=${cur_result[b'showid']}&season=${cur_result[b'season']}&episode=${cur_result[b'episode']}" @@ -476,12 +476,12 @@ <div> % if cur_result[b'description']: <span class="title" style="vertical-align:middle;">${_('Plot')}:</span> - <img class="ep_summaryTrigger" src="${ static_url('images/plus.png') }" height="16" width="16" alt="" + <img class="ep_summaryTrigger" src="${static_url('images/plus.png')}" height="16" width="16" alt="" title="Toggle Summary"/> <div class="ep_summary">${cur_result[b'description']}</div> % else: <span class="title ep_summaryTriggerNone" style="vertical-align:middle;">${_('Plot')}:</span> - <img class="ep_summaryTriggerNone" src="${ static_url('images/plus.png') }" height="16" width="16" + <img class="ep_summaryTriggerNone" src="${static_url('images/plus.png')}" height="16" width="16" alt=""/> % endif </div> diff --git a/gui/slick/views/testRename.mako b/gui/slick/views/testRename.mako index 69301f579..33adab641 100644 --- a/gui/slick/views/testRename.mako +++ b/gui/slick/views/testRename.mako @@ -3,7 +3,7 @@ import sickbeard %> <%block name="scripts"> - <script type="text/javascript" src="${ static_url('js/testRename.js') }" xmlns="http://www.w3.org/1999/html"></script> + <script type="text/javascript" src="${static_url('js/testRename.js')}" xmlns="http://www.w3.org/1999/html"></script> </%block> <%block name="content"> diff --git a/gui/slick/views/trendingShows.mako b/gui/slick/views/trendingShows.mako index 05f4e0adc..b09f8c542 100644 --- a/gui/slick/views/trendingShows.mako +++ b/gui/slick/views/trendingShows.mako @@ -7,7 +7,7 @@ <meta data-var="sickbeard.SORT_ARTICLE" data-content="${sickbeard.SORT_ARTICLE}"> </%block> <%block name="scripts"> - <script type="text/javascript" src="${ static_url('js/trendingShows.js') }"></script> + <script type="text/javascript" src="${static_url('js/trendingShows.js')}"></script> </%block> <%block name="content"> <div id="container"> diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py index 59610186b..da9227f0a 100644 --- a/sickbeard/webserve.py +++ b/sickbeard/webserve.py @@ -132,7 +132,7 @@ class PageTemplate(MakoTemplate): sbHttpPort = rh.request.headers['X-Forwarded-Port'] self.arguments['sbHttpsPort'] = sbHttpPort if "X-Forwarded-Proto" in rh.request.headers: - self.arguments['sbHttpsEnabled'] = True if rh.request.headers['X-Forwarded-Proto'] == 'https' else False + self.arguments['sbHttpsEnabled'] = rh.request.headers['X-Forwarded-Proto'].lower() == 'https' self.arguments['numErrors'] = len(classes.ErrorViewer.errors) self.arguments['numWarnings'] = len(classes.WarningViewer.errors) @@ -169,6 +169,7 @@ class BaseHandler(RequestHandler): self.startTime = time.time() super(BaseHandler, self).__init__(*args, **kwargs) + self.include_host = True # def set_default_headers(self): # self.set_header('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0') diff --git a/sickbeard/webserveInit.py b/sickbeard/webserveInit.py index 1c8027651..871e669a4 100644 --- a/sickbeard/webserveInit.py +++ b/sickbeard/webserveInit.py @@ -33,6 +33,7 @@ class SRWebServer(threading.Thread): # pylint: disable=too-many-instance-attrib self.options.setdefault('username', '') self.options.setdefault('password', '') self.options.setdefault('web_root', '/') + assert isinstance(self.options['port'], int) assert 'data_root' in self.options -- GitLab