-
Notifications
You must be signed in to change notification settings - Fork 0
/
background.js
105 lines (88 loc) · 2.93 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
102
103
104
105
if(localStorage.getItem("email") == null ||
localStorage.getItem("email") == ""){
var newEmail;
var emailGood = false;
newEmail = prompt("Please enter your email:", "");
while(newEmail == null || newEmail == "" || emailGood != true) {
if(validateEmail(newEmail)){
localStorage.setItem("email", newEmail);
emailGood = true;
} else {
newEmail = prompt("Please try again:", "");
}
}
}
if(localStorage.getItem("currentTime") == null ||
localStorage.getItem("currentTime") == ""){
localStorage.setItem("currentTime", getDate())
}
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
if(localStorage.getItem("index") == null ||
localStorage.getItem("index") == ""){
localStorage.setItem("index", 0);
}
if(localStorage.getItem("lastSendDate") == null ||
localStorage.getItem("lastSendDate") == ""){
localStorage.setItem("lastSendDate", getDate());
}
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if(changeInfo.status == "complete"){
// Add new URL to the list
localStorage.setItem(localStorage.getItem("index"), tab.url + "," + getDate());
// Update the index
localStorage.setItem("index", parseInt(localStorage.getItem("index")) + 1);
}
if((getDate() - localStorage.getItem("lastSendDate")) > 86400000){
sendData();
}
})
// Get the time
function getDate(){
var timeMilliseconds = new Date();
return(timeMilliseconds.getTime());
}
// Get history report
function getReport(){
var array = [];
var item = {};
for(i = 0; i < parseInt(localStorage.getItem("index")); i++){
item = {};
currURL = localStorage.getItem(i);
currURL = currURL.split(",");
item["url"] = currURL[0];
item["time"] = currURL[1];
array.push(item);
}
var a = JSON.stringify(array)
var array = JSON.parse(a)
return(array);
}
//send the data to the server
function sendData(){
var http = new XMLHttpRequest();
var url = "https://gahn.herokuapp.com/"
var params = getReport();
http.open("POST", url);
http.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
http.onreadystatechange = function(){
if(http.readyState == 4 && http.status == 200){
console.log(http.responseText);
}
}
var data = JSON.stringify({'data': JSON.stringify(getReport()), 'email': localStorage.getItem("email")});
http.send(data);
restoreDetails();
localStorage.setItem("lastSendDate", getDate());
}
// Clear localStorage and index and
// set in to default
function restoreDetails(){
var email = localStorage.getItem("email")
localStorage.clear();
index = 0;
localStorage.setItem("index", index);
localStorage.setItem("email", email);
}