Browse Source

Attach shows to searcher

pull/2352/head
Ruud 12 years ago
parent
commit
6070209d33
  1. 4
      couchpotato/core/media/movie/_base/static/search.js
  2. 17
      couchpotato/core/media/show/_base/static/search.js
  3. 21
      couchpotato/core/providers/info/thetvdb/main.py

4
couchpotato/core/media/movie/_base/static/search.js

@ -27,7 +27,7 @@ Block.Search.MovieItem = new Class({
self.options_el = new Element('div.options.inlay'),
self.data_container = new Element('div.data', {
'events': {
'click': self.movieOptions.bind(self)
'click': self.showOptions.bind(self)
}
}).adopt(
self.info_container = new Element('div.info').adopt(
@ -71,7 +71,7 @@ Block.Search.MovieItem = new Class({
return this.info[key]
},
movieOptions: function(){
showOptions: function(){
var self = this;
self.createOptions();

17
couchpotato/core/media/show/_base/static/search.js

@ -16,7 +16,7 @@ Block.Search.ShowItem = new Class({
var self = this,
info = self.info;
self.el = new Element('div.show_result', {
self.el = new Element('div.media_result', {
'id': info.id
}).adopt(
self.thumbnail = info.images && info.images.poster.length > 0 ? new Element('img.thumbnail', {
@ -98,10 +98,7 @@ Block.Search.ShowItem = new Class({
Api.request('show.add', {
'data': {
'identifier': self.info.id,
'id': self.info.id,
'type': self.info.type,
'primary_provider': self.info.primary_provider,
'identifier': self.info.imdb,
'title': self.title_select.get('value'),
'profile_id': self.profile_select.get('value'),
'category_id': self.category_select.get('value')
@ -110,7 +107,7 @@ Block.Search.ShowItem = new Class({
self.options_el.empty();
self.options_el.adopt(
new Element('div.message', {
'text': json.added ? 'Show successfully added.' : 'Show didn\'t add properly. Check logs'
'text': json.added ? 'Movie successfully added.' : 'Movie didn\'t add properly. Check logs'
})
);
self.mask.fade('out');
@ -144,10 +141,10 @@ Block.Search.ShowItem = new Class({
self.options_el.grab(
new Element('div', {
'class': self.info.in_wanted && self.info.in_wanted.profile || in_library ? 'in_library_wanted' : ''
'class': self.info.in_wanted && self.info.in_wanted.profile_id || in_library ? 'in_library_wanted' : ''
}).adopt(
self.info.in_wanted && self.info.in_wanted.profile ? new Element('span.in_wanted', {
'text': 'Already in wanted list: ' + self.info.in_wanted.profile.label
self.info.in_wanted && self.info.in_wanted.profile_id ? new Element('span.in_wanted', {
'text': 'Already in wanted list: ' + Quality.getProfile(self.info.in_wanted.profile_id).get('label')
}) : (in_library ? new Element('span.in_library', {
'text': 'Already in library: ' + in_library.join(', ')
}) : null),
@ -208,7 +205,7 @@ Block.Search.ShowItem = new Class({
self.options_el.addClass('set');
if(categories.length == 0 && self.title_select.getElements('option').length == 1 && profiles.length == 1 &&
!(self.info.in_wanted && self.info.in_wanted.profile || in_library))
!(self.info.in_wanted && self.info.in_wanted.profile_id || in_library))
self.add();
}

21
couchpotato/core/providers/info/thetvdb/main.py

@ -18,6 +18,7 @@ log = CPLog(__name__)
class TheTVDb(ShowProvider):
def __init__(self):
addEvent('info.search', self.search, priority = 1)
addEvent('show.search', self.search, priority = 1)
addEvent('show.info', self.getShowInfo, priority = 1)
addEvent('season.info', self.getSeasonInfo, priority = 1)
@ -35,7 +36,7 @@ class TheTVDb(ShowProvider):
self.tvdb = tvdb_api.Tvdb(**self.tvdb_api_parms)
self.valid_languages = self.tvdb.config['valid_languages']
def search(self, q, limit = 12, language='en'):
def search(self, q, limit = 12, language = 'en'):
''' Find show by name
show = { 'id': 74713,
'language': 'en',
@ -48,7 +49,7 @@ class TheTVDb(ShowProvider):
return False
if language != self.tvdb_api_parms['language'] and language in self.valid_languages:
self.tvdb_api_parms['language'] = language
self.tvdb_api_parms['language'] = language
self._setup()
search_string = simplifyString(q)
@ -103,7 +104,7 @@ class TheTVDb(ShowProvider):
if result:
return result
show = self.getShow(identifier=identifier)
show = self.getShow(identifier = identifier)
if show:
result = self._parseShow(show)
self.setCache(cache_key, result)
@ -164,7 +165,7 @@ class TheTVDb(ShowProvider):
if season_identifier:
try:
identifier, season_identifier = season_identifier.split(':')
season_identifier = int(season_identifier)
season_identifier = int(season_identifier)
except: return None
cache_key = 'thetvdb.cache.%s.%s.%s' % (identifier, episode_identifier, season_identifier)
@ -236,8 +237,8 @@ class TheTVDb(ShowProvider):
genres = [] if show['genre'] is None else show['genre'].strip('|').split('|')
if show['firstaired'] is not None:
try: year = datetime.strptime(show['firstaired'], '%Y-%m-%d').year
except: year = None
try: year = datetime.strptime(show['firstaired'], '%Y-%m-%d').year
except: year = None
else:
year = None
@ -299,7 +300,7 @@ class TheTVDb(ShowProvider):
poster = []
try:
for id, data in show.data['_banners']['season']['season'].items():
if data.get('season', None) == str(number) and data['bannertype'] == 'season' and data['bannertype2'] == 'season':
if data.get('season', None) == str(number) and data['bannertype'] == 'season' and data['bannertype2'] == 'season':
poster.append(data.get('_bannerpath'))
break # Only really need one
except:
@ -374,13 +375,13 @@ class TheTVDb(ShowProvider):
poster = episode['filename'] or []
backdrop = []
genres = []
plot = "%s - %sx%s - %s" % (show['seriesname'],
plot = "%s - %sx%s - %s" % (show['seriesname'],
episode['seasonnumber'],
episode['episodenumber'],
episode['overview'])
if episode['firstaired'] is not None:
try: year = datetime.strptime(episode['firstaired'], '%Y-%m-%d').year
except: year = None
try: year = datetime.strptime(episode['firstaired'], '%Y-%m-%d').year
except: year = None
else:
year = None

Loading…
Cancel
Save