Compare commits
No commits in common. "c50a5dfbfa460123ae60ee33c20bb83ed6a37932" and "f3d643fc9e835a3cc0df410e8d63bf4e4a27a955" have entirely different histories.
c50a5dfbfa
...
f3d643fc9e
14 changed files with 388 additions and 422 deletions
10
README.md
10
README.md
|
@ -1,11 +1,15 @@
|
|||
# Welcome to sPhone repository!
|
||||
|
||||
![SPK Support](https://raw.githubusercontent.com/BeaconNet/beaconnet.github.io/master/badge.png)
|
||||
|
||||
##Install:
|
||||
|
||||
Stable: `pastebin run HsJSnhKQ`
|
||||
|
||||
Dev: `pastebin run qNz53cR9` (outdated)
|
||||
|
||||
##Dates:
|
||||
|
||||
* Started (Alpha 1): 31st July 2015
|
||||
* Beta 1: 20th November 2016
|
||||
* End of life: 28th October 2019
|
||||
Started (Alpha 1): 31/July/2015
|
||||
|
||||
Beta 1: 20/November/2016
|
||||
|
|
|
@ -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,\
|
||||
}",
|
||||
}
|
|
@ -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,\
|
||||
}",
|
||||
}
|
|
@ -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,\
|
||||
}",
|
||||
}
|
|
@ -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,\
|
||||
}",
|
||||
}
|
|
@ -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},\\\
|
||||
|
@ -48,15 +22,6 @@ local function clear()\\\
|
|||
term.setTextColor(sPhone.theme[\\\"text\\\"])\\\
|
||||
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()\\\
|
||||
clear()\\\
|
||||
visum.buttons(buttonsInHome,true)\\\
|
||||
|
@ -65,13 +30,11 @@ local function drawHome()\\\
|
|||
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()\\\
|
||||
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\\\
|
||||
|
@ -111,25 +73,22 @@ local function footerMenu()\\\
|
|||
end\\\
|
||||
end\\\
|
||||
local function buttonHomeLoop()\\\
|
||||
drawHome()\\\
|
||||
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\\\
|
||||
|
@ -140,29 +99,30 @@ local function buttonHomeLoop()\\\
|
|||
end\\\
|
||||
\\\
|
||||
local function updateClock()\\\
|
||||
local old\\\
|
||||
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\\\
|
||||
end\\\
|
||||
sleep(0.3)\\\
|
||||
sleep(0)\\\
|
||||
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,\
|
||||
}",
|
||||
}
|
|
@ -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,\
|
||||
}",
|
||||
}
|
|
@ -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,\
|
||||
}",
|
||||
}
|
|
@ -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,\
|
||||
}",
|
||||
}
|
|
@ -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\",\
|
||||
}",
|
||||
}
|
|
@ -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,\
|
||||
}",
|
||||
}
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -1 +1 @@
|
|||
Beta 1.2.2
|
||||
Beta 1.2.1
|
||||
|
|
Loading…
Reference in a new issue