-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathfunCrawler.js
More file actions
82 lines (72 loc) · 2.03 KB
/
funCrawler.js
File metadata and controls
82 lines (72 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
function FunCrawler() {
this.startingUrl = null;
this.tabId = null;
this.active = true;
this.timeWaited = 0;
}
FunCrawler.prototype.start = function() {
instance = this;
chrome.tabs.query({active: true}, function(tab){
instance.startingUrl = tab[0].url;
instance.tabId = tab[0].id;
instance.clickLink();
});
}
FunCrawler.prototype.stop = function() {
this.active = false;
}
FunCrawler.prototype.clickLink = function() {
chrome.extension.getBackgroundPage().console.log('clickLink: ');
instance = this;
chrome.tabs.get(instance.tabId, function(tab){
if((JSON.parse(window.localStorage["funCrawlerSettings"]).waitForPageLoad == "checked") && (tab.status != 'complete')) {
instance.waitForPageLoad();
}
else {
if(instance.active == true) {
chrome.tabs.sendMessage(tab.id, {type: "click-link"}, function(response){
try {
instance.timeWaited = 0;
if((JSON.parse(window.localStorage["funCrawlerSettings"]).waitForPageLoad != "checked")) {
setTimeout(function() { instance.clickLink() }, 1000);
}
else
{
instance.clickLink();
}
}
catch(err) {
chrome.tabs.sendMessage(tab.id, {type: "go-home"});
funCrawler.timeWaited = 0;
setTimeout(function() { instance.clickLink() }, 5000);
}
});
}
}
});
}
FunCrawler.prototype.waitForPageLoad = function() {
chrome.extension.getBackgroundPage().console.log('waitForPageLoad: ' + instance.timeWaited);
instance = this;
instance.timeWaited += 1;
if(instance.timeWaited >= 10 && instance.active == true) {
chrome.tabs.get(instance.tabId, function(tab){
chrome.tabs.sendMessage(tab.id, {type: "click-link"}, function(response){
try {
instance.timeWaited = 0;
setTimeout(function() { instance.clickLink() }, 2000);
}
catch(err) {
chrome.tabs.sendMessage(tab.id, {type: "go-home"});
funCrawler.timeWaited = 0;
setTimeout(function() { instance.clickLink() }, 5000);
}
});
});
}
else {
setTimeout(function(){
instance.clickLink();
}, 1000);
}
}