def onFocus(self,control): xbmc.log(str(control)) person_id='' backdrop = self.getControl(32107) person_id=self.get_person_from_control(control) if person_id!='': plot=self.getControl(32108) title=self.getControl(3001) person=tmdb.get_person(person_id) title.setLabel(person['name']) plot.setText(person['biography']) backdrop.setImage('') if person['profile_path']!=None: self.getControl(32121).setLabel('Loading') backdrop.setImage('http://image.tmdb.org/t/p/w130' +person['profile_path']) else: self.getControl(32121).setLabel('No Photo Available')
def show_movies_from_person(person_id, department): global source person = tmdb.get_person(person_id) crew_movies = person["movie_credits"]["crew"] movies = [] for movie in crew_movies: if movie["department"] == department: movies.append(movie) global maxpage page = 1 source = department pages = len(movies) / 20 if len(movies) % 20 > 0: pages = pages + 1 total_pages = pages maxpage = total_pages movies = sorted(movies, key=lambda k: k["release_date"], reverse=True) person_movies = [] if maxpage > 1: for i in range((page * 20) - 20, (page * 20) + 1): if i < len(movies): person_movies.append(movies[i]) movies = person_movies show_movies(movies, source, page)
def onClick(self, control): global source global query global page global maxpage global genre_id global genre_name global year global person_id global person_name global keyword_id global list_id global list_name movieid = "" movieid = self.get_movieid_from_control(control) do_movies = False do_tv = False do_people = False popular = 32101 top_rated = 32102 upcoming = 32103 now_playing = 32104 favorites = 33105 watchlist = 33106 rated = 33107 list_btn = 33108 query_btn = 81 previous = 32116 next = 32117 tv_shows = 32114 people = 32115 genre_btn = 82 year_btn = 83 person_btn = 84 if movieid != "": from resources.lib import movie movie.movie_id = movieid movie_window = movie.movieWindow("script-movieDetailWindow.xml", addon_path, "default") movie_window.doModal() del movie_window if control == popular and source != "popular": source = "popular" page = 1 do_movies = True if control == top_rated and source != "top_rated": source = "top_rated" do_movies = True page = 1 if control == upcoming and source != "upcoming": source = "upcoming" do_movies = True page = 1 if control == now_playing and source != "now_playing": source = "now_playing" do_movies = True page = 1 if control == favorites and source != "favorites": do_movies = True source = "favorites" page = 1 if control == watchlist and source != "watchlist": do_movies = True source = "watchlist" page = 1 if control == rated and source != "rated": do_movies = True source = "rated" page = 1 if control == query_btn: source = "query" do_movies = True page = 1 if control == genre_btn: source = "genre" page = 1 genre_id = "" do_movies = True if control == year_btn: source = "years" page = 1 year = "" do_movies = True if control == person_btn: source = "person" page = 1 person_id = "" person_name = "" do_movies = True if control == list_btn: source = "list" list_id = "" page = 1 do_movies = True if control == next: if page < maxpage: page = page + 1 do_movies = True if control == previous: if page > 1: page = page - 1 do_movies = True if control == tv_shows: do_tv = True if control == people: do_people = True if do_movies: ans = True if source == "query": self.getControl(80).setVisible(True) if control == query_btn: k = xbmc.Keyboard("", "Enter Movie Title to Search For") k.doModal() query = k.getText() if query != "": movies = tmdb.search_movies(query, page) maxpage = movies["total_pages"] movies = movies["results"] if maxpage > page: movies.append(tmdb.search_movies(query, page + 1)["results"][0]) show_movies(movies, source, page) elif source == "favorites": if self.session_id == "": session_id = utils.get_login() if session_id != "": self.session_id = session_id if self.session_id != "": movies = tmdb.get_favorite_movies(self.session_id, page) total_pages = movies["total_pages"] maxpage = total_pages movies = movies["results"] if total_pages > page: movies.append(tmdb.get_favorite_movies(self.session_id, page + 1)["results"][0]) show_movies(movies, source, page) elif source == "watchlist": if self.session_id == "": session_id = utils.get_login() if session_id != "": self.session_id = session_id if self.session_id != "": movies = tmdb.get_watchlist_movies(self.session_id, page) total_pages = movies["total_pages"] maxpage = total_pages movies = movies["results"] if total_pages > page: movies.append(tmdb.get_watchlist_movies(self.session_id, page + 1)["results"][0]) show_movies(movies, source, page) elif source == "rated": if self.session_id == "": session_id = utils.get_login() if session_id != "": self.session_id = session_id if self.session_id != "": movies = tmdb.get_rated_movies(self.session_id, page) total_pages = movies["total_pages"] maxpage = total_pages movies = movies["results"] if total_pages > page: movies.append(tmdb.get_rated_movies(self.session_id, page + 1)["results"][0]) show_movies(movies, source, page) elif source == "list": if self.session_id == "": session_id = utils.get_login() if session_id != "": self.session_id = session_id if self.session_id != "" and list_id == "": dg = dialogWindow("dialog_select.xml", addon_path, "Default") dg.mode = "list" dg.doModal() if list_name == "Add New": k = xbmc.Keyboard("", "Enter List Name") k.doModal() name = k.getText() if name != "" and (k.isConfirmed()): k = xbmc.Keyboard("", "Enter List Description") k.doModal() description = k.getText() if k.isConfirmed(): res = tmdb.add_list(name, description, addon.getSetting("session_id")) if res: dialog = xbmcgui.Dialog() dialog.notification( "themoviedb.org Browser", "List " + name + " Successfully Added", xbmcgui.NOTIFICATION_INFO, 5000, ) else: dialog = xbmcgui.Dialog() dialog.notification( "themoviedb.org Browser", "Failed Add " + name, xbmcgui.NOTIFICATION_ERROR, 5000 ) if list_id != "": movies = tmdb.get_movie_list(list_id) movies = movies["items"] pages = len(movies) / 20 if len(movies) % 20 > 0: pages = pages + 1 total_pages = pages maxpage = total_pages list_movies = [] if page > 1: for i in range((page * 20) - 20, (page * 20) + 1): if i < len(movies): list_movies.append(movies[i]) movies = list_movies show_movies(movies, source, page) elif source == "genre": if genre_id == "": dg = dialogWindow("dialog_select.xml", addon_path, "Default") dg.mode = "genre" dg.doModal() if genre_id != "": movies = tmdb.get_movies_by_genre(genre_id, page) total_pages = movies["total_pages"] movies = movies["results"] maxpage = total_pages if total_pages > page: movies.append(tmdb.get_movies_by_genre(genre_id, page + 1)["results"][0]) show_movies(movies, source, page) elif source == "years": if year == "": kb = xbmc.Keyboard("", "Enter Year") kb.doModal() year = kb.getText() movies = tmdb.get_movies_by_year(year, page) total_pages = movies["total_pages"] movies = movies["results"] maxpage = total_pages if total_pages > page: movies.append(tmdb.get_movies_by_year(year, page + 1)["results"][0]) show_movies(movies, source, page) elif source == "similar": movies = tmdb.get_similar_movies(similar_id, page) total_pages = movies["total_pages"] movies = movies["results"] maxpage = total_pages if total_pages > page: movies.append(tmdb.get_similar_movies(similar_id, page + 1)["results"][0]) show_movies(movies, source, page) elif source == "keyword": movies = tmdb.getMoviesByKeyword(keyword_id, page) total_pages = movies["total_pages"] movies = movies["results"] maxpage = total_pages if total_pages > page: movies.append(tmdb.getMoviesByKeyword(keyword_id, page + 1)["results"][0]) show_movies(movies, source, page) elif source == "person": if person_id == "": kb = xbmc.Keyboard("", "Enter Persons Name") kb.doModal() person_name = kb.getText() if person_name != "": dg = dialogWindow("dialog_select.xml", addon_path, "Default") dg.mode = "people" dg.doModal() movies = tmdb.getMoviesByActor(person_id, page) pages = len(movies) / 20 if len(movies) % 20 > 0: pages = pages + 1 total_pages = pages xbmc.log(str(len(movies))) maxpage = total_pages movies = sorted(movies, key=lambda k: k["release_date"], reverse=True) person_movies = [] if page > 1: for i in range((page * 20) - 20, (page * 20) + 1): if i < len(movies): person_movies.append(movies[i]) movies = person_movies show_movies(movies, source, page) elif source in ("Production", "Directing", "Writing"): person = tmdb.get_person(person_id) crew_movies = person["movie_credits"]["crew"] movies = [] for movie in crew_movies: if movie["department"] == source: movies.append(movie) pages = len(movies) / 20 if len(movies) % 20 > 0: pages = pages + 1 total_pages = pages maxpage = total_pages movies = sorted(movies, key=lambda k: k["release_date"], reverse=True) person_movies = [] if page > 1: for i in range((page * 20) - 20, (page * 20) + 1): if i < len(movies): person_movies.append(movies[i]) movies = person_movies show_movies(movies, source, page) else: query = "" xbmc.log(source) movies = tmdb.get_movies(source, page) total_pages = movies["total_pages"] maxpage = 10 if source == "upcoming" or source == "now_playing": maxpage = movies["total_pages"] movies = movies["results"] if total_pages > page: movies.append(tmdb.get_movies(source, page + 1)["results"][0]) show_movies(movies, source, page) elif do_tv: from resources.lib import tvshows tvshows.source = "popular" tvshows.startup() elif do_people: from resources.lib import people people.source = "popular" people.startup()
def onInit(self): self.posters=[] self.getControl(129).setVisible(False) self.getControl(5020).setVisible(False) self.getControl(116).setSelected(True) person=tmdb.get_person(person_id) self.current_person=person if use_chrome=='true' and person['homepage']!='':self.getControl(129).setVisible(True) bio=self.getControl(103) title=xbmcgui.ControlButton(220,15,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',)]) birthday=self.getControl(111) credits=self.getControl(110) birthplace=self.getControl(112) self.current_person=person self.movie_crew = person['movie_credits']['crew'] self.movie_cast = person['movie_credits']['cast'] self.tv_crew = person['tv_credits']['crew'] self.tv_cast = person['tv_credits']['cast'] bio.setText(person['biography']) title.setLabel(person['name']) birthday.setLabel(person['birthday']) birthplace.setLabel(person['place_of_birth']) credits.setLabel('Movie: ' + str(len(self.movie_cast)) + ' TV: ' + str(len(self.tv_cast))) self.movie_direction=[] self.movie_production=[] self.movie_writing=[] self.tv_direction=[] self.tv_production=[] self.tv_writing=[] for crew in self.movie_crew: if crew['department']=='Production':self.movie_production.append(crew) if crew['department']=='Writing':self.movie_writing.append(crew) if crew['department']=='Directing':self.movie_direction.append(crew) for crew in self.tv_crew: if crew['department']=='Production':self.tv_production.append(crew) if crew['department']=='Writing':self.tv_writing.append(crew) if crew['department']=='Directing':self.tv_direction.append(crew) if len(self.movie_cast)>0: li=xbmcgui.ListItem('Actor ('+ str(len(self.movie_cast))+')') self.getControl(115).addItem(li) if len(self.movie_direction) > 0: li=xbmcgui.ListItem('Director (' + str(len(self.movie_direction)) +')') self.getControl(115).addItem(li) if len(self.movie_production) > 0: li=xbmcgui.ListItem('Producer (' + str(len(self.movie_production)) +')') self.getControl(115).addItem(li) if len(self.movie_writing) > 0: li=xbmcgui.ListItem('Writer (' + str(len(self.movie_writing)) +')') self.getControl(115).addItem(li) for image in person['images']['profiles']: self.posters.append(image['file_path']) 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('') self.getControl(107).setLabel('1 of ' + str(len(self.posters))) self.show_person_movies(person) self.onFocus(200)
def startup(): person=tmdb.get_person(person_id) show_person(person)