def doManualRating(self, data): action = data['action'] media_type = data['media_type'] summaryInfo = None if not utilities.isValidMediaType(media_type): logger.debug("doManualRating(): Invalid media type '%s' passed for manual %s." % (media_type, action)) return if not data['action'] in ['rate', 'unrate']: logger.debug("doManualRating(): Unknown action passed.") return logger.debug("Getting data for manual %s of %s: video_id: |%s| dbid: |%s|" % (action, media_type, data.get('video_id'), data.get('dbid'))) id_type = utilities.parseIdToTraktIds(str(data['video_id']), media_type)[1] if not id_type: logger.debug("doManualRating(): Unrecognized id_type: |%s|-|%s|." % (media_type, data['video_id'])) return ids = globals.traktapi.getIdLookup(data['video_id'], id_type) if not ids: logger.debug("doManualRating(): No Results for: |%s|-|%s|." % (media_type, data['video_id'])) return trakt_id = dict(ids[0].keys)['trakt'] if utilities.isEpisode(media_type): summaryInfo = globals.traktapi.getEpisodeSummary(trakt_id, data['season'], data['episode']) userInfo = globals.traktapi.getEpisodeRatingForUser(trakt_id, data['season'], data['episode'], 'trakt') elif utilities.isSeason(media_type): summaryInfo = globals.traktapi.getShowSummary(trakt_id) userInfo = globals.traktapi.getSeasonRatingForUser(trakt_id, data['season'], 'trakt') elif utilities.isShow(media_type): summaryInfo = globals.traktapi.getShowSummary(trakt_id) userInfo = globals.traktapi.getShowRatingForUser(trakt_id, 'trakt') elif utilities.isMovie(media_type): summaryInfo = globals.traktapi.getMovieSummary(trakt_id) userInfo = globals.traktapi.getMovieRatingForUser(trakt_id, 'trakt') if summaryInfo is not None: summaryInfo = summaryInfo.to_dict() summaryInfo['user'] = {'ratings': userInfo} if utilities.isEpisode(media_type): summaryInfo['season'] = data['season'] summaryInfo['number'] = data['episode'] elif utilities.isSeason(media_type): summaryInfo['season'] = data['season'] if action == 'rate': if not 'rating' in data: rateMedia(media_type, [summaryInfo]) else: rateMedia(media_type, [summaryInfo], rating=data['rating']) else: logger.debug("doManualRating(): Summary info was empty, possible problem retrieving data from Trakt.tv")
def doManualRating(self, data): action = data['action'] media_type = data['media_type'] summaryInfo = None if not utilities.isValidMediaType(media_type): logger.debug( "doManualRating(): Invalid media type '%s' passed for manual %s." % (media_type, action)) return if not data['action'] in ['rate', 'unrate']: logger.debug("doManualRating(): Unknown action passed.") return if 'dbid' in data: logger.debug( "Getting data for manual %s of library '%s' with ID of '%s'" % (action, media_type, data['dbid'])) elif 'remoteitd' in data: if 'season' in data: logger.debug( "Getting data for manual %s of non-library '%s' S%02dE%02d, with ID of '%s'." % (action, media_type, data['season'], data['episode'], data['remoteid'])) else: logger.debug( "Getting data for manual %s of non-library '%s' with ID of '%s'" % (action, media_type, data['remoteid'])) if utilities.isEpisode(media_type): summaryInfo = globals.traktapi.getEpisodeSummary( data['trakt'], data['season'], data['episode']) elif utilities.isShow(media_type): summaryInfo = globals.traktapi.getShowSummary(data['imdbnumber']) elif utilities.isMovie(media_type): summaryInfo = globals.traktapi.getMovieSummary(data['imdbnumber']) if not summaryInfo is None: if utilities.isMovie(media_type) or utilities.isShow(media_type): summaryInfo['xbmc_id'] = data['dbid'] if action == 'rate': if not 'rating' in data: rateMedia(media_type, summaryInfo) else: rateMedia(media_type, summaryInfo, rating=data['rating']) else: logger.debug( "doManualRating(): Summary info was empty, possible problem retrieving data from Trakt.tv" )
def doManualRating(self, data): action = data['action'] media_type = data['media_type'] summaryInfo = None if not utilities.isValidMediaType(media_type): logger.debug("doManualRating(): Invalid media type '%s' passed for manual %s." % (media_type, action)) return if not data['action'] in ['rate', 'unrate']: logger.debug("doManualRating(): Unknown action passed.") return logger.debug("Getting data for manual %s of %s: imdb: |%s| dbid: |%s|" % (action, media_type, data.get('remoteid'), data.get('dbid'))) if utilities.isEpisode(media_type): summaryInfo = globals.traktapi.getEpisodeSummary(data['imdbnumber'], data['season'], data['episode']) userInfo = globals.traktapi.getEpisodeRatingForUser(data['imdbnumber'], data['season'], data['episode'], 'imdb') elif utilities.isSeason(media_type): summaryInfo = globals.traktapi.getShowSummary(data['imdbnumber']) userInfo = globals.traktapi.getSeasonRatingForUser(data['imdbnumber'], data['season'], 'imdb') elif utilities.isShow(media_type): summaryInfo = globals.traktapi.getShowSummary(data['imdbnumber']) userInfo = globals.traktapi.getShowRatingForUser(data['imdbnumber'], 'imdb') elif utilities.isMovie(media_type): summaryInfo = globals.traktapi.getMovieSummary(data['imdbnumber']) userInfo = globals.traktapi.getMovieRatingForUser(data['imdbnumber']) if summaryInfo is not None: summaryInfo = summaryInfo.to_dict() summaryInfo['user'] = {'ratings': userInfo} if utilities.isEpisode(media_type): summaryInfo['season'] = data['season'] summaryInfo['number'] = data['episode'] elif utilities.isSeason(media_type): summaryInfo['season'] = data['season'] if action == 'rate': if not 'rating' in data: rateMedia(media_type, [summaryInfo]) else: rateMedia(media_type, [summaryInfo], rating=data['rating']) else: logger.debug("doManualRating(): Summary info was empty, possible problem retrieving data from Trakt.tv")
def doManualRating(self, data): action = data['action'] media_type = data['media_type'] summaryInfo = None if not utilities.isValidMediaType(media_type): utilities.Debug("doManualRating(): Invalid media type '%s' passed for manual %s." % (media_type, action)) return if not data['action'] in ['rate', 'unrate']: utilities.Debug("doManualRating(): Unknown action passed.") return if 'dbid' in data: utilities.Debug("Getting data for manual %s of library '%s' with ID of '%s'" % (action, media_type, data['dbid'])) elif 'remoteitd' in data: if 'season' in data: utilities.Debug("Getting data for manual %s of non-library '%s' S%02dE%02d, with ID of '%s'." % (action, media_type, data['season'], data['episode'], data['remoteid'])) else: utilities.Debug("Getting data for manual %s of non-library '%s' with ID of '%s'" % (action, media_type, data['remoteid'])) if utilities.isEpisode(media_type): summaryInfo = globals.traktapi.getEpisodeSummary(data['tvdb_id'], data['season'], data['episode']) elif utilities.isShow(media_type): summaryInfo = globals.traktapi.getShowSummary(data['imdbnumber']) elif utilities.isMovie(media_type): summaryInfo = globals.traktapi.getMovieSummary(data['imdbnumber']) if not summaryInfo is None: if utilities.isMovie(media_type) or utilities.isShow(media_type): summaryInfo['xbmc_id'] = data['dbid'] if action == 'rate': if not 'rating' in data: rateMedia(media_type, summaryInfo) else: rateMedia(media_type, summaryInfo, rating=data['rating']) elif action == 'unrate': rateMedia(media_type, summaryInfo, unrate=True) else: utilities.Debug("doManualRating(): Summary info was empty, possible problem retrieving data from trakt.tv")
import xbmc import urllib, sys, json def get_bool(boolean): return xbmcaddon.Addon('script.myshows').getSetting(boolean) == 'true' def get_apps(paramstring=None): if not paramstring: paramstring=sys.argv[1].replace('|:|',',') print 'paramstring '+str(paramstring) if len(paramstring)>=2: apps=json.loads(urllib.unquote_plus(paramstring)) return apps try:apps=get_apps() except:apps=None if apps: from rating import rateMedia media={} if 'kinopoiskId' in apps: media={'kinopoiskId':urllib.unquote_plus(apps['kinopoiskId']), 'title':urllib.unquote_plus(apps['title']),'year':urllib.unquote_plus(apps['year'])} elif 'title' in apps and 'year' in apps: media={'title':urllib.unquote_plus(apps['title']),'year':urllib.unquote_plus(apps['year'])} if 'titleAlt' in apps: media['titleAlt']=urllib.unquote_plus(apps['titleAlt']) rateMedia('movie',media) elif __name__ == '__main__': xbmc.executebuiltin('XBMC.ActivateWindow(Videos,plugin://plugin.video.myshows/)')
def doManualRating(self): data = json.loads(utilities.getProperty('traktManualRateData')) action = data['action'] media_type = data['media_type'] summaryInfo = None if not utilities.isValidMediaType(media_type): utilities.Debug("doManualRating(): Invalid media type '%s' passed for manual %s." % (media_type, action)) return if not data['action'] in ['rate', 'unrate']: utilities.Debug("doManualRating(): Unknown action passed.") return if 'dbid' in data: utilities.Debug("Getting data for manual %s of library '%s' with ID of '%s'" % (action, media_type, data['dbid'])) elif 'remoteitd' in data: if 'season' in data: utilities.Debug("Getting data for manual %s of non-library '%s' S%02dE%02d, with ID of '%s'." % (action, media_type, data['season'], data['episode'], data['remoteid'])) else: utilities.Debug("Getting data for manual %s of non-library '%s' with ID of '%s'" % (action, media_type, data['remoteid'])) if utilities.isEpisode(media_type): result = {} if 'dbid' in data: result = utilities.getEpisodeDetailsFromXbmc(data['dbid'], ['showtitle', 'season', 'episode', 'tvshowid']) if not result: utilities.Debug("doManualRating(): No data was returned from XBMC, aborting manual %s." % action) return else: result['tvdb_id'] = data['remoteid'] result['season'] = data['season'] result['episode'] = data['episode'] summaryInfo = globals.traktapi.getEpisodeSummary(result['tvdb_id'], result['season'], result['episode']) elif utilities.isShow(media_type): result = {} if 'dbid' in data: result = utilities.getShowDetailsFromXBMC(data['dbid'], ['imdbnumber']) if not result: utilities.Debug("doManualRating(): No data was returned from XBMC, aborting manual %s." % action) return else: result['imdbnumber'] = data['remoteid'] summaryInfo = globals.traktapi.getShowSummary(result['imdbnumber']) elif utilities.isMovie(media_type): result = {} if 'dbid' in data: result = utilities.getMovieDetailsFromXbmc(data['dbid'], ['imdbnumber', 'title', 'year']) if not result: utilities.Debug("doManualRating(): No data was returned from XBMC, aborting manual %s." % action) return else: result['imdbnumber'] = data['remoteid'] summaryInfo = globals.traktapi.getMovieSummary(result['imdbnumber']) if not summaryInfo is None: if action == 'rate': if not 'rating' in data: rateMedia(media_type, summaryInfo) else: rateMedia(media_type, summaryInfo, rating=data['rating']) elif action == 'unrate': rateMedia(media_type, summaryInfo, unrate=True) else: utilities.Debug("doManualRating(): Summary info was empty, possible problem retrieving data from trakt.tv")
def scrobble(self): Debug("[Scrobbler] self.curVideo:" + unicode(self.curVideo)) Debug("[Scrobbler] self.curVideoData" + unicode(self.curVideoData)) if self.curVideo['type']=="episode": match = None if 'id' in self.curVideo: #if self.curVideo.has_key("multi_episode_count"): #cur_episode = self._currentEpisode((self.watchedTime / self.totalTime) * 100, self.curVideo['multi_episode_count']) # cur_episode = self.curVideo['multi_episode_count'] - 1 # Debug("[Scrobbler] Multi-part episode, scrobbling part %d of %d." % (cur_episode + 1, self.curVideo['multi_episode_count'])) # match = utilities.getEpisodeDetailsFromXbmc(self.curVideo["multi_episode_data"][cur_episode], ['showtitle', 'season', 'episode', 'tvshowid', 'uniqueid']) #else: match = utilities.getEpisodeDetailsFromXbmc(self.curVideo['id'], ['showtitle', 'season', 'episode', 'tvshowid', 'uniqueid', 'file']) elif 'showtitle' in self.curVideoData and 'season' in self.curVideoData and 'episode' in self.curVideoData: match = {} match['tvdb_id'] = None match['year'] = None match['showtitle'] = self.curVideoData['showtitle'] match['season'] = self.curVideoData['season'] match['episode'] = self.curVideoData['episode'] match['uniqueid'] = self.curVideoData['uniqueid']['unknown'] elif 'label' in self.curVideo and len(self.curVideo['label']) > 0: match = {} match['label'] = self.curVideo['label'] if match == None: return duration = self.totalTime / 60 watchedPercent = int((self.watchedTime / self.totalTime) * 100) Debug("[Scrobbler] Match for MyShows.ru Plugin: " + str(match)) xbmc.executebuiltin( 'xbmc.RunPlugin("plugin://plugin.video.myshows/?mode=70&action=check&title=' + urllib.quote_plus( json.dumps(match)) + '")') #response = self.myshowsapi.scrobbleEpisode(match['tvdb_id'], match['showtitle'], match['year'], match['season'], match['episode'], match['uniqueid']['unknown'], duration, watchedPercent) #if response != None: #Debug("[Scrobbler] Scrobble response: "+str(response)) elif self.curVideo['type']=="movie": if len(self.curVideo['title'])<1: Debug("[Scrobbler] No title, stop scrobbing.") else: import kp from rating import rateMedia login=get_string_setting('login') password=get_string_setting('password') cookie=get_string_setting('cookie') if cookie=='': cookie=None if login!='' and password!='': kpLogin=kp.Login(login,password,cookie) else: Debug("No login or password!") if not cookie or not kpLogin.testAcc(): try: set_string_setting('cookie', kpLogin.get_cookie()) except: rateMedia(self.curVideo['type'], self.curVideo, offline=True) return if get_string_setting('cookie'): rateMedia(self.curVideo['type'], self.curVideo) self.curVideo = None