Compare commits

..

No commits in common. "c50a5dfbfa460123ae60ee33c20bb83ed6a37932" and "f3d643fc9e835a3cc0df410e8d63bf4e4a27a955" have entirely different histories.

14 changed files with 388 additions and 422 deletions

View file

@ -1,11 +1,15 @@
# Welcome to sPhone repository!
## Install:
![SPK Support](https://raw.githubusercontent.com/BeaconNet/beaconnet.github.io/master/badge.png)
##Install:
Stable: `pastebin run HsJSnhKQ`
## Dates:
Dev: `pastebin run qNz53cR9` (outdated)
* Started (Alpha 1): 31st July 2015
* Beta 1: 20th November 2016
* End of life: 28th October 2019
##Dates:
Started (Alpha 1): 31/July/2015
Beta 1: 20/November/2016

View file

@ -1,95 +1,93 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
files = "{\
[ \"appList.lua\" ] = \"local apps = {}\\\
local function update()\\\
apps = config.list(\\\"/.sPhone/config/spklist\\\")\\\
for k,v in pairs(apps) do\\\
local h = config.read(\\\"/.sPhone/apps/spk/\\\"..k..\\\"/.spk\\\",\\\"hidden\\\")\\\
if h then\\\
apps[k] = nil\\\
end\\\
end\\\
end\\\
local function menu(id)\\\
local data = config.list(\\\"/.sPhone/apps/spk/\\\"..id..\\\"/.spk\\\")\\\
if data then\\\
term.setBackgroundColor(sPhone.theme[\\\"backgroundColor\\\"])\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\\
term.clear()\\\
sPhone.header(\\\" Apps\\\",\\\"X\\\")\\\
term.setCursorPos(2,3)\\\
print(data.name)\\\
term.setCursorPos(2,6)\\\
term.setTextColor(colors.black)\\\
print(\\\"Author:\\\")\\\
term.setTextColor(colors.gray)\\\
term.setCursorPos(2,7)\\\
print(data.author)\\\
term.setCursorPos(2,9)\\\
term.setTextColor(colors.black)\\\
print(\\\"Type:\\\")\\\
term.setTextColor(colors.gray)\\\
term.setCursorPos(2,10)\\\
print((data.type or \\\"Normal\\\"))\\\
term.setCursorPos(2,12)\\\
term.setTextColor(colors.black)\\\
print(\\\"Version:\\\")\\\
term.setTextColor(colors.gray)\\\
term.setCursorPos(2,13)\\\
print(data.version)\\\
paintutils.drawLine(19,4,25,4,colors.red)\\\
term.setTextColor(colors.white)\\\
term.setCursorPos(19,4)\\\
write(\\\"Delete\\\")\\\
local w,h = term.getSize()\\\
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 fs.exists(\\\"/.sPhone/apps/spk/\\\"..data.id) then\\\
fs.delete(\\\"/.sPhone/apps/spk/\\\"..data.id)\\\
end\\\
config.write(\\\"/.sPhone/config/spklist\\\",data.id,nil)\\\
break\\\
end\\\
end\\\
end\\\
end\\\
\\\
update()\\\
\\\
while true do\\\
local id, _, mouse = sPhone.list(nil,{\\\
list = apps,\\\
pairs = true,\\\
title = \\\" Apps\\\"\\\
})\\\
if not id then\\\
break\\\
end\\\
if mouse == 1 then\\\
sPhone.launch(id)\\\
break\\\
elseif mouse == 2 then\\\
menu(id)\\\
update()\\\
end\\\
end\\\
\\\
return true\",\
[ \"appList.lua\" ] = \"local apps = {}\\r\\\
local function update()\\r\\\
apps = config.list(\\\"/.sPhone/config/spklist\\\")\\r\\\
for k,v in pairs(apps) do\\r\\\
local h = config.read(\\\"/.sPhone/apps/spk/\\\"..k..\\\"/.spk\\\",\\\"hidden\\\")\\r\\\
if h then\\r\\\
apps[k] = nil\\r\\\
end\\r\\\
end\\r\\\
end\\r\\\
local function menu(id)\\r\\\
local data = config.list(\\\"/.sPhone/apps/spk/\\\"..id..\\\"/.spk\\\")\\r\\\
if data then\\r\\\
term.setBackgroundColor(sPhone.theme[\\\"backgroundColor\\\"])\\r\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\r\\\
term.clear()\\r\\\
sPhone.header(\\\" Apps\\\",\\\"X\\\")\\r\\\
term.setCursorPos(2,3)\\r\\\
print(data.name)\\r\\\
term.setCursorPos(2,6)\\r\\\
term.setTextColor(colors.black)\\r\\\
print(\\\"Author:\\\")\\r\\\
term.setTextColor(colors.gray)\\r\\\
term.setCursorPos(2,7)\\r\\\
print(data.author)\\r\\\
term.setCursorPos(2,9)\\r\\\
term.setTextColor(colors.black)\\r\\\
print(\\\"Type:\\\")\\r\\\
term.setTextColor(colors.gray)\\r\\\
term.setCursorPos(2,10)\\r\\\
print((data.type or \\\"Normal\\\"))\\r\\\
term.setCursorPos(2,12)\\r\\\
term.setTextColor(colors.black)\\r\\\
print(\\\"Version:\\\")\\r\\\
term.setTextColor(colors.gray)\\r\\\
term.setCursorPos(2,13)\\r\\\
print(data.version)\\r\\\
paintutils.drawLine(19,4,25,4,colors.red)\\r\\\
term.setTextColor(colors.white)\\r\\\
term.setCursorPos(19,4)\\r\\\
write(\\\"Delete\\\")\\r\\\
local w,h = term.getSize()\\r\\\
while true do\\r\\\
local _,_,mx,my = os.pullEvent(\\\"mouse_click\\\")\\r\\\
if my == 1 and mx == w then\\r\\\
break\\r\\\
elseif (mx >= 19 and mx <= 25) and my == 4 then\\r\\\
if fs.exists(\\\"/.sPhone/apps/spk/\\\"..data.id) then\\r\\\
fs.delete(\\\"/.sPhone/apps/spk/\\\"..data.id)\\r\\\
end\\r\\\
config.write(\\\"/.sPhone/config/spklist\\\",data.id,nil)\\r\\\
break\\r\\\
end\\r\\\
end\\r\\\
end\\r\\\
end\\r\\\
\\r\\\
update()\\r\\\
\\r\\\
while true do\\r\\\
local id, _, mouse = sPhone.list(nil,{\\r\\\
list = apps,\\r\\\
pairs = true,\\r\\\
title = \\\" Apps\\\"\\r\\\
})\\r\\\
if not id then\\r\\\
break\\r\\\
end\\r\\\
if mouse == 1 then\\r\\\
sPhone.launch(id)\\r\\\
break\\r\\\
elseif mouse == 2 then\\r\\\
menu(id)\\r\\\
update()\\r\\\
end\\r\\\
end\",\
}",
config = "{\
type = \"app\",\
name = \"Apps\",\
version = 1,\
id = \"sphone.appList\",\
author = \"Sertex\",\
hidden = true,\
main = \"appList.lua\",\
id = \"sphone.appList\",\
author = \"BeaconNet\",\
hidden = true,\
}",
}

View file

@ -1,5 +1,5 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
@ -20,15 +20,16 @@ if not peripheral.isPresent(\\\"back\\\") or not peripheral.getType(\\\"back\\\"
end\\\
write(\\\"Host: \\\")\\\
local h = read() term.setCursorPos(2,6)\\\
shell.run(\\\"/rom/programs/rednet/chat\\\", \\\"join\\\", h, sPhone.user)\",\
shell.run(\\\"/rom/programs/rednet/chat\\\", \\\"join\\\", h, sPhone.user)\\\
\",\
}",
config = "{\
type = \"app\",\
name = \"RedNet Chat\",\
version = 1,\
id = \"sphone.chat\",\
author = \"Sertex\",\
hidden = true,\
main = \"chat.lua\",\
id = \"sphone.chat\",\
author = \"BeaconNet\",\
hidden = true,\
}",
}

View file

@ -1,111 +1,109 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
files = "{\
[ \"explorer.lua\" ] = \"local dir = nil\\\
\\\
local function split(inputstr, sep)\\\
if sep == nil then\\\
sep = \\\"%s\\\"\\\
end\\\
local t={} ; i=1\\\
for str in string.gmatch(inputstr, \\\"([^\\\"..sep..\\\"]+)\\\") do\\\
t[i] = str\\\
i = i + 1\\\
end\\\
return t\\\
end\\\
\\\
local function run(path, args)\\\
return pcall(function()\\\
os.run(setmetatable({\\\
shell = shell,\\\
multishell = multishell,\\\
}, {__index = getfenv()}), path, args)\\\
end)\\\
end\\\
while true do\\\
local path, mouse = sPhone.list(dir,{\\\
fg1b = colors.green,\\\
})\\\
if not path then\\\
break\\\
end\\\
if mouse == 1 then\\\
run(path)\\\
elseif mouse == 2 then\\\
while true do\\\
local w,h = term.getSize()\\\
term.setBackgroundColor(sPhone.theme[\\\"backgroundColor\\\"])\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\\
term.clear()\\\
sPhone.header(fs.getName(path),\\\"X\\\")\\\
term.setCursorPos(2,3)\\\
write(\\\"Size: \\\")\\\
term.setTextColor(colors.gray)\\\
local siz = fs.getSize(path)\\\
local text\\\
if siz == 1 then\\\
text = siz..\\\" byte\\\"\\\
else\\\
text = siz..\\\" bytes\\\"\\\
end\\\
print(text)\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\\
term.setCursorPos(2,5)\\\
write(\\\"Type: \\\")\\\
term.setTextColor(colors.gray)\\\
print(string.getExtension(fs.getName(path)) or \\\"none\\\")\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\\
term.setCursorPos(2,8)\\\
print(\\\"Actions\\\")\\\
term.setTextColor(colors.gray)\\\
term.setCursorPos(2,10)\\\
print(\\\"Run with arguments\\\")\\\
term.setCursorPos(2,11)\\\
print(\\\"Edit\\\")\\\
term.setCursorPos(2,12)\\\
print(\\\"Rename\\\")\\\
term.setCursorPos(2,13)\\\
print(\\\"Delete\\\")\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\\
local _,_,x,y = os.pullEvent(\\\"mouse_click\\\")\\\
if y == 1 and x == w then\\\
break\\\
elseif y == 10 then\\\
term.setCursorPos(2,h-1)\\\
write(\\\"Args: \\\")\\\
term.setTextColor(colors.gray)\\\
shell.run(path..\\\" \\\"..read())\\\
elseif y == 11 then\\\
shell.run(\\\"edit\\\",path)\\\
elseif y == 12 then\\\
term.setCursorPos(2,h-1)\\\
write(\\\"Rename: \\\")\\\
term.setTextColor(colors.gray)\\\
local oldPath = path\\\
path = fs.getDir(path)..\\\"/\\\"..read()\\\
fs.move(oldPath,path)\\\
elseif y == 13 then\\\
fs.delete(path)\\\
break\\\
end\\\
end\\\
end\\\
dir = fs.getDir(path)\\\
end\\\
\\\
return true\",\
[ \"explorer.lua\" ] = \"local dir = nil\\r\\\
\\r\\\
local function split(inputstr, sep)\\r\\\
if sep == nil then\\r\\\
sep = \\\"%s\\\"\\r\\\
end\\r\\\
local t={} ; i=1\\r\\\
for str in string.gmatch(inputstr, \\\"([^\\\"..sep..\\\"]+)\\\") do\\r\\\
t[i] = str\\r\\\
i = i + 1\\r\\\
end\\r\\\
return t\\r\\\
end\\r\\\
\\r\\\
local function run(path, args)\\r\\\
return pcall(function()\\r\\\
os.run(setmetatable({\\r\\\
shell = shell,\\r\\\
multishell = multishell,\\r\\\
}, {__index = getfenv()}), path, args)\\r\\\
end)\\r\\\
end\\r\\\
while true do\\r\\\
local path, mouse = sPhone.list(dir,{\\r\\\
fg1b = colors.green,\\r\\\
})\\r\\\
if not path then\\r\\\
break\\r\\\
end\\r\\\
if mouse == 1 then\\r\\\
run(path)\\r\\\
elseif mouse == 2 then\\r\\\
while true do\\r\\\
local w,h = term.getSize()\\r\\\
term.setBackgroundColor(sPhone.theme[\\\"backgroundColor\\\"])\\r\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\r\\\
term.clear()\\r\\\
sPhone.header(fs.getName(path),\\\"X\\\")\\r\\\
term.setCursorPos(2,3)\\r\\\
write(\\\"Size: \\\")\\r\\\
term.setTextColor(colors.gray)\\r\\\
local siz = fs.getSize(path)\\r\\\
local text\\r\\\
if siz == 1 then\\r\\\
text = siz..\\\" byte\\\"\\r\\\
else\\r\\\
text = siz..\\\" bytes\\\"\\r\\\
end\\r\\\
print(text)\\r\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\r\\\
term.setCursorPos(2,5)\\r\\\
write(\\\"Type: \\\")\\r\\\
term.setTextColor(colors.gray)\\r\\\
print(string.getExtension(fs.getName(path)) or \\\"none\\\")\\r\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\r\\\
term.setCursorPos(2,8)\\r\\\
print(\\\"Actions\\\")\\r\\\
term.setTextColor(colors.gray)\\r\\\
term.setCursorPos(2,10)\\r\\\
print(\\\"Run with arguments\\\")\\r\\\
term.setCursorPos(2,11)\\r\\\
print(\\\"Edit\\\")\\r\\\
term.setCursorPos(2,12)\\r\\\
print(\\\"Rename\\\")\\r\\\
term.setCursorPos(2,13)\\r\\\
print(\\\"Delete\\\")\\r\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\r\\\
local _,_,x,y = os.pullEvent(\\\"mouse_click\\\")\\r\\\
if y == 1 and x == w then\\r\\\
break\\r\\\
elseif y == 10 then\\r\\\
term.setCursorPos(2,h-1)\\r\\\
write(\\\"Args: \\\")\\r\\\
term.setTextColor(colors.gray)\\r\\\
shell.run(path..\\\" \\\"..read())\\r\\\
elseif y == 11 then\\r\\\
shell.run(\\\"edit\\\",path)\\r\\\
elseif y == 12 then\\r\\\
term.setCursorPos(2,h-1)\\r\\\
write(\\\"Rename: \\\")\\r\\\
term.setTextColor(colors.gray)\\r\\\
local oldPath = path\\r\\\
path = fs.getDir(path)..\\\"/\\\"..read()\\r\\\
fs.move(oldPath,path)\\r\\\
elseif y == 13 then\\r\\\
fs.delete(path)\\r\\\
break\\r\\\
end\\r\\\
end\\r\\\
end\\r\\\
dir = fs.getDir(path)\\r\\\
end\",\
}",
config = "{\
type = \"app\",\
main = \"explorer.lua\",\
name = \"File Explorer\",\
version = 1,\
id = \"sphone.explorer\",\
author = \"Sertex\",\
hidden = true,\
version = 1,\
}",
}

View file

@ -1,5 +1,5 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
@ -13,16 +13,15 @@ if tonumber(x) then\\\
else\\\
sPhone.winOk(\\\"X Y Z\\\",\\\"? ? ?\\\")\\\
end\\\
\\\
return true\",\
\",\
}",
config = "{\
type = \"app\",\
name = \"GPS\",\
version = 1,\
id = \"sphone.gps\",\
author = \"Sertex\",\
hidden = true,\
main = \"gps.lua\",\
id = \"sphone.gps\",\
author = \"BeaconNet\",\
hidden = true,\
}",
}

View file

@ -1,36 +1,10 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
files = "{\
[ \"home.lua\" ] = \"local currentTime\\\
\\\
local function launch(id)\\\
\\\
local ok, par = sPhone.launch(id);\\\
\\\
if not ok then\\\
term.setBackgroundColor(colors.black)\\\
term.setTextColor(colors.white)\\\
term.clear()\\\
term.setCursorPos(1,1)\\\
print(id .. \\\" has errored:\\\")\\\
printError(par)\\\
print(\\\"Press any key to continue\\\")\\\
os.pullEvent(\\\"key\\\")\\\
\\\
else\\\
if #par == 0 or not par[1] and par[1] ~= nil then\\\
term.setBackgroundColor(colors.black)\\\
term.setTextColor(colors.white)\\\
print(\\\"Press any key to continue\\\")\\\
os.pullEvent(\\\"key\\\")\\\
end\\\
end\\\
end\\\
\\\
local buttonsInHome = {\\\
[ \"home.lua\" ] = \"local buttonsInHome = {\\\
{\\\"sphone.header\\\",23,1,25,1,sPhone.theme[\\\"header\\\"],sPhone.theme[\\\"headerText\\\"],\\\"vvv\\\"},\\\
{\\\"sphone.appList\\\",12,20,14,20,sPhone.theme[\\\"backgroundColor\\\"],sPhone.theme[\\\"header\\\"],\\\"===\\\"},\\\
{\\\"sphone.shell\\\",2,3,8,5,colors.black,colors.yellow,\\\" Shell\\\",2},\\\
@ -39,39 +13,28 @@ local buttonsInHome = {\\\
{\\\"sphone.gps\\\",11,7,15,9,colors.red,colors.black,\\\" GPS\\\",2},\\\
{\\\"sphone.info\\\",18,7,23,9,colors.lightGray,colors.black,\\\" Info\\\",2},\\\
{\\\"sphone.store\\\",2,7,8,9,colors.green,colors.white,\\\" Store\\\",2},\\\
}\\\
\\\
local function clear()\\\
}\\\
\\\
local function clear()\\\
term.setBackgroundColor(sPhone.theme[\\\"backgroundColor\\\"])\\\
term.clear()\\\
term.setCursorPos(1,1)\\\
term.setTextColor(sPhone.theme[\\\"text\\\"])\\\
end\\\
end\\\
\\\
local function drawClock(time)\\\
term.setBackgroundColor(sPhone.theme[\\\"header\\\"])\\\
term.setTextColor(sPhone.theme[\\\"headerText\\\"])\\\
term.setCursorPos(1,1)\\\
write(\\\" \\\")\\\
term.setCursorPos(1,1)\\\
write(\\\" \\\"..time)\\\
end\\\
\\\
local function drawHome()\\\
local function drawHome()\\\
clear()\\\
visum.buttons(buttonsInHome,true)\\\
\\\
\\\
local w, h = term.getSize()\\\
paintutils.drawLine(1,1,w,1, sPhone.theme[\\\"header\\\"])\\\
term.setTextColor(sPhone.theme[\\\"headerText\\\"])\\\
visum.align(\\\"right\\\",\\\"vvv \\\",false,1)\\\
drawClock(currentTime or \\\"\\\")\\\
end\\\
local function footerMenu()\\\
end\\\
local function footerMenu()\\\
sPhone.isFooterMenuOpen = true\\\
function redraw()\\\
drawHome()\\\
drawClock(currentTime)\\\
local w, h = term.getSize()\\\
paintutils.drawFilledBox(1,2,w,4,sPhone.theme[\\\"header\\\"])\\\
term.setTextColor(sPhone.theme[\\\"headerText\\\"])\\\
@ -83,9 +46,10 @@ local function footerMenu()\\\
term.setCursorPos(2,3)\\\
write(\\\"Shutdown\\\")\\\
end\\\
redraw()\\\
while true do\\\
term.redirect(sPhone.mainTerm)\\\
drawHome()\\\
redraw()\\\
local _,_,x,y = os.pullEvent(\\\"mouse_click\\\")\\\
if y == 3 then\\\
if x > 1 and x < 10 then\\\
@ -96,11 +60,9 @@ local function footerMenu()\\\
sPhone.inHome = true\\\
elseif x > 10 and x < 19 then\\\
sPhone.inHome = false\\\
launch(\\\"sphone.settings\\\")\\\
sPhone.launch(\\\"sphone.settings\\\")\\\
sPhone.inHome = true\\\
\\\
drawHome()\\\
break\\\
end\\\
elseif y == 1 then\\\
if x < 26 and x > 22 then\\\
@ -109,60 +71,58 @@ local function footerMenu()\\\
end\\\
end\\\
end\\\
end\\\
local function buttonHomeLoop()\\\
drawHome()\\\
end\\\
local function buttonHomeLoop()\\\
while true do\\\
drawHome()\\\
term.setCursorBlink(false)\\\
local autoLockTimer = os.startTimer(10)\\\
local id = visum.buttons(buttonsInHome)\\\
\\\
\\\
if id == \\\"sphone.header\\\" then\\\
footerMenu()\\\
drawHome()\\\
elseif id == \\\"sphone.lock\\\" then\\\
sPhone.inHome = false\\\
sPhone.login()\\\
drawHome()\\\
sPhone.inHome = true\\\
else\\\
sPhone.inHome = false\\\
os.pullEvent = os.oldPullEvent\\\
launch(id)\\\
drawHome()\\\
sPhone.launch(id)\\\
os.pullEvent = os.pullEventRaw\\\
sPhone.inHome = true\\\
end\\\
end\\\
\\\
\\\
sPhone.inHome = false\\\
\\\
end\\\
\\\
local function updateClock()\\\
local old\\\
\\\
end\\\
\\\
local function updateClock()\\\
while true do\\\
if sPhone.inHome then\\\
local time = textutils.formatTime(os.time(), not config.read(\\\"/.sPhone/config/sPhone\\\",\\\"format12time\\\"))\\\
if time ~= old then\\\
old = time\\\
currentTime = time\\\
drawClock(time)\\\
term.setCursorPos(1,1)\\\
term.setBackgroundColor(sPhone.theme[\\\"header\\\"])\\\
term.setTextColor(sPhone.theme[\\\"headerText\\\"])\\\
term.setCursorPos(1,1)\\\
write(\\\" \\\")\\\
term.setCursorPos(1,1)\\\
write(\\\" \\\"..textutils.formatTime(os.time(), not config.read(\\\"/.sPhone/config/sPhone\\\",\\\"format12time\\\")))\\\
end\\\
sleep(0)\\\
end\\\
end\\\
sleep(0.3)\\\
end\\\
end\\\
\\\
parallel.waitForAll(buttonHomeLoop, updateClock)\",\
\\\
parallel.waitForAll(buttonHomeLoop, updateClock)\\\
\",\
}",
config = "{\
type = \"home\",\
main = \"home.lua\",\
name = \"sPhone Home\",\
id = \"sphone.home\",\
author = \"Sertex\",\
hidden = true,\
version = 1,\
id = \"sphone.home\",\
author = \"BeaconNet\",\
hidden = true,\
}",
}

View file

@ -1,5 +1,5 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
@ -29,17 +29,18 @@ while true do\\\
local w, h = term.getSize()\\\
local _, _, x, y = os.pullEvent(\\\"mouse_click\\\")\\\
if y == 1 and x == w then\\\
return true\\\
return\\\
end\\\
end\",\
end\\\
\",\
}",
config = "{\
type = \"system\",\
name = \"Info\",\
main = \"info.lua\",\
version = 1,\
id = \"sphone.info\",\
author = \"Sertex\",\
hidden = true,\
version = 1,\
}",
}

View file

@ -1,5 +1,5 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
@ -239,7 +239,6 @@ local function editTheme()\\\
\\\"Background Color\\\",\\\
\\\"Window Options\\\",\\\
\\\"Login Options\\\",\\\
\\\"\\\",\\\
\\\"Save\\\",\\\
\\\"Load\\\",\\\
\\\"Reset\\\",\\\
@ -308,7 +307,7 @@ local function editTheme()\\\
sPhone.applyTheme(\\\"lock.error\\\", sPhone.colorPicker(\\\"Error\\\",sPhone.getTheme(\\\"lock.error\\\")))\\\
end\\\
end\\\
elseif id == 10 then\\\
elseif id == 9 then\\\
local saveTheme\\\
sPhone.header(sPhone.user)\\\
term.setCursorPos(w,1)\\\
@ -335,7 +334,7 @@ local function editTheme()\\\
end\\\
fs.copy(\\\"/.sPhone/config/theme\\\", saveTheme)\\\
sPhone.winOk(\\\"Theme saved!\\\")\\\
elseif id == 11 then\\\
elseif id == 10 then\\\
local loadTheme = sPhone.list()\\\
if loadTheme then\\\
if fs.exists(loadTheme) and not fs.isDir(loadTheme) then\\\
@ -350,7 +349,7 @@ local function editTheme()\\\
sPhone.winOk(\\\"Theme not found!\\\")\\\
end\\\
end\\\
elseif id == 12 then\\\
elseif id == 11 then\\\
fs.delete(\\\"/.sPhone/config/theme\\\")\\\
sPhone.theme = sPhone.defaultTheme\\\
sPhone.winOk(\\\"Removed Theme\\\")\\\
@ -410,8 +409,8 @@ while true do\\\
end\\\
local name, id = sPhone.menu(menu, \\\"Settings\\\",\\\"X\\\")\\\
if id == 0 then\\\
--task.kill(temp.get(\\\"homePID\\\"))\\\
return true\\\
task.kill(temp.get(\\\"homePID\\\"))\\\
return\\\
elseif id == 1 then\\\
setfenv(loadstring(http.get(\\\"https://raw.githubusercontent.com/SertexTeam/sPhone/master/src/installer.lua\\\").readAll()),getfenv())()\\\
elseif id == 2 then\\\
@ -429,15 +428,16 @@ while true do\\\
elseif id == 8 then\\\
config.write(\\\"/.sPhone/config/sPhone\\\",\\\"showUpdate\\\", not config.read(\\\"/.sPhone/config/sPhone\\\",\\\"showUpdate\\\"))\\\
end\\\
end\",\
end\\\
\",\
}",
config = "{\
type = \"system\",\
name = \"Settings\",\
main = \"settings.lua\",\
version = 1,\
id = \"sphone.settings\",\
author = \"Sertex\",\
hidden = true,\
version = 1,\
}",
}

View file

@ -1,5 +1,5 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
@ -9,16 +9,15 @@ term.setTextColor(colors.white)\\\
term.clear()\\\
term.setCursorPos(1,1)\\\
shell.run(\\\"/rom/programs/shell\\\")\\\
\\\
return true\",\
\",\
}",
config = "{\
type = \"app\",\
name = \"Shell\",\
version = 1,\
id = \"sphone.shell\",\
author = \"Sertex\",\
hidden = true,\
main = \"shell.lua\",\
id = \"sphone.shell\",\
author = \"BeaconNet\",\
hidden = true,\
}",
}

View file

@ -1,5 +1,5 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
@ -69,7 +69,7 @@ while true do\\\
})\\\
\\\
if not path then\\\
return true\\\
return\\\
end\\\
\\\
local data = http.get(\\\"https://raw.github.com/SertexTeam/sPhone-Store/master/apps/\\\"..path).readAll()\\\
@ -132,15 +132,16 @@ while true do\\\
\\\
\\\
\\\
end\",\
end\\\
\",\
}",
config = "{\
type = \"app\",\
name = \"Store\",\
version = 1,\
main = \"store.lua\",\
id = \"sphone.store\",\
author = \"Sertex\",\
hidden = true,\
main = \"store.lua\",\
}",
}

View file

@ -1,51 +1,50 @@
--
-- Sertex Application Package
-- sPhone Application Package
-- Built with SPK builder 1.2
--
{
files = "{\
[ \"themes.lua\" ] = \"if not sPhone then\\\
printError(\\\"sPhone must be installed and loaded before running this program\\\")\\\
return\\\
end\\\
\\\
\\\
print(\\\"Downloading theme list\\\")\\\
local url = \\\"https://raw.github.com/Ale32bit/sPhone-Mods/master/themes.lua\\\"\\\
\\\
local ht = http.get(url)\\\
local themesRaw = ht.readAll()\\\
local themes = textutils.unserialize(themesRaw)\\\
ht.close()\\\
\\\
local li = {}\\\
for k,v in pairs(themes) do\\\
table.insert(li,k)\\\
end\\\
while true do\\\
local g, c = sPhone.menu(li,\\\" Themes\\\",\\\"X\\\")\\\
if c == 0 then\\\
return\\\
elseif c > #li then\\\
\\\
else\\\
for k,v in pairs(themes[g]) do\\\
sPhone.applyTheme(k,v)\\\
end\\\
sPhone.winOk(\\\"Theme applied\\\")\\\
break\\\
end\\\
end\\\
\\\
return true\",\
[ \"themes.lua\" ] = \"if not sPhone then\\r\\\
printError(\\\"sPhone must be installed and loaded before running this program\\\")\\r\\\
return\\r\\\
end\\r\\\
\\r\\\
\\r\\\
print(\\\"Downloading theme list\\\")\\r\\\
local url = \\\"https://raw.github.com/Ale32bit/sPhone-Mods/master/themes.lua\\\"\\r\\\
\\r\\\
local ht = http.get(url)\\r\\\
local themesRaw = ht.readAll()\\r\\\
local themes = textutils.unserialize(themesRaw)\\r\\\
ht.close()\\r\\\
\\r\\\
local li = {}\\r\\\
for k,v in pairs(themes) do\\r\\\
table.insert(li,k)\\r\\\
end\\r\\\
while true do\\r\\\
local g, c = sPhone.menu(li,\\\" Themes\\\",\\\"X\\\")\\r\\\
if c == 0 then\\r\\\
return\\r\\\
elseif c > #li then\\r\\\
\\r\\\
else\\r\\\
for k,v in pairs(themes[g]) do\\r\\\
sPhone.applyTheme(k,v)\\r\\\
end\\r\\\
sPhone.winOk(\\\"Theme applied\\\")\\r\\\
break\\r\\\
end\\r\\\
end\\r\\\
\",\
}",
config = "{\
type = \"app\",\
name = \"Theme List\",\
version = 1,\
id = \"sphone.themes\",\
author = \"Sertex\",\
hidden = true,\
main = \"themes.lua\",\
id = \"sphone.themes\",\
author = \"BeaconNet\",\
hidden = true,\
}",
}

View file

@ -8,6 +8,13 @@ end
local old = os.pullEvent
os.pullEvent = os.pullEventRaw
local license = [[
The MIT License (MIT)
Copyright (c) 2017 Sertex
Read full license here:
https://raw.github.com/SertexTeam/sPhone/master/LICENSE]]
local files = {
["src/init.lua"] = "/.sPhone/init",
["src/sPhone.lua"] = "/.sPhone/sPhone",
@ -148,7 +155,8 @@ gui()
term.setCursorPos(2,3)
print("License\n")
printError("You must accept the license to install sPhone\n")
print("The MIT License (MIT)\nCopyright (c) 2017 Sertex\n\nRead full license here:\nhttps://raw.github.com/SertexTeam/sPhone/master/LICENSE")
print(license)
paintutils.drawFilledBox(2,17,9,19,colors.lime)
term.setCursorPos(3,18)
term.setTextColor(colors.white)

View file

@ -1,6 +1,6 @@
local function kernel(...)
_G.sPhone = {
version = "Beta 1.2.2",
version = "Beta 1.2",
user = "Guest",
devMode = false,
mainTerm = term.current(),
@ -828,8 +828,8 @@ local function kernel(...)
end
end
redraw()
while true do
redraw()
local eventData = {os.pullEventRaw()}
if eventData[1] == 'mouse_click' then
if eventData[4] == 1 and eventData[3] == termWidth then
@ -1089,10 +1089,8 @@ end
if not script then
return false, "config corrupted"
end
local result = {}
local ok, err = pcall(function()
result = {setfenv(loadfile(fs.combine("/.sPhone/apps/spk",_config.id.."/files/".._config.main)), setmetatable({
setfenv(loadfile(fs.combine("/.sPhone/apps/spk",_config.id.."/files/".._config.main)), setmetatable({
spk = {
getName = function()
return (_config.name or nil)
@ -1128,13 +1126,13 @@ end
},
string = string,
sPhone = sPhone,
}, {__index = getfenv()}))()}
}, {__index = getfenv()}))()
end)
if not ok then
return false, err
end
return true, result
return true
end
local function home()

View file

@ -1 +1 @@
Beta 1.2.2
Beta 1.2.1