From 557cd04b6453426501bcf9f7413b031e051beee5 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 29 Dec 2019 00:30:03 +0800 Subject: [PATCH] Warehouse --- Menu/GameShell/21_Warehouse/__init__.py | 95 ++++++++++++------------- 1 file changed, 47 insertions(+), 48 deletions(-) diff --git a/Menu/GameShell/21_Warehouse/__init__.py b/Menu/GameShell/21_Warehouse/__init__.py index 13fc86e..610e76d 100644 --- a/Menu/GameShell/21_Warehouse/__init__.py +++ b/Menu/GameShell/21_Warehouse/__init__.py @@ -59,7 +59,6 @@ class RPCStack: class LoadHousePage(Page): _FootMsg = ["Nav.","","","Back","Cancel"] - _DownloaderTimer = -1 _Value = 0 _URL = None _ListFontObj = MyLangManager.TrFont("varela18") @@ -188,7 +187,6 @@ class LoadHousePage(Page): class ImageDownloadProcessPage(Page): _FootMsg = ["Nav.","","","Back",""] - _DownloaderTimer = -1 _Value = 0 _URL = None _ListFontObj = MyLangManager.TrFont("varela13") @@ -344,35 +342,36 @@ class Aria2DownloadProcessPage(Page): self._SizeLabel.Init("0/0Kb",MyLangManager.TrFont("varela12")) self._SizeLabel.SetColor( self._URLColor ) + @property def GObjectUpdateProcessInterval(self): + downloaded = 0 if self._Screen.CurPage() == self and self._GID is not None: self._Value = config.RPC.tellStatus(self._GID) - + downloaded = 0 total = 0 - - if self._Value["status"] == "waiting": - self._FileNameLabel.SetText( "waiting to download..." ) - if self._Value["status"] == "paused": - self._FileNameLabel.SetText( "download paused..." ) - if self._Value["status"] == "error": - self._FileNameLabel.SetText("download errors,cancel it please") - - if self._Value["status"] == "active": - downloaded = self._Value["completedLength"] - total = self._Value["totalLength"] - downloaded = downloaded/1000.0/1000.0 - total = total/1000.0/1000.0 - - self._SizeLabel.SetText( "%.2f" % downloaded+"/"+ "%.2f" % total +"Mb") - - print("Progress: %d%%" % (self._Value)) - self._Screen.Draw() - self._Screen.SwapAndShow() - return True - else: - return False + if self._Value["status"] == "waiting": + self._FileNameLabel.SetText("waiting to download...") + if self._Value["status"] == "paused": + self._FileNameLabel.SetText("download paused...") + if self._Value["status"] == "error": + self._FileNameLabel.SetText("download errors,cancel it please") + + if self._Value["status"] == "active": + downloaded = self._Value["completedLength"] + total = self._Value["totalLength"] + + downloaded = downloaded / 1000.0 / 1000.0 + total = total / 1000.0 / 1000.0 + + self._SizeLabel.SetText("%.2f" % downloaded+"/"+"%.2f" % total+"Mb") + + print("Progress: %d%%" % (self._Value)) + self._Screen.Draw() + self._Screen.SwapAndShow() + return True + def CheckDownload(self,aria2_gid): self._GID = aria2_gid @@ -549,14 +548,14 @@ class GameStorePage(Page): def __init__(self): Page.__init__(self) self._Icons = {} - self._MyStack = RPCStack() - #title file type + self._MyStack = RPCStack() + #title file type ## Two level url , only github.com repos = [ - {"title":"github.com/clockworkpi/warehouse","file":"https://raw.githubusercontent.com/clockworkpi/warehouse/master/index.json","type":"source"} - ] - self._MyStack.Push(repos) + {"title":"github.com/clockworkpi/warehouse","file":"https://raw.githubusercontent.com/clockworkpi/warehouse/master/index.json","type":"source"} + ] + self._MyStack.Push(repos) def GObjectUpdateProcessInterval(self): ret = True @@ -837,24 +836,24 @@ class GameStorePage(Page): # return print("cur_li._Value",cur_li._Value) - - if cur_li._Value["type"] == "source" or cur_li._Value["type"] == "dir": - remote_file_url = cur_li._Value["file"] - menu_file = remote_file_url.split("raw.githubusercontent.com")[1] #assume master branch - local_menu_file = "%s/aria2download%s" % (os.path.expanduser('~'),menu_file ) + + if cur_li._Value["type"] == "source" or cur_li._Value["type"] == "dir": + remote_file_url = cur_li._Value["file"] + menu_file = remote_file_url.split("raw.githubusercontent.com")[1] #assume master branch + local_menu_file = "%s/aria2download%s" % (os.path.expanduser('~'),menu_file ) print(local_menu_file) if FileExists( local_menu_file ) == False: self.LoadHouse() - else: + else: #read the local_menu_file, push into stack,display menu - self._Downloading = None + self._Downloading = None try: - with open(local_menu_file) as json_file: - local_menu_json = json.load(json_file) + with open(local_menu_file) as json_file: + local_menu_json = json.load(json_file) print(local_menu_json) - self._MyStack.Push(local_menu_json["list"]) - - self.SyncList() + self._MyStack.Push(local_menu_json["list"]) + + self.SyncList() self._Screen.Draw() self._Screen.SwapAndShow() except Exception as ex: @@ -862,23 +861,23 @@ class GameStorePage(Page): self._Screen._MsgBox.SetText("Open house failed ") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() - - elif cur_li._Value["type"] == "add_house": + + elif cur_li._Value["type"] == "add_house": print("show keyboard to add ware house") self._Screen.PushCurPage() self._Screen.SetCurPage( self._Keyboard ) else: - #download the game probably - remote_file_url = cur_li._Value["file"] + #download the game probably + remote_file_url = cur_li._Value["file"] menu_file = remote_file_url.split("raw.githubusercontent.com")[1] local_menu_file = "%s/aria2download%s" % (os.path.expanduser('~'),menu_file ) - if FileExists( local_menu_file ) == False: + if FileExists( local_menu_file ) == False: gid,ret = config.RPC.urlDownloading(remote_file_url) if ret == False: gid = config.RPC.addUri( remote_file_url, options={"out": menu_file}) - self._Downloading = gid + self._Downloading = gid print("stack length ",self._MyStack.Length()) """ if self._MyStack.Length() > 1:## not on the top list page