64 lines
1.5 KiB
Lua
64 lines
1.5 KiB
Lua
local log = require('util.logger')
|
|
local utils = require('util.utils')
|
|
local uci = require('uci').cursor()
|
|
local iwinfo = require('iwinfo')
|
|
local settings = require('util.settings')
|
|
local wifi = require("network.wlanconfig")
|
|
local urlcode = require('util.urlcode')
|
|
local status = require('util.status')
|
|
|
|
local M = {}
|
|
|
|
local STATUS_FILE = "signinstatus"
|
|
|
|
local IDLE_STATUS = 1
|
|
local SIGNING_IN_STATUS = 2
|
|
|
|
--- Signin to connect.doodle3d.com server
|
|
--
|
|
function M.signin()
|
|
|
|
--log:debug("signin:signin");
|
|
|
|
local code, msg = M.getStatus()
|
|
--log:debug(" status: "..utils.dump(code).." "..utils.dump(msg));
|
|
|
|
-- if we are already signin in, skip
|
|
if(code == SIGNING_IN_STATUS) then
|
|
log:debug(" skipping signin")
|
|
return
|
|
end
|
|
|
|
M.setStatus(SIGNING_IN_STATUS,"signing in")
|
|
|
|
local baseurl = "http://connect.doodle3d.com/api/signin.php"
|
|
|
|
local localip = wifi.getLocalIP();
|
|
if localip == nil then
|
|
log:error("signin failed no local ip found")
|
|
M.setStatus(IDLE_STATUS,"idle")
|
|
return false
|
|
end
|
|
|
|
local wifiboxid = wifi.getSubstitutedSsid(settings.get('network.cl.wifiboxid'))
|
|
wifiboxid = urlcode.escape(wifiboxid)
|
|
|
|
local cmd = "wget -q -T 2 -t 1 -O - "..baseurl.."?wifiboxid="..wifiboxid.."\\&localip="..localip;
|
|
local output = utils.captureCommandOutput(cmd);
|
|
log:info("signin: "..output)
|
|
|
|
M.setStatus(IDLE_STATUS,"idle")
|
|
|
|
return string.len(output) > 0, output
|
|
end
|
|
|
|
function M.getStatus()
|
|
return status.get(STATUS_FILE);
|
|
end
|
|
|
|
function M.setStatus(code,msg)
|
|
log:info("signin:setStatus: "..code.." | "..msg)
|
|
status.set(STATUS_FILE,code,msg);
|
|
end
|
|
|
|
return M |