-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathping.js
70 lines (62 loc) · 2.8 KB
/
ping.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
var PingDate = "PingDate";
var ExtnVer = "ExtnVersion";
var MI = "MachineID";
var startIndex = navigator.userAgent.indexOf("(");
var endIndex = navigator.userAgent.indexOf(")");
var OS = navigator.userAgent.substring(startIndex + 1, endIndex).replace(/\s/g, '');
var MachineID = localStorage.MachineID == undefined || localStorage.MachineID == "" || localStorage.MachineID == null ? guid() : localStorage.MachineID;
var browserLanguage = navigator.language;
var manifestData = chrome.runtime.getManifest();
var ExtensionName = manifestData.name.replace(/ /g, "").replace('&', 'and');
var ExtensionVersion = manifestData.version;
var ExtensionId = chrome.runtime.id;
var BrowserVersion = navigator.userAgent.split(" ");
var BrowserVersion = BrowserVersion[BrowserVersion.length - 2].replace("/", "");
chrome.runtime.onInstalled.addListener(function (details) {
if (details.reason == 'install') {
SendPingDetails("1");
localStorage[ExtnVer] = ExtensionVersion;
} else if (details.reason == 'update' && localStorage.ExtnVersion != chrome.runtime.getManifest().version) {
SendPingDetails("3");
localStorage[ExtnVer] = ExtensionVersion;
}
});
chrome.tabs.onActivated.addListener(function () {
if (localStorage.PingDate == "" || localStorage.PingDate != new Date().toDateString()) {
SendPingDetails("2");
localStorage[PingDate] = new Date().toDateString()
}
});
function guid() {
/** Function to create an unique machine id */
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
var MachineGUID = s4() + s4() + s4() + s4() + s4() + s4() + s4() + s4();
MachineGUID = MachineGUID.toLocaleUpperCase();
localStorage[MI] = MachineGUID;
return MachineGUID;
}
function SendPingDetails(status) {
/**
* Function create and send a ping cosmos
* @param {any} status
*/
setTimeout(function () {
var pc = localStorage.pc == undefined || localStorage.pc == "" || localStorage.pc == null ? "UWDF" : localStorage.pc;
var pingURL = 'http://g.ceipmsn.com/8SE/44?';
var tVData = 'TV=is' + pc + '|pk' + ExtensionName + '|tm' + browserLanguage + '|bv' + BrowserVersion + '|ex' + ExtensionId + '|es' + status;
if (localStorage["channel"])
tVData = tVData + "|ch" + localStorage["channel"];
if (localStorage["muid"])
tVData = tVData + "|mu" + localStorage["muid"];
pingURL = pingURL + 'MI=' + MachineID + '&LV=' + ExtensionVersion + '&OS=' + OS + '&TE=37&' + tVData;
pingURL = pingURL.replace(/\|/g, "%7c"); // For HTML Encoding
pingURL = pingURL.replace(/\,/g, "%2c"); // For HTML Encoding
var xhr = new XMLHttpRequest();
xhr.open("GET", pingURL, true);
xhr.send();
}, 500);
};