Example #1
0
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()
Example #2
0
    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 )