Ejemplo n.º 1
0
 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))
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
 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')
Ejemplo n.º 4
0
    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)