-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontent_script.js
More file actions
121 lines (80 loc) · 2.55 KB
/
Copy pathcontent_script.js
File metadata and controls
121 lines (80 loc) · 2.55 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
//content script
var clickedElement;
var parents = new Array();
var pureHtml;
document.addEventListener("mousedown", function(event){
clickedElement = event.target;
}, true);
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
debugger;
let clickEvent = new Event('click');
document.getElementsByClassName("encounters-action--like")[0].dispatchEvent(event);
// .click();
let selectedText = clickedElement.textContent;
let price = selectedText.split('').filter(f=>f ==='.' || f===',' || !isNaN(f));
console.log(clickedElement,price.join("").trim());
parents = new Array();
getParentClasses3(clickedElement);
let req = {
url:window.location.href,
jquerySelect:parents.reverse().join(","),
title:document.title
}
// var API_URL= "http://localhost:5002"
var API_URL= "https://kml-price-tracker.herokuapp.com";
// var API_URL="http://34.71.124.82:5002";
// fetch('http://localhost:5002/insert', {
fetch(API_URL+'/insert', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(req)
})
.then(response => { response.status === 200 ? alert("Added Successfully!") : alert("Price not detected! Please check again.")})
.catch(error => console.log('Error:', error));
}
);
function getParentClasses(element){
let tagName = element.tagName;
let className = element.className.trim().split(" ").filter(f=>f).join(".");
if(element.parentElement){
// parents.push(tagName+(className ? '.'+className : ''));
parents.push(tagName);
getParentClasses(element.parentElement);
}else{
// parents.push(tagName);
return;
}
}
function getParentClasses2(element){
let tagName = element.tagName;
if(tagName.toLowerCase() === 'body' ){
return;
}
if(element.parentElement){
let index=Array.prototype.indexOf.call(element.parentElement.children,element);
parents.push(index);
getParentClasses2(element.parentElement);
}else{
// parents.push(tagName);
return;
}
}
function getParentClasses3(element){
let tagName = element.tagName;
if(tagName.toLowerCase() === 'body' ){
return;
}
if(element.parentElement){
let arrays = [...element.parentElement.children];
let sameChilds = arrays.filter((f)=>f.tagName === element.tagName);
let index=Array.prototype.indexOf.call(sameChilds,element);
parents.push(index+"-"+element.tagName);
getParentClasses3(element.parentElement);
}else{
// parents.push(tagName);
return;
}
}