mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
add wifi
This commit is contained in:
parent
25c2e34512
commit
bfabe57ea3
@ -320,6 +320,7 @@ div.output>div.project:not(.toggle) { border-right:var(--box-border); width:var(
|
||||
body.mobile div.project:not(.toggle) { border-right:var(--box-border); width:120px; flex:0 0 120px; }
|
||||
div.profile:not(.toggle) { border-left:var(--box-border); width:50%; }
|
||||
div.display:not(.toggle) { border-top:var(--box-border); }
|
||||
div.output div.code input[type=button][name=login] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
/* table card */
|
||||
div.output.card>div.item.stop { color:var(--disable-fg-color); }
|
||||
div.output.card>div.item { background:var(--plugin-bg-color); padding:10px; border:var(--box-border); border-radius:var(--plugin-radius); margin:10px; width:320px; float:left; box-shadow:var(--box-shadow); }
|
||||
|
@ -31,8 +31,9 @@ Volcanos(chat.ONIMPORT, {
|
||||
}).length == 0) { can.onappend.table(can, msg) } },
|
||||
_grow: function(can, msg, arg) { var sub = can.sub
|
||||
if (sub && sub.onimport && sub.onimport.grow) { return sub.onimport.grow(sub, msg, arg) }
|
||||
arg = can.page.Color(arg); if (can.page.Select(can, can._output, html.DIV_CODE, function(div) {
|
||||
return can.page.style(can, div, html.MAX_HEIGHT, can.onexport.outputHeight(can)), can.page.Append(can, div, [{text: arg}]), can._output.scrollTop = div.offsetTop, div.scrollBy(0, 10000), true
|
||||
arg = can.page.Color(arg); if (can.page.SelectOne(can, can._output, html.DIV_CODE, function(div) {
|
||||
return can.page.style(can, div, html.MAX_HEIGHT, can.onexport.outputHeight(can)),
|
||||
can.page.Append(can, div, [{text: arg}]), can._output.scrollTop = div.offsetTop, div.scrollBy(0, 10000), true
|
||||
}).length == 0) { can.onappend.board(can, arg) }
|
||||
},
|
||||
_open: function(can, msg, arg) { can.user.opens(arg), can.Update() },
|
||||
|
@ -1,7 +1,8 @@
|
||||
Volcanos(chat.ONIMPORT, {
|
||||
_init: function(can, msg) { can.onappend.style(can, "stats", can._output)
|
||||
var units = {}, stats = {}; msg.Table(function(value) { units[value.name] = value.units
|
||||
var stats = {}, units = {}, index = {}; msg.Table(function(value) { units[value.name] = value.units
|
||||
stats[value.name] = parseFloat(stats[value.name]||"0") + parseFloat(value.value)
|
||||
index[value.name] = value.index
|
||||
})
|
||||
function fmts(value) { var ls = []
|
||||
while (value > 0) { ls.push(value%1000)
|
||||
@ -12,6 +13,8 @@ Volcanos(chat.ONIMPORT, {
|
||||
can.core.Item(stats, function(name, value) { can.page.Append(can, can._output, [{view: [[html.ITEM, name]], list: [
|
||||
{view: mdb.VALUE, list: [{text: can.base.trimSuffix(fmts(parseFloat(value).toFixed(2))+"", ".00")}, {text: [units[name], "", "units"]}]},
|
||||
{view: [mdb.NAME, "", can.user.trans(can, name, null, html.INPUT)]},
|
||||
]}]) }), can.isCmdMode() && can.onappend.table(can, msg)
|
||||
], onclick: function() {
|
||||
can.onappend.plugin(can, {index: index[name], style: html.FLOAT})
|
||||
}}]) }), can.isCmdMode() && can.onappend.table(can, msg)
|
||||
},
|
||||
})
|
||||
|
@ -5,7 +5,8 @@ const page = require("utils/lib/page.js")
|
||||
const user = require("utils/lib/user.js")
|
||||
|
||||
App({
|
||||
data: {}, conf: {serve: "https://2021.shylinux.com", appid: "wxf4e5104d83476ed6"},
|
||||
data: {}, conf: {serve: "https://2021.shylinux.com", appid: "wxf4e5104d83476ed6",
|
||||
module: "shylinux.com/x/volcanos", version: "v0.2.1"},
|
||||
base: base, core: core, misc: misc, page: page, user: user,
|
||||
onLaunch: function() { console.log("app load", this.conf) },
|
||||
})
|
||||
|
@ -6,13 +6,16 @@ Volcanos(chat.ONIMPORT, {
|
||||
msg.Dump(can), can.user.toast(can, "加载成功")
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {list: ["刷新", "扫码", "登录"],
|
||||
Volcanos("onaction", {list: ["刷新", "扫码", "登录", "网络"],
|
||||
"刷新": function(event, can) { can.onaction.refresh(event, can) },
|
||||
"扫码": function(event, can) { can.user.agent.scanQRCode(can) },
|
||||
"登录": function(event, can) {
|
||||
can.user.info = {}, can.misc.localStorage(can, ice.MSG_SESSID, can.conf.sessid = "")
|
||||
can.user.userinfo(can, function() { can.onaction.refresh(event, can) })
|
||||
},
|
||||
"网络": function(event, can) {
|
||||
can.user.agent.connectWifi(can, "CMCC-UQJ7", "RZGR9FGF")
|
||||
},
|
||||
refresh: function(event, can) { can.run(event, [], function(msg) { can.onimport._init(can, msg) }) },
|
||||
onaction: function(event, can, button, data) { var name = data.name;
|
||||
(can.onaction[name]||function(event) { can.run(event, [ctx.ACTION, name]) })(event, can)
|
||||
|
@ -7,16 +7,17 @@
|
||||
"miniprogram": {
|
||||
"list": [
|
||||
{
|
||||
"name": "",
|
||||
"name": "cli.runtime",
|
||||
"pathName": "pages/action/action",
|
||||
"query": "cmd=web.code.h2.h2",
|
||||
"query": "index=cli.runtime&serve=http%3A%2F%2F192.168.10.12%3A9020&debug=true",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/action/action",
|
||||
"name": "web.dream",
|
||||
"pathName": "pages/action/action",
|
||||
"query": "river= e0a1eb&storm=c23ae3&title=hi.scan",
|
||||
"query": "index=web.dream&serve=http%3A%2F%2F192.168.10.12%3A9020&debug=true",
|
||||
"launchMode": "default",
|
||||
"scene": 1001
|
||||
}
|
||||
]
|
||||
|
@ -11,6 +11,8 @@ var kit = {proto: function(sub, sup) { return sub.__proto__ = sup, sub },
|
||||
}
|
||||
var ice = {
|
||||
TB: "\t", SP: " ", DF: ":", EQ: "=", AT: "@", QS: "?", PS: "/", PT: ".", FS: ",", NL: "\n", LT: "<", GT: ">",
|
||||
OK: "ok", TRUE: "true", FALSE: "false", SUCCESS: "success", FAILURE: "failure", PROCESS: "process",
|
||||
|
||||
HTTP: "http", HELP: "help",
|
||||
MAIN: "main", AUTO: "auto",
|
||||
LIST: "list", BACK: "back",
|
||||
|
@ -57,6 +57,24 @@ Volcanos("misc", {
|
||||
for (var i = 1; i < ls.length; i += 2) { if (can.base.isIn(ls[i], [ice.POD, ice.CMD])) { args[ls[i]] = ls[i+1] } }
|
||||
return args
|
||||
},
|
||||
WSS: function(can) {
|
||||
var url = can.base.MergeURL(can.db.serve.replace("http", "ws")+"/space/", mdb.TYPE, "weixin", mdb.NAME, "weixin", mdb.TEXT, can.base.MergeURL(nfs.PS+can.ui.route, can.db), can.conf)
|
||||
var socket = wx.connectSocket({url: url, header:{"content-type": "application/json"}})
|
||||
console.log("wss connect", url, socket)
|
||||
socket.onOpen(function(res) { console.log("wss open", res) })
|
||||
socket.onClose(function(res) { console.log("wss close", res)
|
||||
if (can._socket) { can._socket = socket = can.misc.WSS(can) }
|
||||
})
|
||||
socket.onMessage(function(res) {
|
||||
var msg = can.request(), data = can.base.Obj(res.data); msg.Copy(data), msg.detail = data.detail, console.log("wss recv", msg)
|
||||
switch (msg.detail[0]) {
|
||||
case "pwd": can._daemon = msg.detail[1]; break
|
||||
}
|
||||
msg.Echo("hello world")
|
||||
delete(msg._hand), console.log("wss send", msg), socket.sendSocketMessage({data: JSON.stringify(msg)})
|
||||
})
|
||||
return socket
|
||||
},
|
||||
requests: function(can, msg, cmd, data, cb) {
|
||||
can.misc.request(can, msg, cmd, data, function(msg) { cb && cb(msg) })
|
||||
},
|
||||
|
@ -20,19 +20,32 @@ Volcanos("user", {
|
||||
scanQRCode: function(can, cb) {
|
||||
wx.scanCode({success: function(res) { var data = can.base.ParseJSON(res.result)
|
||||
if (data.type == web.LINK && data._origin) { can.base.Copy(data, can.misc.ParseURL(can, res.result)) }
|
||||
console.log("scan", data)
|
||||
if (cb && cb(data)) { return }
|
||||
if (data.type == web.LINK && data._origin) { delete(data.type), delete(data.name), delete(data.text)
|
||||
var serve = /(https?:\/\/[^/]+)([^?#])*/.exec(data._origin)[1]; data.serve = serve, delete(data._origin)
|
||||
var ls = new RegExp("(https?://[^/]+)([^?#]*)([^#]*)(.*)").exec(data._origin); delete(data._origin)
|
||||
data.serve = ls[1]; if (ls[2].indexOf("/pages/") == 0) { data.pages = ls[2] }
|
||||
}
|
||||
if (data.cmd||data.index||data.share) {
|
||||
can.user.jumps(can.base.MergeURL(chat.PAGES_ACTION, data))
|
||||
can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_ACTION, data))
|
||||
} else if (data.pod||data.space||data.serve) {
|
||||
can.user.jumps(can.base.MergeURL(chat.PAGES_RIVER, data))
|
||||
can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_RIVER, data))
|
||||
} else {
|
||||
can.misc.request(can, can.request(), chat.WX_LOGIN_SCAN, data)
|
||||
}
|
||||
}})
|
||||
},
|
||||
connectWifi: function(can, ssid, password, cb, cbs) { wx.showLoading()
|
||||
wx.startWifi({success: function(res) {
|
||||
wx.connectWifi({SSID: ssid, password: password, success: function(res) { wx.hideLoading()
|
||||
console.log("wifi", res), cb && cb(res)
|
||||
}, fail: function(res) {
|
||||
console.log("wifi", res), cbs && cbs(res)
|
||||
}})
|
||||
}, fail: function(res) {
|
||||
console.log("wifi", res), cbs && cbs(res)
|
||||
}})
|
||||
},
|
||||
}, info: {},
|
||||
jumps: function(url, cb) { wx.navigateTo({url: url, success: cb}) },
|
||||
title: function(text, cb) { text && wx.setNavigationBarTitle({title: text, success: cb}) },
|
||||
|
@ -1,16 +1,13 @@
|
||||
const {ctx, nfs, code, chat} = require("const.js")
|
||||
|
||||
const {ice, ctx, mdb, nfs, code, chat} = require("const.js")
|
||||
function shy(help, meta, list, cb) { var arg = arguments, i = 0; function next(type) {
|
||||
if (type == code.OBJECT) { if (typeof arg[i] == code.OBJECT && arg[i].length == undefined) { return arg[i++] }
|
||||
} else if (type == code.ARRAY) { if (typeof arg[i] == code.OBJECT && arg[i].length != undefined) { return arg[i++] }
|
||||
} else if (i < arg.length && (!type || type == typeof arg[i])) { return arg[i++] }
|
||||
} return cb = typeof arg[arg.length-1] == code.FUNCTION? arg[arg.length-1]: function() {}, cb.help = next(code.STRING)||"", cb.meta = next(code.OBJECT)||{}, cb.list = next(code.ARRAY)||[], cb }
|
||||
|
||||
function Volcanos(name, list) {
|
||||
if (Volcanos._page) { Volcanos._page[name] = list }
|
||||
return list
|
||||
}
|
||||
|
||||
Volcanos._init = function() {
|
||||
var can = {__proto__: Volcanos._page,
|
||||
request: function(event) { event = event||{}, event = event._event||event
|
||||
@ -34,13 +31,19 @@ Volcanos._init = function() {
|
||||
onLoad: function(options) { can.ui = this, can.db = options, can.db.serve = can.db.serve||can.conf.serve
|
||||
can.core.Item(can.db, function(key, value) { can.db[key] = decodeURIComponent(value) })
|
||||
can.user.title(can.db.title||can.db.pod||can.db.space||(can.db.serve||can.conf.serve).split("://")[1])
|
||||
console.log("app show", can.ui.route, options), can.ui.setData({conf: can.db})
|
||||
can.user.login(can, function() { can.onaction.refresh({}, can) })
|
||||
console.log("app show", can.ui.route, options)
|
||||
if (can.db.ssid && can.db.password != "******") {
|
||||
can.user.agent.connectWifi(can, can.db.ssid, can.db.password||"", function() { can.db.password = "******"
|
||||
can.ui.setData({conf: can.db}), can.user.login(can, function() { can.onaction.refresh({}, can) })
|
||||
})
|
||||
} else {
|
||||
can.ui.setData({conf: can.db}), can.user.login(can, function() { can.onaction.refresh({}, can) })
|
||||
}
|
||||
},
|
||||
onShow: function() {},
|
||||
onShow: function() { can.misc.WSS(can) },
|
||||
onReady: function() {},
|
||||
onHide: function() {},
|
||||
onUnload: function() {},
|
||||
onHide: function() { can._socket && can._socket.close(), delete(can._socket) },
|
||||
onUnload: function() { can._socket && can._socket.close(), delete(can._socket) },
|
||||
onReachBottom: function() {},
|
||||
onPullDownRefresh: function() { this.onLoad(can.db) },
|
||||
onShareAppMessage: function() {}
|
||||
@ -49,5 +52,4 @@ Volcanos._init = function() {
|
||||
can.core.CallFunc(cb, [event, can, key, event.target.dataset])
|
||||
} }), Page(page)
|
||||
}
|
||||
|
||||
module.exports = {shy, Volcanos}
|
||||
|
Loading…
x
Reference in New Issue
Block a user