-- -- sPhone Application Package -- Built with SPK builder 1.2 -- { files = "{\ [ \"store.lua\" ] = \"local host = \\\"https://raw.github.com/BeaconNet/sPhone-Store/master/\\\"\\\ local index = host..\\\"index.lua\\\"\\\ local apps = host..\\\"apps/\\\"\\\ local appsL = {}\\\ local w, h = term.getSize()\\\ \\\ local function redraw()\\\ term.setBackgroundColor(colors.white)\\\ term.setTextColor(colors.black)\\\ term.clear()\\\ term.setTextColor(colors.white)\\\ paintutils.drawLine(1,1,w,1,colors.green)\\\ term.setCursorPos(1,1)\\\ write(\\\" Store\\\")\\\ visum.align(\\\"right\\\",\\\"X\\\",false,1)\\\ term.setTextColor(colors.black)\\\ term.setBackgroundColor(colors.white)\\\ term.setCursorPos(1,3)\\\ end\\\ \\\ local function install(path,name)\\\ local data = http.get(\\\"https://raw.github.com/BeaconNet/sPhone-Store/master/apps/\\\"..path).readAll()\\\ local f = fs.open(\\\"/tmp/sPhoneStore/\\\"..name..\\\".spk\\\",\\\"w\\\")\\\ f.write(data)\\\ f.close()\\\ local status = sPhone.install(\\\"/tmp/sPhoneStore/\\\"..name..\\\".spk\\\")\\\ if status then\\\ sPhone.winOk(\\\"Installed\\\")\\\ else\\\ sPhone.winOk(\\\"Error while installing\\\")\\\ end\\\ end\\\ \\\ redraw()\\\ \\\ term.setCursorPos(1,2)\\\ visum.align(\\\"center\\\",\\\" Loading\\\",false,2)\\\ term.setCursorPos(1,3)\\\ \\\ local c = http.get(index).readAll()\\\ \\\ local appsIndex = textutils.unserialize(c)\\\ \\\ redraw()\\\ \\\ local mx,my = term.getCursorPos()\\\ term.setCursorPos(1,2)\\\ term.clearLine()\\\ term.setCursorPos(mx,my)\\\ \\\ \\\ while true do\\\ local path,name = sPhone.list(nil,{\\\ title = \\\" Store\\\",\\\ pairs = true,\\\ list = appsIndex,\\\ bg1 = colors.white,\\\ fg1 = colors.black,\\\ bg2 = colors.green,\\\ fg2 = colors.white,\\\ bg3 = colors.green,\\\ fg3 = colors.white,\\\ })\\\ \\\ if not path then\\\ return\\\ end\\\ \\\ local data = http.get(\\\"https://raw.github.com/BeaconNet/sPhone-Store/master/apps/\\\"..path).readAll()\\\ data = textutils.unserialise(data)\\\ if data then\\\ local _conf = textutils.unserialise(data.config)\\\ redraw()\\\ term.setCursorPos(2,3)\\\ print(_conf.name)\\\ term.setCursorPos(2,6)\\\ term.setTextColor(colors.black)\\\ print(\\\"Author:\\\")\\\ term.setTextColor(colors.gray)\\\ term.setCursorPos(2,7)\\\ print(_conf.author)\\\ term.setCursorPos(2,9)\\\ term.setTextColor(colors.black)\\\ print(\\\"Type:\\\")\\\ term.setTextColor(colors.gray)\\\ term.setCursorPos(2,10)\\\ print((_conf.type or \\\"Normal\\\"))\\\ term.setCursorPos(2,12)\\\ term.setTextColor(colors.black)\\\ print(\\\"Version:\\\")\\\ term.setTextColor(colors.gray)\\\ term.setCursorPos(2,13)\\\ print(_conf.version)\\\ \\\ if config.read(\\\"/.sPhone/config/spklist\\\",_conf.id) then\\\ paintutils.drawLine(19,4,25,4,colors.red)\\\ term.setTextColor(colors.white)\\\ term.setCursorPos(19,4)\\\ write(\\\"Delete\\\")\\\ else\\\ paintutils.drawLine(19,4,25,4,colors.green)\\\ term.setTextColor(colors.white)\\\ term.setCursorPos(19,4)\\\ write(\\\"Install\\\")\\\ end\\\ \\\ while true do\\\ local _,_,mx,my = os.pullEvent(\\\"mouse_click\\\")\\\ if my == 1 and mx == w then\\\ break\\\ elseif (mx >= 19 and mx <= 25) and my == 4 then\\\ if config.read(\\\"/.sPhone/config/spklist\\\",_conf.id) then\\\ if fs.exists(\\\"/.sPhone/apps/spk/\\\".._conf.id) then\\\ fs.delete(\\\"/.sPhone/apps/spk/\\\".._conf.id)\\\ end\\\ config.write(\\\"/.sPhone/config/spklist\\\",_conf.id,nil)\\\ else\\\ install(path,name)\\\ end\\\ break\\\ end\\\ end\\\ else\\\ sPhone.winOk(\\\"Cannot install\\\",\\\"file corrupted\\\")\\\ end\\\ \\\ \\\ \\\ end\\\ \",\ }", config = "{\ type = \"app\",\ name = \"Store\",\ version = 1,\ main = \"store.lua\",\ id = \"sphone.store\",\ author = \"BeaconNet\",\ hidden = true,\ }", }