def Main(): import xbmc import xbmcgui try: #xbmcgui.lock() args = _Info() fpath = None kill_xbmc = False if ( args.get( "action" ) == "selectmirror" ): xbmc.executebuiltin( "ActivateWindow(busydialog)" ) try: from repo import getMirrors mirrors = [ ( "[Default] xbmc.org", "http://mirrors.xbmc.org/" ) ] + getMirrors() except: print_exc() xbmc.executebuiltin( "Dialog.Close(busydialog)" ) selected = xbmcgui.Dialog().select( "List of all mirrors", [ m for m, uri in mirrors ] ) __settings__ = sys.modules[ "__main__" ].__settings__ if selected != -1: xbmc.executebuiltin( "Dialog.Close(10140,true)" ) mirror, url = mirrors[ selected ] if not url.endswith( "/" ): url += "/" __settings__.setSetting( "mirror_name", mirror ) __settings__.setSetting( "mirror_url", url ) __settings__.openSettings() elif ( args.get( "action" ) == "DL" ): #run downloader if args.get( "listurl" ) == "unofficial": import repo revision = repo.getUnofficialRevision() choice = [ "Windows XBMC DirectX with Installer", "Windows XBMC DirectX without Installer", "Windows XBMC DirectX Diff Package" ] selected = xbmcgui.Dialog().select( "Unofficial Nightly Builds From Git:%s" % revision, choice ) if selected == -1: return dlpath = repo.getUnofficialBuildLlink( revision, selected ) filename = os.path.basename( dlpath ) else: dlpath = xbmc.getInfoLabel( "ListItem.Property(Addon.Path)" ) filename = xbmc.getInfoLabel( "ListItem.Property(filename)" ) print "DL: %s" % dlpath try: __settings__ = sys.modules[ "__main__" ].__settings__ script = os.path.join( __settings__.getAddonInfo( "path" ), "resources", "addonAPI", "downloader.py" ) xbmc.executebuiltin( "RunScript(%s,%s,%s)" % ( script, dlpath, filename ) ) except: print_exc() elif ( args.get( "action" ) == "browse" ): #browse for custom setup install fpath = get_browse_dialog( heading="Update from custom build", mask=( "", ".exe|.bat" )[ sys.platform == "win32" ] ) if fpath: fpath = fpath kill_xbmc = True print "Custom file: %s" % fpath elif ( args.get( "action" ) == "open" ): # open file with default web navigator fpath = xbmc.getInfoLabel( "ListItem.Property(Addon.Path)" ) elif ( args.get( "action" ) == "visitrepo" ): # visit repo with default web navigator from repo import repo_url as fpath elif ( args.get( "action" ) == "visitunorepo" ): fpath = "http://www.sshcs.com/xbmc/" #if kill_xbmc: #xbmcgui.unlock() if fpath: start_file( fpath.decode( "utf-8" ), kill_xbmc=kill_xbmc ) except: print_exc()
def _add_directory_items( self ): OK = True try: #Releases (Stable) title = "Releases (Stable)" icon = XBMC_ICON#"DefaultNetwork.png" listitem = xbmcgui.ListItem( title, "", icon ) listitem.setProperty( "Addon.Name", title ) listitem.setProperty( "Addon.Creator", "Team XBMC" ) listitem.setProperty( "Addon.StarRating", "rating5.png" ) listitem.setProperty( "Addon.Description", CURRENT_XBMC ) listitem.setProperty( "Addon.Type", "Live / OSX / Win32" ) listitem.setProperty( "Addon.Version", "Stable" ) listitem.setProperty( "Addon.Status", "Stable" ) # ContextMenu: add open and visit repo if UNDER_XBOX: c_items = [] else: c_items = [ ( "Visit Official Repo", 'RunPlugin(%s?action="\'visitrepo\'")' % sys.argv[ 0 ] ) ] listitem = self.addContextMenuAction( listitem, c_items ) url = '%s?listurl="%s"&cat="%s"' % ( sys.argv[ 0 ], urllib.quote_plus( repo.releases_url ), title ) OK = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=url, listitem=listitem, isFolder=True ) if ( not OK ): raise #Nightlies (SVN) title = "Nightlies (Git - SVN)" icon = XBMC_ICON#"DefaultNetwork.png" listitem = xbmcgui.ListItem( title, "", icon ) listitem.setProperty( "Addon.Name", title ) listitem.setProperty( "Addon.Creator", "Team XBMC" ) listitem.setProperty( "Addon.StarRating", "rating4.png" ) listitem.setProperty( "Addon.Description", CURRENT_XBMC ) listitem.setProperty( "Addon.Type", "Live / OSX / Win32" ) listitem.setProperty( "Addon.Version", "Git - SVN" ) listitem.setProperty( "Addon.Status", "Git - SVN" ) # ContextMenu: add open and visit repo if UNDER_XBOX: c_items = [] else: c_items = [ ( "Visit Official Repo", 'RunPlugin(%s?action="\'visitrepo\'")' % sys.argv[ 0 ] ) ] listitem = self.addContextMenuAction( listitem, c_items ) url = '%s?listurl="%s"&cat="%s"' % ( sys.argv[ 0 ], urllib.quote_plus( repo.nightlies_url ), title ) OK = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=url, listitem=listitem, isFolder=True ) if ( not OK ): raise #Available Updates, only if new revision is retrieved #if self._getAvailableUpdates(): # title = __string__( 24043 ) # icon = XBMC_ICON#"DefaultNetwork.png" # listitem = xbmcgui.ListItem( title, "", icon ) # listitem.setProperty( "Addon.Name", title ) # listitem.setProperty( "Addon.Creator", "Team XBMC" ) # listitem.setProperty( "Addon.StarRating", "rating5.png" ) # listitem.setProperty( "Addon.Description", CURRENT_XBMC ) # listitem.setProperty( "Addon.Type", "OSX / Win32" ) # listitem.setProperty( "Addon.Version", "Stable / SVN" ) # # ContextMenu: add open and visit repo # c_items = [ ( "Visit Official Repo", 'RunPlugin(%s?action="\'visitrepo\'")' % sys.argv[ 0 ] ) ] # listitem = self.addContextMenuAction( listitem, c_items ) # url = '%s?listurl="available"&cat="%s"' % ( sys.argv[ 0 ], title ) # OK = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=url, listitem=listitem, isFolder=True ) # if ( not OK ): raise #Unofficial Nightly Builds uoRevision = repo.getUnofficialRevision() if uoRevision: title = "Unofficial Nightly Builds From Git" icon = os.path.join( MEDIA_PATH, "win.png" )#XBMC_ICON#"DefaultNetwork.png" listitem = xbmcgui.ListItem( title, "", icon ) listitem.setProperty( "Addon.Name", title ) listitem.setProperty( "Addon.Creator", "xbmcsvn.com" ) listitem.setProperty( "Addon.StarRating", "rating4.png" ) listitem.setProperty( "Addon.Description", CURRENT_XBMC ) listitem.setProperty( "Addon.Type", "Windows DX" ) listitem.setProperty( "Addon.Version", "Git:%s" % uoRevision ) listitem.setProperty( "Addon.Status", "Git:%s" % uoRevision ) if UNDER_XBOX: c_items = [] else: c_items = [ ( "Visit Unofficial Repo", 'RunPlugin(%s?action="\'visitunorepo\'")' % sys.argv[ 0 ] ) ] listitem = self.addContextMenuAction( listitem, c_items ) url = '%s?action="DL"&listurl="unofficial"' % ( sys.argv[ 0 ] ) OK = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=url, listitem=listitem, isFolder=True ) if ( not OK ): raise dlprogress = len( os.listdir( DL_INFO_PATH ) ) if dlprogress: # download progress title = "Téléchargements en cours" icon = "DefaultHardDisk.png" listitem = xbmcgui.ListItem( title, "", icon ) listitem.setProperty( "Addon.Name", title ) listitem.setProperty( "Addon.StarRating", "rating0.png" ) listitem.setProperty( "Addon.Description", CURRENT_XBMC ) listitem.setProperty( "Addon.Status", "[B](%i)[/B]" % ( dlprogress, ) ) listitem = self.addContextMenuAction( listitem, [] ) url = '%s?action="dlprogress"' % ( sys.argv[ 0 ] ) OK = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=url, listitem=listitem, isFolder=True ) if ( not OK ): raise #browse title = "Update from custom build" icon = "DefaultHardDisk.png" listitem = xbmcgui.ListItem( title, "", icon ) listitem.setProperty( "Addon.Name", title ) listitem.setProperty( "Addon.StarRating", "rating0.png" ) listitem.setProperty( "Addon.Description", CURRENT_XBMC ) listitem = self.addContextMenuAction( listitem, [] ) url = '%s?action="browse"' % ( sys.argv[ 0 ] ) OK = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=url, listitem=listitem, isFolder=True ) if ( not OK ): raise except: print_exc() OK = False self._set_content( OK )