-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkufar.js
51 lines (42 loc) · 1.18 KB
/
kufar.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
const selectors = [
"[class*=styles_price--main__]",
"[class*=styles_price__]",
"[class*=styles_main]",
"[class*=styles_discountPrice]",
".account_ads__price",
].join(",");
let rate;
(async () => {
const response = await fetch("https://api.nbrb.by/exrates/rates/431");
const data = await response.json();
rate = data["Cur_OfficialRate"];
})();
function addConversion() {
let elements = document.querySelectorAll(selectors);
if (elements) {
for (let element of elements) {
let price = convertToDollars(element);
if (!isNaN(price)) {
element.innerHTML += "<span> " + price.toFixed(2) + " $" + "</span>";
}
}
}
}
function convertToDollars(element) {
let text = element.textContent;
if (!text.includes("%") && !text.includes("$") && text.includes("р.")) {
let price = parseFloat(text.replace(/[^0-9.]/g, ""));
let conversion = price / rate;
return conversion;
}
return NaN;
}
const observer = new window.MutationObserver(() => {
if (rate) {
addConversion();
}
});
observer.observe(document, {
subtree: true,
attributes: true,
});