def __init__( self ): # # ScrewAttack - Video Game Vault # listitem = xbmcgui.ListItem( __language__(30074), iconImage = "DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-screwattack&plugin_category=%s&channel_category=vault' % ( sys.argv[ 0 ], urllib.quote_plus("%s - %s" % ( __language__(30073), __language__(30074) ) ) ), listitem=listitem, isFolder=True) # # ScrewAttack - Top Ten # listitem = xbmcgui.ListItem( __language__(30075), iconImage = "DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-screwattack&plugin_category=%s&channel_category=top10' % ( sys.argv[ 0 ], urllib.quote_plus("%s - %s" % ( __language__(30073), __language__(30075) ) ) ), listitem=listitem, isFolder=True) # # ScrewAttack - Angry Video Game Nerd # listitem = xbmcgui.ListItem( __language__(30076), iconImage = "DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-screwattack&plugin_category=%s&channel_category=nerd' % ( sys.argv[ 0 ], urllib.quote_plus("%s - %s" % ( __language__(30073), __language__(30076) ) ) ), listitem=listitem, isFolder=True) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category="%s" % __language__(30073) ) # End of list... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def __init__( self ): # # Search... # listitem = xbmcgui.ListItem( __language__(30009), iconImage="DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1] ), url = '%s?action=list-search&query=&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30008) ), listitem=listitem, isFolder=True) # # Previous search queries... # try : saved_queries = eval( __settings__.getSetting( "saved_queries" ) ) except : saved_queries = [] for query in saved_queries : listitem = xbmcgui.ListItem( query, iconImage="DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-search&query=%s&plugin_category=%s' % ( sys.argv[ 0 ], urllib.quote( query ), __language__(30008) ), listitem=listitem, isFolder=True) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=( "%s" % __language__(30008) ) ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of list... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def getVideos( self ) : # # Get HTML page... # httpCommunicator = HTTPCommunicator() htmlData = httpCommunicator.get( "http://www.gametrailers.com/top20.php?toplist=media&topsublist=yesterday&plattyfilt=all&page=%u" % ( (self.current_page - 1 ) * 20 ) ) # Debug if (self.DEBUG) : f = open(os.path.join( xbmc.translatePath( "special://profile" ), "plugin_data", "video", sys.modules[ "__main__" ].__plugin__, "page_%i.html" % self.current_page), "w") f.write( htmlData ) f.close() # Parse response... soupStrainer = SoupStrainer ( "div", { "id" : "top_media" } ) beautifulSoup = BeautifulSoup( htmlData, soupStrainer ) # # Parse movie entries... # div_top_media = beautifulSoup.find ("div", { "id" : "top_media_yesterday" } ) videos = self.parseMediaDiv( div_top_media ) if len( videos ) == 0 : div_top_media = beautifulSoup.find ("div", { "id" : "top_media_week" } ) videos = self.parseMediaDiv( div_top_media ) for video in videos : # Add to list... listitem = xbmcgui.ListItem( video[ "title" ], iconImage="DefaultVideo.png", thumbnailImage=video[ "thumbnail" ] ) listitem.setInfo( "video", { "Title" : video[ "title" ], "Studio" : "GameTrailers", "Plot" : video[ "plot" ], "Genre" : video[ "date" ], "Overlay" : video[ "overlay" ] } ) plugin_play_url = '%s?action=play&video_page_url=%s' % ( sys.argv[ 0 ], urllib.quote_plus( video[ "video_page" ] ) ) xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=plugin_play_url, listitem=listitem, isFolder=False) # # Get the number of entries... # div_reviewlist_barshort2 = div_top_media.find( "div", { "class" : "reviewlist_barshort2" } ) div_reviewlist_bartext = div_reviewlist_barshort2.find( "div", { "class" : "reviewlist_bartext" } ) reviewlist = div_reviewlist_bartext.string.strip() reviewlist_result = self.ENTRY_LIST_RE.search( reviewlist ) entry_no_start = reviewlist_result.group(1) entry_no_end = reviewlist_result.group(2) # Next page entry... listitem = xbmcgui.ListItem (__language__(30503), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(self.IMAGES_PATH, 'next-page.png')) xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = "%s?action=list-top20&plugin_category=%s&page=%i" % ( sys.argv[0], self.plugin_category, self.current_page + 1 ), listitem = listitem, isFolder = True) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=( "%s (" + __language__(30501) + ")" ) % ( self.plugin_category, entry_no_start, entry_no_end ) ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def getVideos(self): # # Get HTML page... # url = ( "http://www.gametrailers.com/feeds/line_listing_results/video_hub/6bc9c4b7-0147-4861-9dac-7bfe8db9a141/?sortBy=most_recent&show=a8b6ad0a-31fb-4c46-a5f1-be74306bffd3¤tPage=%d" % (self.current_page) ) htmlData = HTTPCommunicator().get(url) # Parse response... beautifulSoup = BeautifulSoup(htmlData) # # Parse movie entries... # lis = beautifulSoup.findAll("div", {"class": "video_information"}) for li in lis: div_holder = li.find("div", {"class": "holder"}) # Title h3 = div_holder.find("h3") h4 = div_holder.find("h4") title = h4.a.string.strip() # Thumbnail a_thumbnail = div_holder.find("a", {"class": "thumbnail"}) a_thumbnail_imgs = a_thumbnail.findAll("img") thumbnail_url = a_thumbnail_imgs[-1]["src"] # Video page... video_page_url = a_thumbnail["href"] # Add to list... listitem = xbmcgui.ListItem(title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail_url) listitem.setInfo("video", {"Title": title, "Studio": "GameTrailers"}) plugin_play_url = "%s?action=play&video_page_url=%s" % (sys.argv[0], urllib.quote_plus(video_page_url)) xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=plugin_play_url, listitem=listitem, isFolder=False) # Next page entry... listitem = xbmcgui.ListItem( __language__(30503), iconImage="DefaultFolder.png", thumbnailImage=os.path.join(__images_path__, "next-page.png"), ) xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url="%s?action=list-gttv&plugin_category=%s&page=%i" % (sys.argv[0], self.plugin_category, self.current_page + 1), listitem=listitem, isFolder=True, ) # Disable sorting... xbmcplugin.addSortMethod(handle=int(sys.argv[1]), sortMethod=xbmcplugin.SORT_METHOD_NONE) # End of directory... xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
def __init__( self ): # Constants IMAGES_DIR = xbmc.translatePath( os.path.join( os.getcwd(), 'resources', 'images' ) ) # # PC # listitem = xbmcgui.ListItem( __language__(30061), iconImage="DefaultFolder.png", thumbnailImage=os.path.join( IMAGES_DIR, "pc.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-platform&platform=pc&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30061) ), listitem=listitem, isFolder=True) # # PlayStation 3 # listitem = xbmcgui.ListItem( __language__(30062), iconImage="DefaultFolder.png", thumbnailImage=os.path.join( IMAGES_DIR, "ps3.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-platform&platform=ps3&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30062) ), listitem=listitem, isFolder=True) # # Xbox 360 # listitem = xbmcgui.ListItem( __language__(30063), iconImage="DefaultFolder.png", thumbnailImage=os.path.join( IMAGES_DIR, "xbox360.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-platform&platform=xbox360&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30063) ), listitem=listitem, isFolder=True) # # Nintendo Wii # listitem = xbmcgui.ListItem( __language__(30064), iconImage="DefaultFolder.png", thumbnailImage=os.path.join( IMAGES_DIR, "wii.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-platform&platform=wii&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30064) ), listitem=listitem, isFolder=True) # # PSP # listitem = xbmcgui.ListItem( __language__(30066), iconImage="DefaultFolder.png", thumbnailImage=os.path.join(IMAGES_DIR, "psp.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-platform&platform=psp&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30066) ), listitem=listitem, isFolder=True) # # DS # listitem = xbmcgui.ListItem( __language__(30067), iconImage="DefaultFolder.png", thumbnailImage=os.path.join(IMAGES_DIR, "ds.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-platform&platform=ds&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30067) ), listitem=listitem, isFolder=True) # # Mobile # listitem = xbmcgui.ListItem( __language__(30068), iconImage="DefaultFolder.png", thumbnailImage=os.path.join(IMAGES_DIR, "mobile.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-platform&platform=mobile&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30068) ), listitem=listitem, isFolder=True) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=( "%s" % __language__(30006) ) ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of list... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def getVideos( self ) : # # Get HTML page... # if (self.channel_category == "vault") : url = "http://www.gametrailers.com/feeds/line_listing_results/video_hub/6bc9c4b7-0147-4861-9dac-7bfe8db9a141/?sortBy=most_recent&show=eb97105a-c23d-4ada-b531-900a06033d7a¤tPage=%d" % ( self.current_page ) elif (self.channel_category == "top10" ) : url = "http://www.gametrailers.com/feeds/line_listing_results/video_hub/6bc9c4b7-0147-4861-9dac-7bfe8db9a141/?sortBy=most_recent&show=b8c65585-da14-4e61-a4bf-2e21a58abf5b¤tPage=%d" % ( self.current_page ) elif (self.channel_category == "nerd" ) : url = "http://www.gametrailers.com/feeds/line_listing_results/video_hub/6bc9c4b7-0147-4861-9dac-7bfe8db9a141/?sortBy=most_recent&show=dd6d1e53-4b78-4c03-a749-aa4ab2547a1e¤tPage=%d" % ( self.current_page ) htmlData = HTTPCommunicator().get( url ) # Parse response... beautifulSoup = BeautifulSoup( htmlData ) # # Parse movie entries... # lis = beautifulSoup.findAll ( "div", { "class" : "video_information" } ) for li in lis : div_holder = li.find ( "div", { "class" : "holder" } ) # Title h4 = div_holder.find ( "h4" ) title = h4.a.string.strip() # Thumbnail a_thumbnail = div_holder.find ( "a", { "class" : "thumbnail" } ) a_thumbnail_imgs = a_thumbnail.findAll ( "img" ) thumbnail_url = a_thumbnail_imgs[ -1 ] [ "src" ] # Video page... video_page_url = a_thumbnail[ "href" ] # Add to list... listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail_url ) listitem.setInfo( "video", { "Title" : title, "Studio" : "GameTrailers" } ) plugin_play_url = '%s?action=play&video_page_url=%s' % ( sys.argv[ 0 ], urllib.quote_plus( video_page_url ) ) xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=plugin_play_url, listitem=listitem, isFolder=False) # Next page entry... listitem = xbmcgui.ListItem (__language__(30503), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(__images_path__, 'next-page.png')) xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = "%s?action=list-screwattack&plugin_category=%s&channel_category=%s&page=%i" % ( sys.argv[0], self.plugin_category, self.channel_category, self.current_page + 1 ), listitem = listitem, isFolder = True) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def getVideos( self ) : # # Get HTML page... # url = "http://www.gametrailers.com/feeds/line_listing_results/show_episode_guide/2ea7941b-efc7-45fd-9ade-e5e69ed772fb/?sortBy=most_recent¤tPage=%d" % ( self.current_page ) htmlData = HTTPCommunicator().get( url ) # Parse response... beautifulSoup = BeautifulSoup( htmlData ) # # Parse movie entries... # lis = beautifulSoup.findAll ( "div", { "class" : "episode_information" } ) for li in lis : # Thumbnail a_thumbnail = li.find ( "a", { "class" : "thumbnail" } ) a_thumbnail_imgs = a_thumbnail.findAll ( "img" ) thumbnail_url = a_thumbnail_imgs[ -1 ] [ "src" ] # Title div_description = li.find( "div", { "class" : "description" } ) h4 = div_description.find ( "h4" ) title = h4.a.string.strip() # Video page... video_page_url = a_thumbnail[ "href" ] # Add to list... listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail_url ) listitem.setInfo( "video", { "Title" : title, "Studio" : "GameTrailers" } ) plugin_play_url = '%s?action=play&video_page_url=%s' % ( sys.argv[ 0 ], urllib.quote_plus( video_page_url ) ) xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=plugin_play_url, listitem=listitem, isFolder=False) # Next page entry... listitem = xbmcgui.ListItem (__language__(30503), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(__images_path__, 'next-page.png')) xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = "%s?action=list-retrospectives&plugin_category=%s&page=%i" % ( sys.argv[0], self.plugin_category, self.current_page + 1 ), listitem = listitem, isFolder = True) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def __init__( self ): # # All # listitem = xbmcgui.ListItem( __language__(30001), iconImage="DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1] ), url = '%s?action=list-all&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30001) ), listitem=listitem, isFolder=True) # # Previews # listitem = xbmcgui.ListItem( __language__(30002), iconImage="DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-previews&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30002) ), listitem=listitem, isFolder=True) # # Reviews # listitem = xbmcgui.ListItem( __language__(30003), iconImage="DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-reviews&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30003) ), listitem=listitem, isFolder=True) # # Gameplay # listitem = xbmcgui.ListItem( __language__(30005), iconImage="DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-gameplay&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30005) ), listitem=listitem, isFolder=True) # # Platforms # #listitem = xbmcgui.ListItem( __language__(30006), iconImage="DefaultFolder.png" ) #xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=main-platforms&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30006) ), listitem=listitem, isFolder=True) # # Channels # listitem = xbmcgui.ListItem( __language__(30007), iconImage = "DefaultFolder.png" ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=main-channels&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30007) ), listitem=listitem, isFolder=True) # # Search # listitem = xbmcgui.ListItem( __language__(30008), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(__images_path__, "search.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=main-search&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30008) ), listitem=listitem, isFolder=True) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of list... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def __init__( self ): # Constants IMAGES_DIR = xbmc.translatePath( os.path.join( os.getcwd(), 'resources', 'images' ) ) # # GTTV # listitem = xbmcgui.ListItem( __language__(30070), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(IMAGES_DIR, "GTTV.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-gttv&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30070) ), listitem=listitem, isFolder=True) # # Bonus Round # listitem = xbmcgui.ListItem( __language__(30071), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(IMAGES_DIR, "BonusRound.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-bonusround&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30071) ), listitem=listitem, isFolder=True) # # Retrospectives # listitem = xbmcgui.ListItem( __language__(30072), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(IMAGES_DIR, "Retrospectives.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-retrospectives&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30072) ), listitem=listitem, isFolder=True) # # ScrewAttack # listitem = xbmcgui.ListItem( __language__(30073), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(IMAGES_DIR, "ScrewAttack.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=main-screwattack&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30073) ), listitem=listitem, isFolder=True) # # Pach-Attack! # listitem = xbmcgui.ListItem( __language__(30077), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(IMAGES_DIR, "PachAttack.png" ) ) xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = '%s?action=list-pachattack&plugin_category=%s' % ( sys.argv[ 0 ], __language__(30077) ), listitem=listitem, isFolder=True) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=__language__(30007) ) # End of list... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def getVideos( self ) : # # Get HTML page... # httpCommunicator = HTTPCommunicator() htmlData = httpCommunicator.get( "http://%s.gametrailers.com/?show=&page=%u" % ( self.platform, self.current_page ) ) # Debug if (self.DEBUG) : f = open(os.path.join( xbmc.translatePath( "special://profile" ), "plugin_data", "video", sys.modules[ "__main__" ].__plugin__, "page_platform_%i.html" % self.current_page), "w") f.write( htmlData ) f.close() # Parse response... soupStrainer = SoupStrainer ( "div", { "id" : "AllMedia" } ) beautifulSoup = BeautifulSoup( htmlData, soupStrainer ) # # Parse movie entries... # table_entries = beautifulSoup.findAll ( "table", { "width" : "100%" } ) for table_entry in table_entries : table_entry_tr = table_entry.find ("tr" ) table_entry_tr_tds = table_entry_tr.findAll ( "td" ) table_entry_tr_td_1 = table_entry_tr_tds[0] table_entry_tr_td_2 = table_entry_tr_tds[1] div_gamepage_content_row_thumb = table_entry_tr_td_1.find( "div", { "class" : "gamepage_content_row_thumb" } ) # Video page URL.... div_newlist_movie_sd_hd = div_gamepage_content_row_thumb.find( "div", { "class" : "newestlist_movie_format_SDHD" } ) if (div_newlist_movie_sd_hd) : a_list = div_newlist_movie_sd_hd.findAll( "a" ) hd_movie_page_url = a_list[0][ "href" ] sd_movie_page_url = a_list[1][ "href" ] if (self.video_quality == "1" and hd_movie_page_url) : # HD video_page_url = hd_movie_page_url overlay = xbmcgui.ICON_OVERLAY_HD else : video_page_url = sd_movie_page_url # SD overlay = xbmcgui.ICON_OVERLAY_NONE else: div_newestlist_movie_sd = div_gamepage_content_row_thumb.find( "div", { "class" : "newestlist_movie_format_SD" } ) video_page_url = div_newestlist_movie_sd.a[ "href" ] overlay = xbmcgui.ICON_OVERLAY_NONE # Thumbnail URL... thumbnail_url = div_gamepage_content_row_thumb.img[ "src" ] thumbnail_url = thumbnail_url.replace( " ", "%20" ) # Game title... h3_movie_title = table_entry_tr_td_2.find( "h3", { "class" : "MovieTitle" } ) game_title = h3_movie_title.a.string.strip() # Movie title... table_entry_tr_td_2_div_2 = table_entry_tr_td_2.findAll ( "div" )[1] movie_title = table_entry_tr_td_2_div_2.a.string.strip() title = game_title + " - " + movie_title # Plot... plot = table_entry_tr_td_2_div_2.contents[2].strip() plot = plot.strip("- ") # Date... div_movie_file_size = table_entry_tr_td_2.find( "div", { "class" : "MovieFileSize" } ) if len( div_movie_file_size.contents) > 1 : date = div_movie_file_size.contents[2].strip() else : date = div_movie_file_size.string.strip() date = date.replace( "ago ago", "ago" ) date = date.replace( "Posted", "") # Add to list... listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail_url ) listitem.setInfo( "video", { "Title" : title, "Studio" : "GameTrailers", "Plot" : plot, "Genre" : date, "Overlay" : overlay } ) plugin_play_url = '%s?action=play&video_page_url=%s' % ( sys.argv[ 0 ], urllib.quote_plus( video_page_url ) ) xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=plugin_play_url, listitem=listitem, isFolder=False) # Next page entry... listitem = xbmcgui.ListItem (__language__(30503), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(self.IMAGES_PATH, 'next-page.png')) xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = "%s?action=list-platform&platform=%s&plugin_category=%s&page=%i" % ( sys.argv[0], self.platform, self.plugin_category, self.current_page + 1 ), listitem = listitem, isFolder = True) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=( "%s (" + __language__(30502) + ")" ) % ( self.plugin_category, self.current_page ) ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def playVideo( self ) : if (self.DEBUG) : print "video_page_url = " + self.video_page_url # # Get current list item details... # title = unicode( xbmc.getInfoLabel( "ListItem.Title" ), "utf-8" ) thumbnail = xbmc.getInfoImage( "ListItem.Thumb" ) studio = unicode( xbmc.getInfoLabel( "ListItem.Studio" ), "utf-8" ) plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" ) genre = unicode( xbmc.getInfoLabel( "ListItem.Genre" ), "utf-8" ) # # Show wait dialog while parsing data... # dialogWait = xbmcgui.DialogProgress() dialogWait.create( __language__(30504), title ) # # Video page URL = /player/48119.html # if (self.PLAYER_URL_RE.match( self.video_page_url ) ) : video_urls = self._getVideoUrl1( self.video_page_url ) # # Video page URL = /episode/bonusround/303?ch=2&sd=1 # elif (self.EPISODE_BONUSROUND_URL_RE.match ( self.video_page_url ) ) : video_urls = self._getVideoUrl2( self.video_page_url ) # # Video page URL = /video/brutal-b-roll-darksiders/49436 # elif (self.VIDEO_URL_RE.match( self.video_page_url ) ) : video_urls = self._getVideoUrl3( self.video_page_url ) # # Video page URL = /gametrailerstv_player.php?ep=60&ch=1&sd=1 # Video page URL = /episode/gametrailers-tv/64&ch=2&sd=0?ep=64&ch=2&sd=0 # elif (self.GAMETRAILERS_TV_PLAYER_RE.match( self.video_page_url ) or self.EPISODE_GAMETRAILER_TV_RE.match( self.video_page_url ) ) : video_urls = self._getVideoUrl4( self.video_page_url ) # # Video page URL = /bonusround.php?ep=15 # elif (self.BONUSROUND_PHP_URL_RE.match( self.video_page_url ) ) : video_urls = self._getVideoUrl5( self.video_page_url ) # # Video page URL = player/usermovies/1.html # elif (self.USER_MOVIES_URL_RE.match( self.video_page_url ) ) : video_urls = self._getVideoUrl6( self.video_page_url ) # # Video page URL = /videos/1tx4bz/planetside-2-gc-2012--exclusive-beta-walkthrough--cam- # elif (self.VIDEOS_URL_RE.match( self.video_page_url ) or \ self.REVIEWS_URL_RE.match( self.video_page_url ) or \ self.FULL_EPISODES_URL_RE.match( self.video_page_url )) : video_urls = self._getVideoUrl7( self.video_page_url ) # # Check video URLs... # httpCommunicator = HTTPCommunicator() have_valid_url = False for video_url in video_urls : if httpCommunicator.exists( video_url ) : have_valid_url = True break # # Play video... # if have_valid_url : playlist = xbmc.PlayList( xbmc.PLAYLIST_VIDEO ) playlist.clear() for video_url in video_urls : listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail ) listitem.setInfo( "video", { "Title": title, "Studio" : studio, "Plot" : plot, "Genre" : genre } ) playlist.add( video_url, listitem ) # Close wait dialog... dialogWait.close() del dialogWait # Play video... xbmcPlayer = xbmc.Player( self.video_players[ self.video_player ] ) xbmcPlayer.play( playlist ) # # Alert user... # else : xbmcgui.Dialog().ok( __language__(30000), __language__(30505) )
def getVideos( self ) : # # Get HTML page... # url = "http://www.gametrailers.com/feeds/search/child/c9c01382-1f7c-4a3a-b68f-2e5ecc67fdd3/?keywords=%s&tabName=videos&platforms=¤tPage=%d" % ( urllib.quote( self.query ), self.current_page ) htmlData = HTTPCommunicator().get( url ) # Parse response... beautifulSoup = BeautifulSoup( htmlData ) # # Parse movie entries... # lis = beautifulSoup.findAll ( "div", { "class" : "video_information" } ) for li in lis : div_holder = li.find ( "div", { "class" : "holder" } ) # Title h3 = div_holder.find ( "h3" ) h4 = div_holder.find ( "h4" ) if (h3.a.string != None) : title = "%s - %s" % ( h3.a.string.strip(), h4.a.string.strip() ) else : title = h4.a.string.strip() # Thumbnail a_thumbnail = div_holder.find ( "a", { "class" : "thumbnail" } ) a_thumbnail_imgs = a_thumbnail.findAll ( "img" ) thumbnail_url = a_thumbnail_imgs[ -1 ] [ "src" ] # Video page... video_page_url = a_thumbnail[ "href" ] # Add to list... listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail_url ) listitem.setInfo( "video", { "Title" : title, "Studio" : "GameTrailers" } ) plugin_play_url = '%s?action=play&video_page_url=%s' % ( sys.argv[ 0 ], urllib.quote_plus( video_page_url ) ) xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=plugin_play_url, listitem=listitem, isFolder=False) # Next page entry... listitem = xbmcgui.ListItem (__language__(30503), iconImage = "DefaultFolder.png", thumbnailImage = os.path.join(self.IMAGES_PATH, 'next-page.png')) xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = "%s?action=list-search&query=%s&plugin_category=%s&page=%i" % ( sys.argv[0], self.query, self.plugin_category, self.current_page + 1 ), listitem = listitem, isFolder = True) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True ) # # Save the query for future use... # # try : saved_queries = eval( __settings__.getSetting( "saved_queries" ) ) except : saved_queries = [] # Add the entry to the list... try : # ... if not already in the list... saved_queries.index( self.query ) except : saved_queries.append( self.query ) # Sort the list... saved_queries.sort() # Save queries... __settings__.setSetting( "saved_queries", repr( saved_queries ))