diff --git a/CHANGES.md b/CHANGES.md
index 04e82b8d..3e564015 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,4 +1,4 @@
-### 0.x.x (2014-11-05 xx:xx:xx UTC)
+### 0.x.x (2014-11-07 xx:xx:xx UTC)
* Add Bootstrap for UI features
* Change UI to resize fluidly on different display sizes, fixes the issue where top menu items would disappear on smaller screens
@@ -42,6 +42,11 @@
* Made all init scripts executable
* Fix invalid responses when using sickbeard.searchtvdb api command
* Fixes unicode issues during searches on newznab providers when rid mapping occur
+* Fix white screen of death when trying to add a show that is already in library on Add Show/Add Trending Show page
+* Add show sorting options to Add Show/Add Trending Show page
+* Add handler for when Trakt returns no results for Add Show/Add Trending Show page
+* Fix image links when anchor child images are not found at Trakt on Add Show/Add Trending Show page
+* Add image to be used when Trakt posters are void on Add Show/Add Trending Show page
[develop changelog]
* Change improve display of progress bars in the Downloads columns of the show list page
diff --git a/gui/slick/css/style.css b/gui/slick/css/style.css
index 17cb500b..4f31b558 100644
--- a/gui/slick/css/style.css
+++ b/gui/slick/css/style.css
@@ -4,139 +4,139 @@ fonts
/* Open Sans */
/* Regular */
@font-face {
- font-family: 'Open Sans';
-
- src: url('fonts/OpenSans-Regular-webfont.eot');
- src: url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
- url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg');
- font-weight: normal;
- font-weight: 400;
- font-style: normal;
+ font-family: 'Open Sans';
+
+ src:url('fonts/OpenSans-Regular-webfont.eot');
+ src:url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
+ url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg');
+ font-weight: normal;
+ font-weight: 400;
+ font-style: normal;
}
/* Italic */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-Italic-webfont.eot');
- src: url('fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-Italic-webfont.woff') format('woff'),
- url('fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg');
- font-weight: normal;
- font-weight: 400;
- font-style: italic;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-Italic-webfont.eot');
+ src:url('fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-Italic-webfont.woff') format('woff'),
+ url('fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg');
+ font-weight: normal;
+ font-weight: 400;
+ font-style: italic;
}
/* Light */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-Light-webfont.eot');
- src: url('fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-Light-webfont.woff') format('woff'),
- url('fonts/OpenSans-Light-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg');
- font-weight: 200;
- font-style: normal;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-Light-webfont.eot');
+ src:url('fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-Light-webfont.woff') format('woff'),
+ url('fonts/OpenSans-Light-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg');
+ font-weight: 200;
+ font-style: normal;
}
/* Light Italic */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-LightItalic-webfont.eot');
- src: url('fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
- url('fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg');
- font-weight: 200;
- font-style: italic;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-LightItalic-webfont.eot');
+ src:url('fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
+ url('fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg');
+ font-weight: 200;
+ font-style: italic;
}
/* Semibold */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-Semibold-webfont.eot');
- src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
- url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
- font-weight: 600;
- font-style: normal;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-Semibold-webfont.eot');
+ src:url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
+ url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
+ font-weight: 600;
+ font-style: normal;
}
/* Semibold Italic */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
- src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
- url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
- font-weight: 600;
- font-style: italic;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-SemiboldItalic-webfont.eot');
+ src:url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
+ url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
+ font-weight: 600;
+ font-style: italic;
}
/* Bold */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-Semibold-webfont.eot');
- src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
- url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
- font-weight: bold;
- font-weight: 700;
- font-style: normal;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-Semibold-webfont.eot');
+ src:url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
+ url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
+ font-weight: bold;
+ font-weight: 700;
+ font-style: normal;
}
/* Bold Italic */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
- src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
- url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
- font-weight: bold;
- font-weight: 700;
- font-style: italic;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-SemiboldItalic-webfont.eot');
+ src:url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
+ url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
+ font-weight: bold;
+ font-weight: 700;
+ font-style: italic;
}
/* Extra Bold */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-Bold-webfont.eot');
- src: url('fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-Bold-webfont.woff') format('woff'),
- url('fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg');
- font-weight: 900;
- font-style: normal;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-Bold-webfont.eot');
+ src:url('fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-Bold-webfont.woff') format('woff'),
+ url('fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg');
+ font-weight: 900;
+ font-style: normal;
}
/* Extra Bold Italic */
@font-face {
- font-family: 'Open Sans';
- src: url('fonts/OpenSans-BoldItalic-webfont.eot');
- src: url('fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
- url('fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
- url('fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg');
- font-weight: 900;
- font-style: italic;
+ font-family: 'Open Sans';
+ src:url('fonts/OpenSans-BoldItalic-webfont.eot');
+ src:url('fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
+ url('fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
+ url('fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg');
+ font-weight: 900;
+ font-style: italic;
}
/* Droid Sans */
@font-face {
- font-family: 'droid_sans_mono';
- src: url('fonts/droidsansmono-webfont.eot');
- src: url('fonts/droidsansmono-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/droidsansmono-webfont.woff') format('woff'),
- url('fonts/droidsansmono-webfont.ttf') format('truetype'),
- url('fonts/droidsansmono-webfont.svg#droid_sans_monoregular') format('svg');
- font-weight: normal;
- font-style: normal;
+ font-family: 'droid_sans_mono';
+ src:url('fonts/droidsansmono-webfont.eot');
+ src:url('fonts/droidsansmono-webfont.eot?#iefix') format('embedded-opentype'),
+ url('fonts/droidsansmono-webfont.woff') format('woff'),
+ url('fonts/droidsansmono-webfont.ttf') format('truetype'),
+ url('fonts/droidsansmono-webfont.svg#droid_sans_monoregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
}
@@ -277,27 +277,27 @@ inc_top.tmpl
}
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
- color: #140F06;
- text-decoration: none;
+ color: #140F06;
+ text-decoration: none;
}
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
- color: #222;
- text-decoration: none;
+ color: #222;
+ text-decoration: none;
}
.ui-tabs {
- padding: 0px;
- background: none;
- border-width: 0px;
+ padding: 0px;
+ background: none;
+ border-width: 0px;
}
.ui-tabs .ui-tabs-nav {
- padding-left: 0px;
- background: transparent;
- border-width: 0px 0px 0px 0px;
- -moz-border-radius: 0px;
- -webkit-border-radius: 0px;
- border-radius: 0px;
+ padding-left: 0px;
+ background: transparent;
+ border-width: 0px 0px 0px 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-radius: 0px;
}
.ui-tabs .ui-tabs-panel {
@@ -306,8 +306,8 @@ inc_top.tmpl
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
- border-top-left-radius: 5px;
- border-top-right-radius: 5px;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
}
.ui-tabs-nav > :not(.ui-tabs-active){
@@ -316,12 +316,12 @@ inc_top.tmpl
}
#content {
- width: 95%;
- min-width: 875px;
- padding: 15px;
- margin-left: auto;
- margin-right: auto;
- clear: both;
+ width: 95%;
+ min-width: 875px;
+ padding: 15px;
+ margin-left: auto;
+ margin-right: auto;
+ clear: both;
}
#SubMenu {
@@ -341,7 +341,7 @@ inc_top.tmpl
}
[class^="menu-icon-"], [class*=" menu-icon-"] {
- background: url("../images/menu/menu-icons-black.png");
+ background: url("../images/menu/menu-icons-black.png");
height: 16px;
width: 16px;
display: inline-block;
@@ -443,7 +443,7 @@ inc_top.tmpl
}
[class^="submenu-icon-"], [class*=" submenu-icon-"] {
- background: url("../images/menu/menu-icons-black.png");
+ background: url("../images/menu/menu-icons-black.png");
height: 16px;
width: 16px;
}
@@ -495,13 +495,13 @@ inc_rootDirs.tmpl
.rootdir-selectbox,
.rootdir-selectbox #rootDirs,
.rootdir-controls {
- width: 430px
+ width: 430px
}
.rootdir-selectbox {
- padding: 0 0 5px
+ padding: 0 0 5px
}
.rootdir-controls {
- text-align: center
+ text-align: center
}
/* =======================================================================
@@ -509,24 +509,24 @@ home.tmpl
========================================================================== */
.imgbanner .banner {
- border: 1px solid #ccc;
- overflow: hidden;
- height: 66px;
- overflow: hidden;
- border-radius: 8px;
- vertical-align: top;
- width: 360px;
+ border: 1px solid #ccc;
+ overflow: hidden;
+ height: 66px;
+ overflow: hidden;
+ border-radius: 8px;
+ vertical-align: top;
+ width: 360px;
display: block;
margin-left: auto;
margin-right: auto;
}
.imgsmallposter .small {
- height: 66px;
- overflow: hidden;
- border-radius: 3px;
- vertical-align: middle;
- width: 45px;
+ height: 66px;
+ overflow: hidden;
+ border-radius: 3px;
+ vertical-align: middle;
+ width: 45px;
border: 1px solid #ccc;
margin-right: 5px;
}
@@ -541,7 +541,7 @@ home.tmpl
}
.ui-progressbar .ui-progressbar-value {
- box-sizing: content-box !important;
+ box-sizing: content-box !important;
}
.progressbarText {
@@ -602,7 +602,7 @@ home.tmpl
}
.show {
- margin: 12px;
+ margin: 12px;
width: 188px;
height: 352px;
background-color: #DFDACF;
@@ -613,7 +613,7 @@ home.tmpl
.show-image {
overflow: hidden;
height: 273px;
- width: 186px;
+ width: 186px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
@@ -624,38 +624,38 @@ home.tmpl
}
.show .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br {
- border-bottom-right-radius: 0px;
+ border-bottom-right-radius: 0px;
}
.show .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl {
- border-bottom-left-radius: 0px;
+ border-bottom-left-radius: 0px;
}
.show .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {
- border-top-right-radius: 0px;
+ border-top-right-radius: 0px;
}
.show .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl {
- border-top-left-radius: 0px;
+ border-top-left-radius: 0px;
}
.show .ui-widget-content {
- border-top: 1px solid #111;
+ border-top: 1px solid #111;
border-bottom: 1px solid #111;
border-left: 0px;
border-right: 0px;
}
.ui-progressbar .ui-progressbar-value {
- height:20px
+ height:20px
}
.ui-progressbar .progress-20 {
- border: none;
+ border: none;
}
.show .progress-20,
.show .progress-40,
.show .progress-60,
.show .progress-80 {
- height: 7px
+ height: 7px
}
.show .progress-80 {
@@ -760,7 +760,7 @@ home.tmpl
#sort-by {
display: inline;
list-style-type: none;
- padding: 0;
+ padding: 0;
margin-left: 5px;
}
@@ -775,13 +775,13 @@ home.tmpl
}
td.tvShow a {
- color: #000;
- text-decoration: none;
+ color: #000;
+ text-decoration: none;
}
td.tvShow a:hover {
- cursor: pointer;
- color: #428BCA;
+ cursor: pointer;
+ color: #428BCA;
}
/* =======================================================================
@@ -800,8 +800,8 @@ home_addShows.tmpl
}
div.button {
- display: table-cell;
- vertical-align: middle;
+ display: table-cell;
+ vertical-align: middle;
padding-left: 10px;
}
@@ -848,8 +848,8 @@ div.buttontext p {
home_newShow.tmpl
========================================================================== */
#addShowForm, #recommendedShowsForm {
- margin-left: auto;
- margin-right: auto;
+ margin-left: auto;
+ margin-right: auto;
}
#newShowPortal {
@@ -868,7 +868,7 @@ home_newShow.tmpl
}
#searchResults input[type="radio"] {
- vertical-align: -2px;
+ vertical-align: -2px;
}
/* =======================================================================
@@ -880,10 +880,10 @@ home_addExistingShow.tmpl
}
ul#rootDirStaticList {
- width: 90%;
- margin-right: auto;
- margin-left: auto;
- text-align: left;
+ width: 90%;
+ margin-right: auto;
+ margin-left: auto;
+ text-align: left;
}
ul#rootDirStaticList li {
@@ -895,12 +895,12 @@ ul#rootDirStaticList li {
}
ul#rootDirStaticList li label {
- margin-top: 5px;
+ margin-top: 5px;
margin-bottom: 5px;
}
ul#rootDirStaticList li input[type="checkbox"] {
- vertical-align: -2px;
+ vertical-align: -2px;
}
/* =======================================================================
@@ -908,7 +908,7 @@ home_trendingShows.tmpl
========================================================================== */
.traktShowTitleIcons {
- float: right;
+ float: right;
padding-right: 4px;
padding-bottom: 4px;
}
@@ -923,7 +923,7 @@ home_trendingShows.tmpl
}
.traktContainer p, .traktContainer i {
- white-space: nowrap;
+ white-space: nowrap;
font-size: 12px;
overflow: hidden;
/* text-shadow: 1px 1px 0px #000;*/
@@ -932,7 +932,7 @@ home_trendingShows.tmpl
}
.traktContainer {
- margin: 12px;
+ margin: 12px;
width: 188px;
background-color: #DFDACF;
border: 1px solid #111;
@@ -942,7 +942,7 @@ home_trendingShows.tmpl
.trakt-image {
overflow: hidden;
height: 273px;
- width: 186px;
+ width: 186px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
border-bottom: 1px solid #111;
@@ -957,7 +957,7 @@ home_postprocess.tmpl
width: 800px;
padding-top: 10px;
margin-right: auto;
- margin-left: auto;
+ margin-left: auto;
}
@@ -966,19 +966,19 @@ displayShow.tmpl
========================================================================== */
#posterCol {
- float: left;
+ float: left;
margin-right: 10px;
margin-bottom: 20px;
}
#showCol {
- overflow: hidden;
+ overflow: hidden;
margin-bottom: 20px;
}
.navShow {
- display: inline;
- cursor: pointer;
+ display: inline;
+ cursor: pointer;
}
#prevShow,
@@ -991,12 +991,12 @@ displayShow.tmpl
}
h1.title {
- padding-bottom: 12px;
- margin-bottom: 15px;
- line-height: 30px;
- text-align: left;
- text-rendering: optimizelegibility;
- border-bottom: 1px solid #888;
+ padding-bottom: 12px;
+ margin-bottom: 15px;
+ line-height: 30px;
+ text-align: left;
+ text-rendering: optimizelegibility;
+ border-bottom: 1px solid #888;
}
.displayspecials {
@@ -1022,40 +1022,40 @@ span.imdbstars {
}
span.imdbstars, span.imdbstars > * {
- height: 12px;
- background: url(../images/rating.png) 0 -12px repeat-x;
- width: 120px;
- display: inline-block;
+ height: 12px;
+ background: url(../images/rating.png) 0 -12px repeat-x;
+ width: 120px;
+ display: inline-block;
vertical-align: top;
}
span.imdbstars > * {
- background-position: 0 0;
- max-width:120px;
+ background-position: 0 0;
+ max-width:120px;
}
ul.tags {
- list-style-type: none;
+ list-style-type: none;
position: relative;
top: -5px;
margin-left: -40px;
}
ul.tags li {
- margin-right: 4px;
+ margin-right: 4px;
margin-bottom: 5px;
- padding: 3px 4px 3px 25px;
+ padding: 3px 4px 3px 25px;
background: url(../images/tag.png) no-repeat scroll 5px 4px #555;
- border-radius: 3px;
+ border-radius: 3px;
border: 1px solid #111;
- color: #FFF;
- font: 14px/18px "Open Sans", "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
+ color: #FFF;
+ font: 14px/18px "Open Sans", "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
text-shadow: 0px 1px rgba(0, 0, 0, 0.8);
- float: left;
+ float: left;
}
ul.tags li a{
- color: #FFF;
+ color: #FFF;
}
.tvshowImg {
@@ -1093,12 +1093,12 @@ ul.tags li a{
}
#checkboxControls label {
- white-space: nowrap;
- display: inline-block;
+ white-space: nowrap;
+ display: inline-block;
}
#checkboxControls input[type="checkbox"] {
- vertical-align: -2px;
+ vertical-align: -2px;
}
.unaired {
@@ -1121,27 +1121,27 @@ ul.tags li a{
}
span.unaired {
- color: #584b20;
+ color: #584b20;
border: 1px solid #584b20;
}
span.skipped {
- color: #1d5068;
+ color: #1d5068;
border: 1px solid #1d5068;
}
span.good {
- color: #295730;
+ color: #295730;
border: 1px solid #295730;
}
span.qual {
- color: #765100;
+ color: #765100;
border: 1px solid #765100;
}
span.wanted {
- color: #890000;
+ color: #890000;
border: 1px solid #890000;
}
span.snatched {
- color: #652164;
+ color: #652164;
border: 1px solid #652164;
}
@@ -1151,22 +1151,22 @@ span.good b,
span.qual b,
span.wanted b,
span.snatched b {
- color: #000000;
+ color: #000000;
font-weight: 800;
}
.plotInfo {
- cursor: help;
- float: right;
- position: relative;
- top: 2px;
+ cursor: help;
+ float: right;
+ position: relative;
+ top: 2px;
}
.plotInfoNone {
- cursor: help;
- float: right;
- position: relative;
- top: 2px;
+ cursor: help;
+ float: right;
+ position: relative;
+ top: 2px;
opacity: 0.4;
}
@@ -1222,7 +1222,7 @@ td.col-checkbox {
th.col-checkbox input[type="checkbox"],
td.col-checkbox input[type="checkbox"] {
- vertical-align: -2px;
+ vertical-align: -2px;
}
th.col-metadata,
@@ -1280,16 +1280,16 @@ td.col-search {
}
.input-scene {
- height: 20px;
- line-height: 1.5;
- border-radius: 3px;
+ height: 20px;
+ line-height: 1.5;
+ border-radius: 3px;
}
#editShow {
- width: 700px;
- padding-top: 10px;
- margin-right: auto;
- margin-left: auto;
+ width: 700px;
+ padding-top: 10px;
+ margin-right: auto;
+ margin-left: auto;
}
/* =======================================================================
@@ -1305,10 +1305,10 @@ comingEpisodes.tmpl
}
.listing-key {
- padding: 5px;
- font-size: 13px;
- font-weight: bold;
- border-radius: 5px;
+ padding: 5px;
+ font-size: 13px;
+ font-weight: bold;
+ border-radius: 5px;
}
.listing-default {
@@ -1328,22 +1328,22 @@ comingEpisodes.tmpl
}
span.listing-default {
- color: #826f30;
+ color: #826f30;
border: 1px solid #826f30;
}
span.listing-current {
- color: #295730;
+ color: #295730;
border: 1px solid #295730;
}
span.listing-overdue {
- color: #890000;
+ color: #890000;
border: 1px solid #890000;
}
span.listing-toofar {
- color: #1d5068;
+ color: #1d5068;
border: 1px solid #1d5068;
}
@@ -1360,13 +1360,13 @@ h2.day, h2.network {
}
.tvshowDiv {
- display: block;
- clear: both;
- border: 1px solid #ccc;
- margin: auto;
- padding: 0px;
- text-align: left;
- width: 750px;
+ display: block;
+ clear: both;
+ border: 1px solid #ccc;
+ margin: auto;
+ padding: 0px;
+ text-align: left;
+ width: 750px;
border-radius: 5px;
background: #fff;
cursor: default;
@@ -1374,7 +1374,7 @@ h2.day, h2.network {
}
.tvshowDiv a:hover {
- color: #428BCA;
+ color: #428BCA;
}
.tvshowDiv a, .tvshowDiv a:link, .tvshowDiv a:visited, .tvshowDiv a:hover {
@@ -1383,54 +1383,54 @@ h2.day, h2.network {
}
.tvshowTitle a {
- color: #000000;
- float: left;
- line-height: 1.4em;
- font-size: 1.4em;
- text-shadow: -1px -1px 0 #FFF);
+ color: #000000;
+ float: left;
+ line-height: 1.4em;
+ font-size: 1.4em;
+ text-shadow: -1px -1px 0 #FFF);
}
.tvshowTitleIcons {
- float: right;
- padding: 3px 5px;
+ float: right;
+ padding: 3px 5px;
}
.tvshowDiv td {
- padding: 5px 10px;
+ padding: 5px 10px;
}
.tvshowDiv td.next_episode {
- width: 100%;
- height: 90%;
- border-bottom: 1px solid #ccc;
- vertical-align: top;
- color: #000;
+ width: 100%;
+ height: 90%;
+ border-bottom: 1px solid #ccc;
+ vertical-align: top;
+ color: #000;
}
.bannerThumb {
- vertical-align: top;
- height: auto;
- width: 748px;
+ vertical-align: top;
+ height: auto;
+ width: 748px;
border-bottom: 1px solid #ccc;
}
.posterThumb {
- vertical-align: top;
- height: auto;
- width: 180px;
+ vertical-align: top;
+ height: auto;
+ width: 180px;
border-right: 1px solid #ccc;
}
.ep_listing {
- width: auto;
- border: 1px solid #ccc;
- margin-bottom: 10px;
- padding: 10px;
+ width: auto;
+ border: 1px solid #ccc;
+ margin-bottom: 10px;
+ padding: 10px;
}
.ep_summary {
- margin-left: 5px;
- font-style: italic;
+ margin-left: 5px;
+ font-style: italic;
}
.ep_summaryTrigger {
@@ -1446,7 +1446,7 @@ h2.day, h2.network {
.calendarWrapper {
width:1000px;
margin:0 auto;
- padding:0 3px
+ padding:0 3px
}
.calendarTable {
@@ -1457,7 +1457,7 @@ h2.day, h2.network {
}
.calendarShow {
- padding:0 !important
+ padding:0 !important
}
.calendarShow .poster {
@@ -1505,8 +1505,8 @@ config*.tmpl
}
.component-item {
- border-bottom: 1px dotted #666;
- min-height: 200px;
+ border-bottom: 1px dotted #666;
+ min-height: 200px;
}
.component-group-desc{
@@ -1534,7 +1534,7 @@ config*.tmpl
}
#config div.field-pair input {
- float: left;
+ float: left;
}
#config .nocheck, #config div #customQuality, .metadataDiv {
@@ -1554,11 +1554,11 @@ config*.tmpl
font-weight: normal;
display:block;
width:475px;
- margin-left:182px
+ margin-left:182px
}
#config label.space-right {
- margin-right:10px
+ margin-right:10px
}
#config .metadataDiv {
display: none;
@@ -1579,16 +1579,16 @@ select .selected {
}
.testNotification {
- padding: 5px;
- margin-bottom: 10px;
- line-height: 20px;
- border: 1px dotted #CCC;
+ padding: 5px;
+ margin-bottom: 10px;
+ line-height: 20px;
+ border: 1px dotted #CCC;
}
#providerOrderList {
- width: 250px;
- padding-left: 20px;
- list-style-type: none;
+ width: 250px;
+ padding-left: 20px;
+ list-style-type: none;
}
#provider_order_list,
@@ -1611,14 +1611,14 @@ select .selected {
}
#config .tip_scale label span.component-title {
- width: 85px !important;
- font-size: 12px !important;
- margin-top: 2px !important;
+ width: 85px !important;
+ font-size: 12px !important;
+ margin-top: 2px !important;
}
#config .tip_scale label span.component-desc {
- margin-left: 120px !important;
- width: 220px !important;
+ margin-left: 120px !important;
+ width: 220px !important;
}
.infoTableHeader,
@@ -1631,30 +1631,30 @@ select .selected {
}
[class^="icon16-"], [class*=" icon16-"] {
- background-image: url("../images/glyphicons-config-black.png");
- background-position: -40px 0;
- background-repeat: no-repeat;
- display: inline-block;
- height: 16px;
- line-height: 16px;
- vertical-align: text-top;
- width: 16px;
+ background-image: url("../images/glyphicons-config-black.png");
+ background-position: -40px 0;
+ background-repeat: no-repeat;
+ display: inline-block;
+ height: 16px;
+ line-height: 16px;
+ vertical-align: text-top;
+ width: 16px;
}
.icon16-github {
- background-position: 0 0;
+ background-position: 0 0;
}
.icon16-mirc {
- background-position: -20px 0;
+ background-position: -20px 0;
}
.icon16-sb {
- background-position: -40px 0;
+ background-position: -40px 0;
}
.icon16-web {
- background-position: -60px 0;
+ background-position: -60px 0;
}
.icon16-win {
- background-position: -80px 0;
+ background-position: -80px 0;
}
/* =======================================================================
@@ -1750,8 +1750,8 @@ div.metadataDiv .disabled {
}
.notifier-icon {
- float: left;
- margin: 6px 4px 0px 0px;
+ float: left;
+ margin: 6px 4px 0px 0px;
}
.warning {
@@ -1914,23 +1914,23 @@ option.flag {
}
#Anime {
- clear: both;
- overflow-x: hidden;
- overflow-y: hidden;
- font-size: 14px;
+ clear: both;
+ overflow-x: hidden;
+ overflow-y: hidden;
+ font-size: 14px;
}
#Anime div.component-group-desc {
- float: left;
- width: 165px;
+ float: left;
+ width: 165px;
}
#Anime div.component-group-desc p {
- margin-bottom: 0.4em;
- margin-left: 0;
- margin-right: 0;
- margin-top: 0.4em;
- width: 95%;
+ margin-bottom: 0.4em;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0.4em;
+ width: 95%;
}
div.blackwhitelist{
@@ -1939,15 +1939,15 @@ div.blackwhitelist{
}
div.blackwhitelist input {
- margin: 5px 5px;
+ margin: 5px 5px;
}
div.blackwhitelist.pool select{
- width: 300px;
+ width: 300px;
}
div.blackwhitelist.pool {
- margin:5px;
+ margin:5px;
}
div.blackwhitelist.white select, div.blackwhitelist.black select {
@@ -1984,13 +1984,13 @@ html * {
}
input[type="checkbox"] {
- margin: 2px 0px 0px;
- line-height: normal;
+ margin: 2px 0px 0px;
+ line-height: normal;
}
input[type="radio"] {
- margin: 2px 0px 0px;
- line-height: normal;
+ margin: 2px 0px 0px;
+ line-height: normal;
}
input, textarea, select, .uneditable-input {
@@ -1999,12 +1999,12 @@ input, textarea, select, .uneditable-input {
}
.container-fluid {
- margin-left: 10px;
+ margin-left: 10px;
margin-right: 10px;
}
.navbar-brand {
- padding: 0px;
+ padding: 0px;
}
/* navbar styling */
@@ -2119,29 +2119,29 @@ fieldset[disabled] .navbar-default .btn-link:focus {
}
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
- color: #262626;
- text-decoration: none;
- background-color: #F5F5F5;
+ color: #262626;
+ text-decoration: none;
+ background-color: #F5F5F5;
}
.dropdown-menu > li > a {
- padding: 4px 36px 4px 20px;
+ padding: 4px 36px 4px 20px;
}
.dropdown-menu {
- background-color: #F5F1E4;
- border: 1px solid rgba(0, 0, 0, 0.15);
- box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
+ background-color: #F5F1E4;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
}
.form-control {
- color: #000000;
+ color: #000000;
}
.form-control-inline {
- min-width: 0;
- width: auto;
- display: inline;
+ min-width: 0;
+ width: auto;
+ display: inline;
}
.btn {
@@ -2179,8 +2179,8 @@ fieldset[disabled] .navbar-default .btn-link:focus {
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
*zoom: 1;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.btn:hover,
@@ -2208,10 +2208,10 @@ fieldset[disabled] .navbar-default .btn-link:focus {
*background-color: #d9d9d9;
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
- -moz-transition: background-position 0.1s linear;
- -ms-transition: background-position 0.1s linear;
- -o-transition: background-position 0.1s linear;
- transition: background-position 0.1s linear;
+ -moz-transition: background-position 0.1s linear;
+ -ms-transition: background-position 0.1s linear;
+ -o-transition: background-position 0.1s linear;
+ transition: background-position 0.1s linear;
}
.btn:focus {
@@ -2227,8 +2227,8 @@ fieldset[disabled] .navbar-default .btn-link:focus {
background-image: none;
outline: 0;
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.btn.disabled,
@@ -2239,8 +2239,8 @@ fieldset[disabled] .navbar-default .btn-link:focus {
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
}
.btn-large {
@@ -2248,8 +2248,8 @@ fieldset[disabled] .navbar-default .btn-link:focus {
font-size: 15px;
line-height: normal;
-webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
}
.btn-large [class^="icon-"] {
@@ -2478,10 +2478,10 @@ fieldset[disabled] .navbar-default .btn-link:focus {
}
.btn-xs {
- padding: 1px 5px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
}
@media(min-width:768px){
@@ -2498,11 +2498,11 @@ fieldset[disabled] .navbar-default .btn-link:focus {
}
label {
- font-weight: normal;
+ font-weight: normal;
}
pre {
- border: 1px solid;
+ border: 1px solid;
}
.alert {
@@ -2515,14 +2515,14 @@ input sizing (for config pages)
========================================================================== */
#config select {
- min-width: 0;
- width: auto;
- display: inline;
+ min-width: 0;
+ width: auto;
+ display: inline;
margin-top: -4px;
}
.btn-inline {
- margin-top: -3px;
+ margin-top: -3px;
}
.input75 {
@@ -2873,143 +2873,151 @@ token-input.css
========================================================================== */
ul.token-input-list {
- overflow: hidden;
- height: auto !important;
- height: 1%;
- width: 273px;
- border: 1px solid #ccc;
- cursor: text;
- font-size: 10px;
- font-family: Verdana;
- z-index: 999;
- margin: 0;
- padding: 0 0 1px 0;
- background-color: #fff;
- list-style-type: none;
+ overflow: hidden;
+ height: auto !important;
+ height: 1%;
+ width: 273px;
+ border: 1px solid #ccc;
+ cursor: text;
+ font-size: 10px;
+ font-family: Verdana;
+ z-index: 999;
+ margin: 0;
+ padding: 0 0 1px 0;
+ background-color: #fff;
+ list-style-type: none;
/* clear: left; */
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
- border-bottom-left-radius: 3px;
- border-bottom-right-radius: 3px;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-bottom-right-radius: 3px;
}
ul.token-input-list li {
- list-style-type: none;
+ list-style-type: none;
}
ul.token-input-list li input {
- border: 0;
- padding: 3px 4px;
- background-color: white;
+ border: 0;
+ padding: 3px 4px;
+ background-color: white;
/* -webkit-appearance: caret; */
}
li.token-input-token {
- overflow: hidden;
- height: auto !important;
- height: 1%;
- margin: 3px;
- padding: 3px 5px 0 5px;
- background-color: #d0efa0;
- color: #000;
- font-weight: bold;
- cursor: default;
- display: block;
+ overflow: hidden;
+ height: auto !important;
+ height: 1%;
+ margin: 3px;
+ padding: 3px 5px 0 5px;
+ background-color: #d0efa0;
+ color: #000;
+ font-weight: bold;
+ cursor: default;
+ display: block;
}
li.token-input-token img {
- padding-top: 7px;
- padding-right: 4px;
- float: left;
+ padding-top: 7px;
+ padding-right: 4px;
+ float: left;
}
li.token-input-token input {
- padding-top: 2px !important;
- padding-right: 4px !important;
- float: left;
+ padding-top: 2px !important;
+ padding-right: 4px !important;
+ float: left;
}
li.token-input-token p {
- float: left;
- padding: 0;
- margin: 0;
- line-height: 2.0 !important;
+ float: left;
+ padding: 0;
+ margin: 0;
+ line-height: 2.0 !important;
}
li.token-input-token span {
- float: right;
- color: #777;
- cursor: pointer;
+ float: right;
+ color: #777;
+ cursor: pointer;
}
li.token-input-selected-token {
- background-color: #08844e;
- color: #fff;
+ background-color: #08844e;
+ color: #fff;
}
li.token-input-selected-token span {
- color: #bbb;
+ color: #bbb;
}
li.token-input-input-token input {
- margin: 3px 3px 3px 3px !important;
+ margin: 3px 3px 3px 3px !important;
}
div.token-input-dropdown {
- position: absolute;
- width: 273px;
- overflow: hidden;
- border-left: 1px solid;
- border-right: 1px solid;
- border-bottom: 1px solid;
- cursor: default;
- font-size: 11px;
- font-family: Verdana;
- z-index: 1;
+ position: absolute;
+ width: 273px;
+ overflow: hidden;
+ border-left: 1px solid;
+ border-right: 1px solid;
+ border-bottom: 1px solid;
+ cursor: default;
+ font-size: 11px;
+ font-family: Verdana;
+ z-index: 1;
}
div.token-input-dropdown p {
- margin: 0;
- padding: 3px;
- font-weight: bold;
- color: #777;
+ margin: 0;
+ padding: 3px;
+ font-weight: bold;
+ color: #777;
}
div.token-input-dropdown ul {
- margin: 0;
- padding: 0;
+ margin: 0;
+ padding: 0;
}
div.token-input-dropdown ul li {
- background-color: #fff;
- padding: 3px;
- list-style-type: none;
+ background-color: #fff;
+ padding: 3px;
+ list-style-type: none;
}
div.token-input-dropdown ul li.token-input-dropdown-item {
- background-color: #fafafa;
+ background-color: #fafafa;
}
div.token-input-dropdown ul li.token-input-dropdown-item2 {
- background-color: #fff;
+ background-color: #fff;
}
div.token-input-dropdown ul li em {
- font-weight: bold;
- font-style: normal;
+ font-weight: bold;
+ font-style: normal;
}
div.token-input-dropdown ul li.token-input-selected-dropdown-item {
- background-color: #6196c2;
+ background-color: #6196c2;
}
span.token-input-delete-token {
- margin: 0 1px;
+ margin: 0 1px;
}
.red-text {color:#d33}
.clear-left {clear:left}
.nextline-block {display:block}
+
+.trakt-image {
+ display: block;
+ width: 100%;
+ height: 100%;
+ z-index: 0;
+ background-image: url(/images/poster-dark.jpg)
+}
/* =======================================================================
jquery.confirm.css
========================================================================== */
@@ -3034,7 +3042,7 @@ jquery.confirm.css
top: 50%;
margin: -130px 0 0 -230px;
border: 1px solid #111;
- box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.175);
+ box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.175);
}
#confirmBox h1,
@@ -3043,18 +3051,18 @@ jquery.confirm.css
}
#confirmBox h1 {
- background-color: #333;
+ background-color: #333;
border-bottom: 1px solid #111;
color: #fff;
- margin: 0;
- font-size: 22px;
- text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
+ margin: 0;
+ font-size: 22px;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
}
#confirmBox p {
padding-top: 20px;
- color: #000;
- text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.75);
+ color: #000;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.75);
}
#confirmButtons {
diff --git a/gui/slick/images/poster-dark.jpg b/gui/slick/images/poster-dark.jpg
new file mode 100644
index 00000000..5abb0364
Binary files /dev/null and b/gui/slick/images/poster-dark.jpg differ
diff --git a/gui/slick/interfaces/default/home_trendingShows.tmpl b/gui/slick/interfaces/default/home_trendingShows.tmpl
index 19d21ef7..13f37bee 100644
--- a/gui/slick/interfaces/default/home_trendingShows.tmpl
+++ b/gui/slick/interfaces/default/home_trendingShows.tmpl
@@ -4,35 +4,74 @@
#from sickbeard.common import *
#from sickbeard import sbdatetime
-#set global $title="Trending Shows"
-#set global $header="Trending Shows"
+#set global $title='Trending Shows'
+#set global $header='Trending Shows'
-#set global $sbPath=".."
+#set global $sbPath='..'
-#set global $topmenu="comingEpisodes"
+#set global $topmenu='comingEpisodes'
#import os.path
-#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")
+#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_top.tmpl')
-#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_bottom.tmpl")
\ No newline at end of file
+#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl')
diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py
index 63722675..7f10e9a3 100644
--- a/sickbeard/webserve.py
+++ b/sickbeard/webserve.py
@@ -340,7 +340,7 @@ class MainHandler(RequestHandler):
def setComingEpsSort(self, sort):
if sort not in ('date', 'network', 'show'):
sort = 'date'
-
+
if sickbeard.COMING_EPS_LAYOUT == 'calendar':
sort = 'date'
@@ -486,7 +486,7 @@ class MainHandler(RequestHandler):
episode['description'].splitlines()[0] + '\r\n'
else:
ical = ical + 'DESCRIPTION:' + (show['airs'] or '(Unknown airs)') + ' on ' + (show['network'] or 'Unknown network') + '\r\n'
-
+
ical = ical + 'END:VEVENT\r\n'
# Ending the iCal
@@ -1984,25 +1984,25 @@ class ConfigProviders(MainHandler):
'''
error = ""
success = False
-
+
if not name:
- error += "\nNo Provider Name specified"
+ error += "\nNo Provider Name specified"
if not url:
error += "\nNo Provider Url specified"
if not key:
error += "\nNo Provider Api key specified"
-
+
if error <> "":
return json.dumps({'success' : False, 'error': error})
-
- #Get list with Newznabproviders
+
+ #Get list with Newznabproviders
#providerDict = dict(zip([x.getID() for x in sickbeard.newznabProviderList], sickbeard.newznabProviderList))
-
+
#Get newznabprovider obj with provided name
tempProvider= newznab.NewznabProvider(name, url, key)
-
+
success, tv_categories, error = tempProvider.get_newznab_categories()
-
+
return json.dumps({'success' : success,'tv_categories' : tv_categories, 'error' : error})
def deleteNewznabProvider(self, nnid):
@@ -2109,13 +2109,13 @@ class ConfigProviders(MainHandler):
newznabProviderDict[cur_id].name = cur_name
newznabProviderDict[cur_id].url = cur_url
newznabProviderDict[cur_id].key = cur_key
- newznabProviderDict[cur_id].catIDs = cur_cat
+ newznabProviderDict[cur_id].catIDs = cur_cat
# a 0 in the key spot indicates that no key is needed
if cur_key == '0':
newznabProviderDict[cur_id].needs_auth = False
else:
newznabProviderDict[cur_id].needs_auth = True
-
+
try:
newznabProviderDict[cur_id].search_mode = str(kwargs[cur_id + '_search_mode']).strip()
except:
@@ -2989,6 +2989,11 @@ class NewHomeAddShows(MainHandler):
t.trending_shows = TraktCall("shows/trending.json/%API%", sickbeard.TRAKT_API_KEY)
+ if None is not t.trending_shows:
+ for item in t.trending_shows:
+ if helpers.findCertainShow(sickbeard.showList, int(item['tvdb_id'])):
+ item['tvdb_id'] = u'ExistsInLibrary'
+
return _munge(t)
def existingShows(self, *args, **kwargs):
@@ -4372,9 +4377,9 @@ class Home(MainHandler):
root_ep_obj.rename()
redirect("/home/displayShow?show=" + show)
-
+
def searchEpisode(self, show=None, season=None, episode=None):
-
+
# retrieve the episode object and fail if we can't get one
ep_obj = _getEpisode(show, season, episode)
if isinstance(ep_obj, str):
@@ -4384,7 +4389,7 @@ class Home(MainHandler):
ep_queue_item = search_queue.ManualSearchQueueItem(ep_obj.show, ep_obj)
sickbeard.searchQueueScheduler.action.add_item(ep_queue_item) # @UndefinedVariable
-
+
if ep_queue_item.success:
return returnManualSearchResult(ep_queue_item)
if not ep_queue_item.started and ep_queue_item.success is None:
@@ -4403,35 +4408,35 @@ class Home(MainHandler):
currentManualSearchThreadsQueued = []
currentManualSearchThreadActive = []
finishedManualSearchThreadItems= []
-
+
# Queued Searches
currentManualSearchThreadsQueued = sickbeard.searchQueueScheduler.action.get_all_ep_from_queue(show)
# Running Searches
if (sickbeard.searchQueueScheduler.action.is_manualsearch_in_progress()):
currentManualSearchThreadActive = sickbeard.searchQueueScheduler.action.currentItem
-
+
# Finished Searches
finishedManualSearchThreadItems = sickbeard.search_queue.MANUAL_SEARCH_HISTORY
-
+
if currentManualSearchThreadsQueued:
for searchThread in currentManualSearchThreadsQueued:
searchstatus = 'queued'
- if isinstance(searchThread, sickbeard.search_queue.ManualSearchQueueItem):
+ if isinstance(searchThread, sickbeard.search_queue.ManualSearchQueueItem):
episodes.append({'episode': searchThread.segment.episode,
- 'episodeindexid': searchThread.segment.indexerid,
- 'season' : searchThread.segment.season,
- 'searchstatus' : searchstatus,
- 'status' : statusStrings[searchThread.segment.status],
+ 'episodeindexid': searchThread.segment.indexerid,
+ 'season' : searchThread.segment.season,
+ 'searchstatus' : searchstatus,
+ 'status' : statusStrings[searchThread.segment.status],
'quality': self.getQualityClass(searchThread.segment)})
else:
for epObj in searchThread.segment:
episodes.append({'episode': epObj.episode,
'episodeindexid': epObj.indexerid,
- 'season' : epObj.season,
- 'searchstatus' : searchstatus,
- 'status' : statusStrings[epObj.status],
+ 'season' : epObj.season,
+ 'searchstatus' : searchstatus,
+ 'status' : statusStrings[epObj.status],
'quality': self.getQualityClass(epObj)})
-
+
if currentManualSearchThreadActive:
searchThread = currentManualSearchThreadActive
searchstatus = 'searching'
@@ -4441,11 +4446,11 @@ class Home(MainHandler):
searchstatus = 'searching'
episodes.append({'episode': searchThread.segment.episode,
'episodeindexid': searchThread.segment.indexerid,
- 'season' : searchThread.segment.season,
- 'searchstatus' : searchstatus,
- 'status' : statusStrings[searchThread.segment.status],
+ 'season' : searchThread.segment.season,
+ 'searchstatus' : searchstatus,
+ 'status' : statusStrings[searchThread.segment.status],
'quality': self.getQualityClass(searchThread.segment)})
-
+
if finishedManualSearchThreadItems:
for searchThread in finishedManualSearchThreadItems:
if isinstance(searchThread, sickbeard.search_queue.ManualSearchQueueItem):
@@ -4453,9 +4458,9 @@ class Home(MainHandler):
searchstatus = 'finished'
episodes.append({'episode': searchThread.segment.episode,
'episodeindexid': searchThread.segment.indexerid,
- 'season' : searchThread.segment.season,
- 'searchstatus' : searchstatus,
- 'status' : statusStrings[searchThread.segment.status],
+ 'season' : searchThread.segment.season,
+ 'searchstatus' : searchstatus,
+ 'status' : statusStrings[searchThread.segment.status],
'quality': self.getQualityClass(searchThread.segment)})
else:
### These are only Failed Downloads/Retry SearchThreadItems.. lets loop through the segement/episodes
@@ -4465,18 +4470,18 @@ class Home(MainHandler):
searchstatus = 'finished'
episodes.append({'episode': epObj.episode,
'episodeindexid': epObj.indexerid,
- 'season' : epObj.season,
- 'searchstatus' : searchstatus,
- 'status' : statusStrings[epObj.status],
+ 'season' : epObj.season,
+ 'searchstatus' : searchstatus,
+ 'status' : statusStrings[epObj.status],
'quality': self.getQualityClass(epObj)})
-
+
return json.dumps({'show': show, 'episodes' : episodes})
#return json.dumps()
-
+
def getQualityClass(self, ep_obj):
# return the correct json value
-
+
# Find the quality class for the episode
quality_class = Quality.qualityStrings[Quality.UNKNOWN]
ep_status, ep_quality = Quality.splitCompositeStatus(ep_obj.status)
@@ -4605,7 +4610,7 @@ class Home(MainHandler):
return json.dumps({'result': 'success'})
else:
return json.dumps({'result': 'failure'})
-
+
class UI(MainHandler):
def add_message(self):