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):