Skip to content

Instantly share code, notes, and snippets.

@surtic86
Forked from rfxDarth/begone_thot.js
Last active April 27, 2020 12:03
Show Gist options
  • Save surtic86/295bb54a2f4e01e705e7626764e07eeb to your computer and use it in GitHub Desktop.
Save surtic86/295bb54a2f4e01e705e7626764e07eeb to your computer and use it in GitHub Desktop.
begone_thot.js
var swipes = 10; // how many swipes should the scrip execute
var max_distance = 200;
var min_pictures = 1;
var banned_words = [
"inst",
"instagram",
"ig",
"snap",
"sc",
"daddy",
"sponsor",
"vegan",
];
function getRandom(min, max) {
return Math.random() * (max - min) + min;
}
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
function getPhotosCount(card) {
let scroller = card.querySelector(`.Expand>.CenterAlign.Fld\\(r\\)`);
if (!scroller) return 1;
else return scroller.childNodes.length;
}
function getName(card) {
return card.querySelector(".Fz\\(\\$xl\\)").innerHTML.trim();
}
function getDistance(card) {
let distance = 500000;
let containers = card.querySelectorAll(`.Us\\(t\\)`);
containers.forEach((container) => {
let text = container.innerHTML;
let dist = parseInt(text.substr(0, text.indexOf(" ")));
if (Number.isInteger(dist)) {
distance = dist;
}
});
return distance;
}
function getDescription(card) {
let descr = Array.from(card.querySelectorAll(".BreakWord span"));
return (
descr &&
descr.map((span) => span.innerHTML.trim().toLowerCase()).join("\n")
);
}
function hasBannadWord(descr) {
return banned_words.find(
(word) => descr.indexOf(word.toLowerCase()) !== -1
);
}
function findEmojis(descr) {
let regex = RegExp(
`(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32-\ude3a]|[\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])`,
"g"
);
let found_emojis = [];
while ((match = regex.exec(descr)) !== null) {
found_emojis.push(match[0]);
}
return found_emojis;
}
function check() {
let descr;
let card = document.querySelector(`.recCard.active`);
if (card) {
card.querySelector(`.focus-button-style`).click();
card = document.querySelector(`.profileCard`);
} else {
console.log("cant open card");
}
let name = getName(card);
function swipeLeft(reason) {
console.log(name, ":", reason);
document.querySelector(`.button[aria-label="Nein"]`).click();
}
if (getPhotosCount(card) < min_pictures) {
return swipeLeft("to less pictures");
}
if (getDistance(card) > max_distance) {
return swipeLeft("to far away");
}
descr = getDescription(card);
banned_word = hasBannadWord(descr);
if (banned_word) {
return swipeLeft("banned Word = " + banned_word);
}
//if(findEmojis(descr).length>3) return swipe_left("💩");
console.log(name, ":", "->");
document.querySelector(`.button[aria-label="Gefällt mir"]`).click();
}
var i = 0;
function checkLoop() {
setTimeout(function () {
check();
i++;
if (i < swipes) {
checkLoop();
}
}, getRandom(2000, 6000));
}
checkLoop();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment