コード例 #1
0
    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 )
コード例 #2
0
    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 )
コード例 #3
0
	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 )
コード例 #4
0
    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&currentPage=%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)
コード例 #5
0
    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 )
コード例 #6
0
	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&currentPage=%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&currentPage=%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&currentPage=%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 )
コード例 #7
0
    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&currentPage=%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 )
コード例 #8
0
    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 )
コード例 #9
0
    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 )
コード例 #10
0
	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 )
コード例 #11
0
	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) )
コード例 #12
0
	def getVideos( self ) :
		# 
		# Get HTML page...
		#
		url           = "http://www.gametrailers.com/feeds/search/child/c9c01382-1f7c-4a3a-b68f-2e5ecc67fdd3/?keywords=%s&tabName=videos&platforms=&currentPage=%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 ))