-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathapp.js
104 lines (92 loc) · 2.68 KB
/
app.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
var interval = null,
qtd = 0,
sKEYWORDS,
sTIME;
function run(time = 500, KEYWORDS = false){
if(time < 500){
throw new Error("You shuldn't use time minor that 300.")
}
if(typeof interval !== null){
clearInterval(interval);
}
sTIME = time
sKEYWORDS = KEYWORDS
interval = setInterval(() => action(sKEYWORDS), time);
}
function action(KEYWORDS = false){
let isDislike = false,
selectorBtn,
btn,
cardActived,
filtered = false,
msg = "["+ qtd + "] ",
cardNameAgeSelector;
try {
if (document.querySelector(".itsAMatch.CenterAlign.Expand")) {
document.querySelector("button.button.button--close").click()
}
cardActived = document.querySelector("div.recCard.StretchedBox.active")
filtered = KEYWORDS ? filter(cardActived, KEYWORDS) : false
isDislike = (filtered && filtered.qtd > 0)
selectorBtn = isDislike ? 'button.recsGamepad__button--dislike' : 'button.recsGamepad__button--like'
btn = document.querySelector(selectorBtn)
cardNameAgeSelector = cardActived.querySelector("div.recCard__info > div")
cardNameAge = cardNameAgeSelector.textContent.split(', ');
cardNameAge = {
"name": cardNameAge[0],
"age": cardNameAge[1]
}
msg += (isDislike? 'Dislike' : 'Like') + ' at ' + cardNameAge.name + " ("+ cardNameAge.age +"y).";
if(isDislike){
if(filtered.details){
msg += "\n\t- "+filtered.details.join(' - ');
}
if(filtered.qtd > 0){
msg += "\n\t- "+filtered.qtd + " filtered words: " +"\n\t"+ filtered.words.join(', ');
}
}
qtd++
btn.click()
} catch (error) {
msg += "No cards"
// msg += "\n" + error
stop(true)
} finally {
console.log(msg);
}
}
function filter(cardActived, KEYWORDS){
try {
const click = cardActived.querySelector('div.recCard__openProfile').click();
const profileDescription = document.querySelector("div.profileCard__textContent");
const words = KEYWORDS.filter(word => {
return profileDescription.textContent.toUpperCase().includes(word.toUpperCase());
})
let profileDetails = []
document.querySelectorAll('.profileCard__info').forEach(function(e) {
profileDetails.push(e.textContent)
}, this);
profileDetails[profileDetails.length - 1] = profileDetails[profileDetails.length - 1].split(" ")[0] + "km"
const close = document.querySelector('a.profileCard__backArrow').click()
return {
"qtd": words.length,
"words": words,
"details": profileDetails
}
} catch (e) {
//console.log(e);
return false;
}
}
function stop(restart = false){
console.log('Stopped!')
clearInterval(interval);
if (restart) {
console.log('Restarting...')
setTimeout(() => {
interval = setInterval(() => action(sKEYWORDS), sTIME);
}, sTIME+qtd)
}
}
//time in milliseconds
run(500, [ 'acompanhante', 'casado'])