-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
background.js
101 lines (89 loc) · 3.21 KB
/
background.js
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// changes made(global variable for sites)
const MAXSITES = 12;
chrome.runtime.onInstalled.addListener(details => {
chrome.storage.session.clear();
});
chrome.tabs.onUpdated.addListener((tabId, tab)=> {
if (tab.status == "complete") {
chrome.tabs.sendMessage(tabId, {start: true});
}
});
//////////////////////
async function postData(url = '', data , contentType){
if(contentType == 'json'){
var datastringfy = JSON.stringify(data);
data = datastringfy.replace( /[\r\n]+/gm, "" );
cType = 'application/json'
}
else{
cType = 'application/x-www-form-urlencoded'
}
// Default options are marked with *
const response = await fetch(url, {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
credentials: 'include',
mode: 'cors',
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
headers: {
'Content-Type': cType,
'Access-Control-Allow-Origin':'*'
},
referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
body: data // body data type must match "Content-Type" header
});
return response.json(); // parses JSON response into native JavaScript objects
}
////////////////////////
chrome.runtime.onMessage.addListener(async (request, sender) => {
// changes made(only store 10 sites data) -harshit
let data = await chrome.storage.session.get(null), storedAt = 99999999999999999999999, toRemove = null;
if (Object.keys(data).length >= MAXSITES) {
for (z in data) {
if (data[z].storedAt < storedAt) {
storedAt = data[z].storedAt;
toRemove = z;
}
}
chrome.storage.session.remove(toRemove);
}
chrome.storage.session.set({["tab"+sender.tab.id]:request});
chrome.storage.session.get("tab"+sender.tab.id).then(dat => {
if (request.finalScore >= 92){
var colorString = "#32a852";
}
else if (request.finalScore >= 78){
var colorString = "#8ECA2E";
}
else if (request.finalScore >= 67){
var colorString = "#f4e03a";
}
else if (request.finalScore >= 55){
var colorString = "#F77616";
}
else {
var colorString = "#ff0d21";
}
chrome.action.setBadgeBackgroundColor({
color: colorString,
tabId: sender.tab.id
});
chrome.action.setBadgeText({
text: request.finalGrade,
tabId: sender.tab.id
});
});
});
// Clear Cache
chrome.tabs.onRemoved.addListener(tabId => {
chrome.storage.session.get('tab'+tabId).then(data => {
delete data['tab' + tabId];
});
});
chrome.runtime.onInstalled.addListener(function (object) {
let externalUrl = "https://ko-fi.com/globemallow#paypalModal";
if (object.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.tabs.create({ url: externalUrl }, function (tab) {
//console.log("New tab launched with http://yoursite.com/");
});
}
});