mirror of
https://shylinux.com/x/volcanos
synced 2025-04-26 01:04:06 +08:00
opt chrome
This commit is contained in:
parent
6d5f5caa5e
commit
773ee26d90
@ -109,7 +109,7 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
|
|||||||
})
|
})
|
||||||
|
|
||||||
can.misc.POST(can, msg, can.base.MergeURL(dataset.names.toLowerCase(),
|
can.misc.POST(can, msg, can.base.MergeURL(dataset.names.toLowerCase(),
|
||||||
"_", (msg._can.sup||msg._can)._name, "_daemon", dataset.daemon||"",
|
"_", (msg._can.sup||msg._can)._name, "_daemon", msg._daemon||dataset.daemon||"",
|
||||||
), form, cb)
|
), form, cb)
|
||||||
},
|
},
|
||||||
WSS: function(can, args, cb, onopen, onclose, onerror) {
|
WSS: function(can, args, cb, onopen, onclose, onerror) {
|
||||||
|
17
proto.js
17
proto.js
@ -105,3 +105,20 @@ Volcanos.meta._load = function(url, cb) {
|
|||||||
return item
|
return item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var kit = {
|
||||||
|
MDB_TIME: "time",
|
||||||
|
MDB_TYPE: "type",
|
||||||
|
MDB_NAME: "name",
|
||||||
|
MDB_TEXT: "text",
|
||||||
|
MDB_LINK: "link",
|
||||||
|
}
|
||||||
|
var ctx = {
|
||||||
|
CONTEXT: "context",
|
||||||
|
COMMAND: "command",
|
||||||
|
ACTION: "action",
|
||||||
|
CONFIG: "config",
|
||||||
|
}
|
||||||
|
var cli = {
|
||||||
|
RUN: "run",
|
||||||
|
}
|
||||||
|
@ -57,11 +57,18 @@ Volcanos("chrome", {
|
|||||||
message: message, title: title||can._name, iconUrl: "/favicon.ico", type: "basic",
|
message: message, title: title||can._name, iconUrl: "/favicon.ico", type: "basic",
|
||||||
})},
|
})},
|
||||||
can.misc.WSS(can, {type: "chrome", name: "chrome"}, function(event, msg, cmd, arg) {
|
can.misc.WSS(can, {type: "chrome", name: "chrome"}, function(event, msg, cmd, arg) {
|
||||||
|
if (msg.Option("_target")) { msg.detail = ["", "", ""].concat(msg.detail)
|
||||||
|
chrome.tabs.sendMessage(parseInt(msg.Option("_target")), msg, function(res) {
|
||||||
|
msg.Copy(res), msg.Reply()
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
can.core.CallFunc([can, cmd], {can: can, msg: msg, cmds: arg, cb: function() { msg.Reply() }})
|
can.core.CallFunc([can, cmd], {can: can, msg: msg, cmds: arg, cb: function() { msg.Reply() }})
|
||||||
})
|
})
|
||||||
|
|
||||||
chrome.runtime.onMessage.addListener(function(req, sender, cb) {
|
chrome.runtime.onMessage.addListener(function(req, sender, cb) {
|
||||||
var msg = can.request({}, {tid: sender.tab.id, url: sender.url})
|
var msg = can.request({}, {tid: sender.tab.id, url: sender.url})
|
||||||
|
msg._daemon = "chrome."+sender.tab.id
|
||||||
can.core.List(req.option, function(key) { msg.Option(key, req[key][0]) })
|
can.core.List(req.option, function(key) { msg.Option(key, req[key][0]) })
|
||||||
can.run(msg._event, req.detail||[], cb)
|
can.run(msg._event, req.detail||[], cb)
|
||||||
return true
|
return true
|
||||||
|
@ -5,33 +5,35 @@ Volcanos("chrome", {
|
|||||||
console.log(arg)
|
console.log(arg)
|
||||||
cb()
|
cb()
|
||||||
},
|
},
|
||||||
spide: function(can, msg) {
|
spide: function(can, msg) { var has = {}
|
||||||
can.page.Select(can, document.body, "video", function(item) {
|
can.page.Select(can, document.body, "video", function(item) {
|
||||||
|
if (!item.src || has[item.src]) { return } has[item.src] = true
|
||||||
var p = can.page.Select(can, document.body, "p.title")[0]
|
var p = can.page.Select(can, document.body, "p.title")[0]
|
||||||
|
|
||||||
var ls = item.src.split("?")
|
var ls = item.src.split("?")
|
||||||
var ls = ls[0].split(".")
|
var ls = ls[0].split(".")
|
||||||
msg.Push("time", can.base.Time())
|
msg.Push(kit.MDB_TIME, can.base.Time())
|
||||||
msg.Push("type", "video")
|
msg.Push(kit.MDB_TYPE, "video")
|
||||||
msg.Push("name", (p && p.innerText || "video")+"."+ls[ls.length-1])
|
msg.Push(kit.MDB_NAME, (p && p.innerText || "video")+"."+ls[ls.length-1])
|
||||||
msg.Push("text", item.src)
|
msg.Push(kit.MDB_TEXT, item.src)
|
||||||
msg.Push("link", item.src)
|
msg.Push(kit.MDB_LINK, item.src)
|
||||||
})
|
})
|
||||||
|
|
||||||
can.page.Select(can, document.body, "img", function(item) {
|
can.page.Select(can, document.body, "img", function(item) {
|
||||||
|
if (!item.src || has[item.src]) { return } has[item.src] = true
|
||||||
var ls = item.src.split("?")
|
var ls = item.src.split("?")
|
||||||
var ls = ls[0].split("/")
|
var ls = ls[0].split("/")
|
||||||
|
|
||||||
msg.Push("time", can.base.Time())
|
msg.Push(kit.MDB_TIME, can.base.Time())
|
||||||
msg.Push("type", "img")
|
msg.Push(kit.MDB_TYPE, "img")
|
||||||
|
|
||||||
if (item.src.indexOf("data:image") == 0) {
|
if (item.src.indexOf("data:image") == 0) {
|
||||||
msg.Push("name", item.src.slice(item.src.length-20))
|
msg.Push(kit.MDB_NAME, item.src.slice(item.src.length-20))
|
||||||
} else {
|
} else {
|
||||||
msg.Push("name", ls[ls.length-1]||"image.jpg")
|
msg.Push(kit.MDB_NAME, ls[ls.length-1]||"image.jpg")
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.Push("text", item.src)
|
msg.Push(kit.MDB_TEXT, item.src)
|
||||||
msg.Push("link", item.src)
|
msg.Push(kit.MDB_LINK, item.src)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
field: function(can, msg, arg) { can.require(["https://shylinux.com/page/index.css"])
|
field: function(can, msg, arg) { can.require(["https://shylinux.com/page/index.css"])
|
||||||
@ -56,7 +58,7 @@ Volcanos("chrome", {
|
|||||||
}, sub._legend.onclick()
|
}, sub._legend.onclick()
|
||||||
|
|
||||||
sub.run = function(event, cmds, cb) {
|
sub.run = function(event, cmds, cb) {
|
||||||
can.run(event, ["action", "command", "run", meta.index].concat(cmds), cb)
|
can.run(event, [ctx.ACTION, ctx.COMMAND, cli.RUN, meta.index].concat(cmds), cb)
|
||||||
}
|
}
|
||||||
}, document.body)
|
}, document.body)
|
||||||
},
|
},
|
||||||
@ -68,10 +70,10 @@ Volcanos("chrome", {
|
|||||||
}})
|
}})
|
||||||
})
|
})
|
||||||
|
|
||||||
can.run = function(event, cmds, cb) { var msg = can.request(event); msg.detail = ["page"].concat(cmds)
|
can.run = function(event, cmds, cb) { var msg = can.request(event, {hostname: location.hostname}); msg.detail = ["page"].concat(cmds)
|
||||||
chrome.runtime.sendMessage(msg, function(res) { can.base.isFunc(cb) && cb(msg.Copy(res)) })
|
chrome.runtime.sendMessage(msg, function(res) { can.base.isFunc(cb) && cb(msg.Copy(res)) })
|
||||||
}
|
}
|
||||||
can.run({}, ["action", "command", "get"], function(msg) {
|
can.run({}, [ctx.ACTION, ctx.COMMAND, "get"], function(msg) {
|
||||||
msg.result && msg.result[0] && can.field(can, msg, msg.result)
|
msg.result && msg.result[0] && can.field(can, msg, msg.result)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user