def onInit(self): if self.session_id != "": states = tmdb.get_movie_account_states(self.movie["id"], self.session_id) if states["favorite"]: li = xbmcgui.ListItem("Remove from Favorites") li.setProperty("action", "remove_favorite") else: li = xbmcgui.ListItem("Add to Favorites") li.setProperty("action", "add_favorite") self.getControl(300).addItem(li) if states["watchlist"]: li = xbmcgui.ListItem("Remove from Watchlist") li.setProperty("action", "remove_watchlist") else: li = xbmcgui.ListItem("Add to Watchlist") li.setProperty("action", "add_watchlist") self.getControl(300).addItem(li) if self.mode != "list": li = xbmcgui.ListItem("Add/Remove from List") li.setProperty("action", "manage_list") else: li = xbmcgui.ListItem("Remove from List") li.setProperty("action", "remove_list") self.getControl(300).addItem(li) if self.movie["title"] + " (" + self.movie["release_date"][:4] + ")" in self.xbmc_movies: li = xbmcgui.ListItem("Play from Here") li.setProperty("action", "play") else: li = xbmcgui.ListItem("Add to Couchpotato") li.setProperty("action", "add_couchpotato") self.getControl(300).addItem(li) li = xbmcgui.ListItem("Movie Information") li.setProperty("action", "show_info") self.getControl(300).addItem(li) self.setFocus(self.getControl(300))
def updateIcons(self, movie, item, *args): if show_icons == "0": if self.session_id != "": state = tmdb.get_movie_account_states(movie["id"], self.session_id) if state["favorite"]: self.getControl(600 + item).setImage("favorite-enable.png") else: self.getControl(600 + item).setImage("") if state["watchlist"]: self.getControl(700 + item).setImage("popcorn-icon-enable.png") else: self.getControl(700 + item).setImage("") if utils.movie_on_list(movie["id"], self.session_id): self.getControl(800 + item).setImage("film-icon.png") else: self.getControl(800 + item).setImage("") if movie["release_date"] != None: if movie["title"] + " (" + movie["release_date"][:4] + ")" in self.xbmc_movies: self.getControl(item + 300).setImage("xbmc_icon.png") else: self.getControl(300 + item).setImage("") if show_icons == "1": self.getControl(105).setVisible(True) self.getControl(100).setImage("xbmc_icon_disable.png") self.getControl(101).setImage("favorite-disable.png") self.getControl(102).setImage("popcorn-icon-disable.png") self.getControl(103).setImage("film-icon-disable.png") if self.session_id != "": state = tmdb.get_movie_account_states(movie["id"], self.session_id) if state["favorite"]: self.getControl(101).setImage("favorite-enable.png") if state["watchlist"]: self.getControl(102).setImage("popcorn-icon-enable.png") if utils.movie_on_list(movie["id"], self.session_id): self.getControl(103).setImage("film-icon.png") if movie["release_date"] != None: if movie["title"] + " (" + movie["release_date"][:4] + ")" in self.xbmc_movies: self.getControl(100).setImage("xbmc_icon.png") else: self.getControl(105).setVisible(False) thread.exit_thread()
def onInit(self): self.getControl(129).setVisible(False) self.getControl(5020).setVisible(False) movie=tmdb.get_movie(movie_id) if use_chrome=='true' and movie['homepage']!='':self.getControl(129).setVisible(True) self.session_id=addon.getSetting('session_id') star=round(movie['vote_average'],2) if self.session_id!='': lists=[] lists_string=tmdb.get_users_lists(addon.getSetting('session_id'),1) lists_results=lists_string['results'] for list in lists_results: lists.append(list['id']) if lists_string['total_pages']> 1: for i in range(2,lists_string['total_pages']): l=tmdb.get_users_lists(addon.getSetting('session_id'),i) for list in l['results']: lists.append(l['id']) for list in lists: if tmdb.is_in_list(list,movie_id)['item_present']: self.getControl(4010).setImage('film-icon.png') break states=tmdb.get_movie_account_states(movie_id,self.session_id) if states['favorite']:self.getControl(4011).setImage('favorite-enable.png') if states['watchlist']:self.getControl(5011).setImage('popcorn-enable.png') if states['rated']: self.getControl(131).setLabel(str(star)+'/10 (' + str(movie['vote_count']) + ' votes, you voted '+ str(states['rated']['value']) +')') else: self.getControl(131).setLabel(str(star)+'/10 (' + str(movie['vote_count']) + ' votes)') else: self.getControl(131).setLabel(str(star)+'/10 (' + str(movie['vote_count']) + ' votes)') self.file=utils.find_xbmc_by_title(movie['title'],movie['release_date'][:4]) if self.file!='': self.getControl(127).setLabel('Play') you_tube_base_url='plugin://plugin.video.youtube/?action=play_video&videoid=' self.posters=[] str_similar=tmdb.get_similar_movies(movie_id,1) similar=str_similar['results'] if self.mode=='similar':self.total_results=str_similar['total_results'] plot=self.getControl(103) tagline=self.getControl(108) runtime=self.getControl(109) title=xbmcgui.ControlButton(20,5,800,30,'','','',0,0,0,title_font,'ff606060','',0,'','ff606060') title=self.addControl(title) title=self.getControl(3001) title.setAnimations([('windowclose', 'effect=fade end=0 time=0',)]) self.current_movie=movie crew = movie['credits']['crew'] cast = movie['credits']['cast'] self.cast= sorted(cast, key=lambda k: k['order']) director='' writer='' genres='' for crew_member in crew: if crew_member['job'] =='Director': director=director+ crew_member['name'] + ", " if crew_member['department'] == 'Writing': writer=writer + crew_member['name'] + ", " director=director[:-2] writer=writer[:-2] studio='' for company in movie['production_companies']: studio=studio+company['name'] + ", " studio=studio[:-2] for genre in movie['genres']: genres=genres + genre['name'] + ' / ' genres=genres[:-3] mpaa='' for release in movie['releases']['countries']: if release['iso_3166_1'] =='US': mpaa=release['certification'] self.getControl(110).setLabel(director) self.getControl(112).setLabel(studio) self.getControl(113).setLabel(genres) self.getControl(114).setLabel(mpaa) self.getControl(115).setLabel(movie['status']) self.getControl(116).setLabel(utils.format_currency(movie['budget'])) self.getControl(117).setLabel(utils.format_currency(movie['revenue'])) self.getControl(118).setLabel(utils.format_date(movie['release_date'])) self.getControl(111).setLabel(writer) title.setLabel(movie['title']) runtime.setLabel(str(movie['runtime']) +' min') tagline.setLabel(movie['tagline']) plot.setText(movie['overview']) self.getControl(102).setImage('') self.backgrounds=[] self.posters=[] if movie['poster_path']!=None: self.posters.append(movie['poster_path']) if movie['images']['posters']>0: for poster in movie['images']['posters']: if poster['iso_639_1']=='en': if poster['file_path'] not in self.posters: self.posters.append(poster['file_path']) xbmc.log('number of posters = ' + str(len(self.posters))) if len(self.posters) > 0: self.getControl(102).setImage('') self.getControl(101).setLabel('Loading') self.getControl(102).setImage('http://image.tmdb.org/t/p/original' +self.posters[0]) self.getControl(901).setImage('http://image.tmdb.org/t/p/original' +self.posters[0]) else: self.getControl(101).setLabel('') if movie['backdrop_path']!=None: self.backgrounds.append(movie['backdrop_path']) if movie['images']['backdrops']>0: for background in movie['images']['backdrops']: if background['file_path'] not in self.backgrounds: self.backgrounds.append(background['file_path']) xbmc.log('number of backgrounds = ' + str(len(self.backgrounds))) if len(self.backgrounds) > 0: self.getControl(402).setImage('') self.getControl(401).setLabel('Loading') self.getControl(402).setImage('http://image.tmdb.org/t/p/original' +self.backgrounds[0]) self.getControl(900).setImage('http://image.tmdb.org/t/p/original' +self.backgrounds[0]) else: self.getControl(401).setLabel('') self.getControl(107).setLabel('1 of ' + str(len(self.posters))) self.getControl(407).setLabel('1 of ' + str(len(self.backgrounds))) self.show_similar(similar) if star >= .5: self.getControl(1001).setImage('half-star-icon-enable.png') if star >= 1: self.getControl(1001).setImage('star-icon-enable.png') if star >= 1.5: self.getControl(1002).setImage('half-star-icon-enable.png') if star >= 1: self.getControl(1002).setImage('star-icon-enable.png') if star >= 2.5: self.getControl(1003).setImage('half-star-icon-enable.png') if star >= 3: self.getControl(1003).setImage('star-icon-enable.png') if star >= 3.5: self.getControl(1004).setImage('half-star-icon-enable.png') if star >= 4: self.getControl(1004).setImage('star-icon-enable.png') if star >=4.5: self.getControl(1005).setImage('half-star-icon-enable.png') if star >= 5: self.getControl(1005).setImage('star-icon-enable.png') if star >= 5.5: self.getControl(1006).setImage('half-star-icon-enable.png') if star >= 6: self.getControl(1006).setImage('star-icon-enable.png') if star >= 6.5: self.getControl(1007).setImage('half-star-icon-enable.png') if star >= 7: self.getControl(1007).setImage('star-icon-enable.png') if star >= 7.5: self.getControl(1008).setImage('half-star-icon-enable.png') if star >= 8: self.getControl(1008).setImage('star-icon-enable.png') if star >= 8.5: self.getControl(1009).setImage('half-star-icon-enable.png') if star >= 9: self.getControl(1009).setImage('star-icon-enable.png') if star >= 9.5: self.getControl(1010).setImage('half-star-icon-enable.png') if star >= 10: self.getControl(1010).setImage('star-icon-enable.png')
def onClick(self,control): xbmc.log('you clicked '+ str(control)) global movie_id global movie global cast_member global cast_member_id global genre_id global current_genre global keyword_id global current_keyword global list_id global list_name global in_list global list_count if control in(200,201,202,203,204,205,206,207,208,209): if self.mode=='similar': movie_id=self.similar[control-200]['id'] startup() elif self.mode=='cast': from resources.lib import person person.person_id=self.cast[control-200]['id'] person.startup() elif self.mode=='keywords': movie_id=self.keywords[control-200]['id'] startup() elif self.mode=='genre': movie_id=self.genres[control-200]['id'] startup() elif self.mode=='cast_movies': movie_id=self.cast_movies[control-200]['id'] startup() if control in (50,51,52,4000): dg = dialogWindow('dialog_select.xml',addon_path,'default') dg.curr_movie=self.current_movie if control==50:dg.mode='trailer' if control==51:dg.mode='keyword' if control==52:dg.mode='genre' if control==4000: #List dg.mode='list' if self.session_id=='': session_id=utils.get_login() if session_id!='':self.session_id=session_id if self.session_id!='' or control in(50,51,52): dg.doModal() if control==4000: if list_id!='': if in_list=='true': res=tmdb.remove_from_list(list_id,self.current_movie['id'],addon.getSetting('session_id')) if res: list_count=list_count-1 dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser', 'Successfully Removed ' + self.current_movie['title'] + ' from '+ list_name, xbmcgui.NOTIFICATION_INFO, 5000) if list_count<=0:self.getControl(4010).setImage('film-icon-disable.png') else: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser', 'Failed to Remove ' + self.current_movie['title'] + ' from ' + list_name, xbmcgui.NOTIFICATION_ERROR, 5000) else: res=tmdb.add_to_list(list_id,self.current_movie['id'],addon.getSetting('session_id')) if res: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser', 'Successfully Added ' + self.current_movie['title'] + ' to '+ list_name, xbmcgui.NOTIFICATION_INFO, 5000) self.getControl(4010).setImage('film-icon.png') else: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser', 'Failed to Add ' + self.current_movie['title'] + ' to ' + list_name, xbmcgui.NOTIFICATION_ERROR, 5000) if control==51: if keyword_id!='': self.mode='keywords' results=tmdb.getMoviesByKeyword(keyword_id,1) self.keywords=results['results'] self.total_results=results['total_results'] self.show_keywords(self.keywords) elif control==52: if genre_id!='': self.mode='genre' results=tmdb.get_movies_by_genre(genre_id,1) self.genres=results['results'] self.total_results=results['total_results'] self.show_genre(self.genres) if control == 105 or control == 106: if control==105: if self.poster_index==0: self.poster_index=len(self.posters)-1 else: self.poster_index=self.poster_index-1 if control==106: if self.poster_index==len(self.posters)-1: self.poster_index=0 else: self.poster_index=self.poster_index+1 self.getControl(102).setImage('') self.getControl(107).setLabel(str(self.poster_index+1) + ' of ' + str(len(self.posters))) self.getControl(101).setLabel('Loading') self.getControl(102).setImage('http://image.tmdb.org/t/p/original' +self.posters[self.poster_index]) self.getControl(901).setImage('http://image.tmdb.org/t/p/original' +self.posters[self.poster_index]) if control == 122: self.getControl(126).setLabel('') self.mode='similar' str_similar=tmdb.get_similar_movies(self.current_movie['id'],1) self.similar=str_similar['results'] self.total_results=str_similar['total_results'] self.show_similar(self.similar) if control == 124: self.getControl(126).setLabel('') self.mode = 'cast' self.show_cast(self.cast) if control ==127: if self.getControl(127).getLabel()=='Play': xbmc.Player().play(self.file) xbmc.executebuiltin('Dialog.Close(all,true)') else: xbmc.executebuiltin("XBMC.RunPlugin('plugin://plugin.video.couchpotato_manager/movies/add?title='" + self.current_movie['title']+ "')'") if control == 405 or control == 406: if control==405: if self.background_index==0: self.background_index=len(self.backgrounds)-1 else: self.background_index=self.background_index-1 if control==406 : if self.background_index==len(self.backgrounds)-1: self.background_index=0 else: self.background_index=self.background_index+1 self.getControl(402).setImage('') self.getControl(900).setImage('') self.getControl(407).setLabel(str(self.background_index+1) + ' of ' + str(len(self.backgrounds))) self.getControl(401).setLabel('Loading') self.getControl(402).setImage('http://image.tmdb.org/t/p/original' +self.backgrounds[self.background_index]) self.getControl(900).setImage('http://image.tmdb.org/t/p/original' +self.backgrounds[self.background_index]) if control==104: iw = imageWindow('image.xml', addon_path,'default') iw.images=self.posters iw.image_index=self.poster_index iw.doModal() del iw if control==404: iw = imageWindow('image.xml', addon_path,'default') iw.images=self.backgrounds iw.image_index=self.background_index iw.doModal() del iw if control==132: rw = ratingWindow('rating_dialog.xml',addon_path,'default') rw.curr_movie=self.current_movie rw.doModal() del rw xbmc.sleep(1000) states=tmdb.get_movie_account_states(self.current_movie['id'],self.session_id) if states['rated']: star=round(self.current_movie['vote_average'],2) self.getControl(131).setLabel(str(star)+'/10 (' + str(self.current_movie['vote_count']) + ' votes, you voted '+ str(states['rated']['value']) +')') if control==129: #Webpage url=self.current_movie['homepage'] url=urllib.quote_plus(url) xbmc.Player().play('plugin://plugin.program.chrome.launcher/?url=' + url + '&mode=showSite&stopPlayback=no') if control==4001: #Favorite if self.session_id=='': session_id=utils.get_login() if session_id!='':self.session_id=session_id if self.session_id!='': res=tmdb.update_favorite_movie(self.current_movie['id'],addon.getSetting('session_id')) if res['success']: if res['update']: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser', 'Successfully Added ' + self.current_movie['title'] + ' to Favorites', xbmcgui.NOTIFICATION_INFO, 5000) self.getControl(4011).setImage('favorite-enable.png') else: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser', 'Successfully Removed ' + self.current_movie['title'] + ' from Favorites', xbmcgui.NOTIFICATION_INFO, 5000) self.getControl(4011).setImage('favorite-disable.png') else: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser','Failed to Update Favorite', xbmcgui.NOTIFICATION_ERROR, 5000) if control==5001: #Watchlist if self.session_id=='': session_id=utils.get_login() if session_id!='':self.session_id=session_id if self.session_id!='': res=tmdb.update_watchlist_movie(self.current_movie['id'],addon.getSetting('session_id')) if res['success']: if res['update']: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser', 'Successfully Added ' + self.current_movie['title'] + ' to Watchlist', xbmcgui.NOTIFICATION_INFO, 5000) self.getControl(5011).setImage('popcorn-enable.png') else: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser', 'Successfully Removed ' + self.current_movie['title'] + ' from Watchlist', xbmcgui.NOTIFICATION_INFO, 5000) self.getControl(5011).setImage('popcorn-disable.png') else: dialog = xbmcgui.Dialog() dialog.notification('themoviedb.org Browser','Failed to Update Watchlist', xbmcgui.NOTIFICATION_ERROR, 5000) if control==5020: #Show All from resources.lib import movies if self.mode=='genre': movies.genre_id=genre_id movies.genre_name=current_genre movies.page=1 movies.source='genre' movies.show_movies_by_genre(genre_id) if self.mode=='similar': movies.similar_name=self.current_movie['title'] movies.similar_id=self.current_movie['id'] movies.page=1 movies.source='similar' movies.show_similar_movies(self.current_movie['id']) if self.mode=='cast_movies': movies.person_id=cast_member_id movies.person_name=cast_member movies.page=1 movies.source='person' movies.show_movies_by_person(cast_member_id) if self.mode=='keywords': movies.keyword_id=keyword_id movies.keyword_name=current_keyword movies.page=1 movies.source='keyword' movies.show_movies_by_keyword(keyword_id)