TODO: 重构inject.js 利用tabs.executeScript 回调通信. 实现对内容的判断与获取.
This commit is contained in:
parent
5c6dc47d47
commit
0ea415ae78
|
@ -8,11 +8,15 @@ function GetTask(sender) {
|
|||
response.json().then(function (task) {
|
||||
if(task.code == 200) {
|
||||
task_manager[sender.tab.id] = task;
|
||||
var execCode = `window.location.href = "${task.data.url}";`
|
||||
if(task.data.content_condition) {
|
||||
execCode += `PassContentCondition = ${task.data.content_condition};`
|
||||
execCode = `PassContentCondition = ${task.data.content_condition};`
|
||||
}
|
||||
chrome.tabs.executeScript(sender.tab.id, {runAt: "document_end", code: execCode})
|
||||
chrome.tabs.executeScript(sender.tab.id, {runAt: "document_end", code: `window.location.href = "${task.data.url}";`}, function (result) {
|
||||
if(execCode) {
|
||||
console.log(execCode);
|
||||
chrome.tabs.executeScript(sender.tab.id, {code: execCode});
|
||||
}
|
||||
})
|
||||
Tell(sender, InjectMsgType.FETCH);
|
||||
} else {
|
||||
Tell(sender, InjectMsgType.NOTASK);
|
||||
|
|
|
@ -8,7 +8,6 @@ var ErrorTaskUrl = `${Host}/task/error`;
|
|||
var WorkerNumber = 10;
|
||||
|
||||
var PassContentCondition = undefined;
|
||||
|
||||
// 默认条件所有内容都获取
|
||||
var DefaultContentCondition = function () {
|
||||
return true;
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
|
||||
|
||||
|
||||
chrome.runtime.onMessage.addListener(function (request) {
|
||||
switch(request.type) {
|
||||
switch (request.type) {
|
||||
case InjectMsgType.WAIT:
|
||||
setTimeout(function(){
|
||||
setTimeout(function () {
|
||||
GetTask();
|
||||
}, 6000);
|
||||
break;
|
||||
case InjectMsgType.NOTASK:
|
||||
setTimeout(function(){
|
||||
setTimeout(function () {
|
||||
GetTask();
|
||||
}, 4000);
|
||||
break;
|
||||
case InjectMsgType.FETCH:
|
||||
setTimeout(function(){
|
||||
setTimeout(function () {
|
||||
GetTask();
|
||||
}, 6000)
|
||||
break;
|
||||
|
@ -22,23 +22,30 @@ chrome.runtime.onMessage.addListener(function (request) {
|
|||
};
|
||||
});
|
||||
|
||||
|
||||
// var href = window.location.href;
|
||||
// var content = document.documentElement.innerHTML;
|
||||
|
||||
var condition = PassContentCondition != undefined ? PassContentCondition : DefaultContentCondition;
|
||||
if (condition()) {
|
||||
Tell(BackgroundMsgType.CONTENT, content);
|
||||
var href = window.location.href;
|
||||
var content = document.documentElement.innerHTML;
|
||||
if (href.startsWith(Host)) {
|
||||
GetTask();
|
||||
} else {
|
||||
Tell(BackgroundMsgType.NOTWANT, content);
|
||||
var condition = PassContentCondition != undefined ? PassContentCondition : DefaultContentCondition;
|
||||
if (condition()) {
|
||||
console.log(condition, PassContentCondition);
|
||||
Tell(BackgroundMsgType.CONTENT, content);
|
||||
} else {
|
||||
console.log(condition, PassContentCondition);
|
||||
Tell(BackgroundMsgType.NOTWANT, content);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function Tell(backgroundType, content) {
|
||||
try {
|
||||
if(content == undefined) {
|
||||
chrome.runtime.sendMessage({type: backgroundType});
|
||||
if (content == undefined) {
|
||||
chrome.runtime.sendMessage({ type: backgroundType });
|
||||
} else {
|
||||
chrome.runtime.sendMessage({type: backgroundType, content: content});
|
||||
chrome.runtime.sendMessage({ type: backgroundType, content: content });
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
|
|
|
@ -74,6 +74,7 @@ func PutTask(c *gin.Context) {
|
|||
data.Store("url", u)
|
||||
data.Store("ts", now.UnixNano())
|
||||
data.Store("label", label)
|
||||
data.Store("content_condition", c.PostForm("content_condition"))
|
||||
|
||||
if callback := c.PostForm("callback"); callback != "" {
|
||||
data.Store("callback", callback)
|
||||
|
|
Loading…
Reference in New Issue
Block a user