prepare to multi warehouses

This commit is contained in:
cuu 2019-12-14 14:03:44 +00:00
parent ccb11daa44
commit 0af791192f

View File

@ -25,6 +25,7 @@ from UI.lang_manager import MyLangManager
from UI.info_page_list_item import InfoPageListItem
from UI.info_page_selector import InfoPageSelector
from UI.yes_cancel_confirm_page import YesCancelConfirmPage
from UI.keyboard import Keyboard
import config
@ -315,6 +316,7 @@ class GameStorePage(Page):
except Exception as ex:
print(ex)
def SyncSqlite(self):
try:
conn = sqlite3.connect(self._aria2_db)
@ -351,7 +353,7 @@ class GameStorePage(Page):
repos.extend(sqlite3_menu )
#print(repos)
repos.extend(add_new_house)
repos.extend(add_new_house)
for i,u in enumerate( repos ):
#print(i,u)
@ -374,7 +376,8 @@ class GameStorePage(Page):
if "status" in u:
if u["status"] == "complete":
li._ReadOnly = False
if i == 0:
if u["type"]=="source":
li._ReadOnly = False
last_height += li._Height
@ -419,6 +422,14 @@ class GameStorePage(Page):
self._remove_page._Name ="Are you sure?"
self._remove_page.Init()
self._Keyboard = Keyboard()
self._Keyboard._Name = "Enter warehouse addr"
self._Keyboard._Screen = self._Screen
self._Keyboard.Init()
self._Keyboard.SetPassword("github.com/clockworkpi/warehouse")
self._Keyboard._Caller = self
def RemoveGame(self):
if self._PsIndex > len(self._MyList) -1:
return
@ -501,6 +512,8 @@ class GameStorePage(Page):
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
@ -556,6 +569,53 @@ class GameStorePage(Page):
game_sh = "/home/cpi/apps/Menu/51_TIC-80/TIC-80.sh"
self._Screen.RunEXE(game_sh)
def raw_github_com(self,_url):
if _url.startswith("github.com")== False:
return False
parts = _url.split("/")
if len(parts) != 3:
return False
return "/".join(["https://raw.githubusercontent.com",parts[1],parts[2],"master/index.json"])
def OnKbdReturnBackCb(self):
inputed = "".join(self._Keyboard._Textarea._MyWords).strip()
inputed = inputed.replace("http://","")
inputed = inputed.replace("https://","")
if inputed.endswith(".git"):
inputed = inputed[:len(inputed)-4]
if inputed.endswith("/"):
inputed = inputed[:len(inputed)-1]
print("last: ",inputed)
try:
conn = sqlite3.connect(self._warehouse_db)
conn.row_factory = dict_factory
c = conn.cursor()
ret = c.execute("SELECT * FROM warehouse WHERE title='%s'" % inputed ).fetchone()
if ret != None:
self._Screen._MsgBox.SetText("Warehouse existed!")
self._Screen._MsgBox.Draw()
self._Screen.SwapAndShow()
else:
valid_url= self.raw_github_com(inputed)
if valid_url == False:
self._Screen._MsgBox.SetText("Warehouse existed!")
self._Screen._MsgBox.Draw()
self._Screen.SwapAndShow()
else:
sql_insert = """ INSERT INTO warehouse(title,file,type) VALUES(
'%s',
'%s',
'source');""" % (inputed,valid_url)
c.execute(sql_insert)
conn.commit()
conn.close()
except Exception as ex:
print(ex)
def OnLoadCb(self):
self._Scrolled = 0
self._PosY = 0