Skip to content

Instantly share code, notes, and snippets.

@rfxDarth
Last active May 8, 2020 21:48
Show Gist options
  • Save rfxDarth/2351502f3dc0a203a677e4b0bde2f038 to your computer and use it in GitHub Desktop.
Save rfxDarth/2351502f3dc0a203a677e4b0bde2f038 to your computer and use it in GitHub Desktop.
begone_thot.js
function get_photos_count(card){
let scroller=card.querySelector(`.Expand>.CenterAlign.Fld\\(r\\)`);
if(!scroller)
return 1
else
return scroller.childNodes.length
}
function get_name(card){
return card.querySelector(".Flw\\(w\\)").innerHTML.trim();
}
function human_name(name){
let banned_names=["CoCo","Monika","Emma","Krista","Margaret","Helga","Jenny","Avery","Ella","Ann","Mila","Miya"]
return banned_names.indexOf(name)===-1;
}
function get_distance(card){
let container=card.querySelector(`.Us\\(t\\)`);
if(!container)
return 0
let text=container.innerHTML;
return +text.substr(0,text.indexOf(" "))
}
function get_description(card){
let descr=Array.from(card.querySelectorAll(".BreakWord span"));
return descr&&descr.map(span=>span.innerHTML.trim().toLowerCase()).join("\n");
}
function has_instagram(descr){
let banned_words=["inst","инста","инст:"];
return banned_words.find(word=>descr.indexOf(word)!==-1)
}
function has_snap(descr){
let banned_words=["snap"];
return banned_words.find(word=>descr.indexOf(word)!==-1)
}
function looking_for_sponsor(descr){
let banned_words=["спонсор","папик"];
return banned_words.find(word=>descr.indexOf(word)!==-1)
}
function has_kids(descr){
let banned_words=["ребенок","ребенка","есть дети","есть сын","есть дочь","есть дочка"];
return banned_words.find(word=>descr.indexOf(word)!==-1)
}
function just_checking(descr){
let banned_words=["просто смотрю","просто посмотреть","ради прикола","по приколу","никого не ищу","не ищу отношений"];
return banned_words.find(word=>descr.indexOf(word)!==-1)
}
function find_socionics(descr){
let sociotypes={
INFP:"Есенин",
ISFP:"Дюма",
INTP:"Бальзак",
ISTP:"Габен",
INFJ:"Достоевский",
ISFJ:"Драйзер",
INTJ:"Робесьер",
ISTJ:"Максим",
ENFP:"Гекели",
ESFP:"Наполеон",
ENTP:"Дон Кихот",
ESTP:"Жуков",
ENFJ:"Гамлет",
ESFJ:"Гюго",
ENTJ:"Джек",
ESTJ:"Штирлиц",
"Меланхолик":"Меланхолик",
"Холерик":"Меланхолик",
"Флегматик":"Флегматик",
"Сангвиник":"Сангвиник",
}
let find=Object.keys(sociotypes).find(word=>descr.indexOf(word)!==-1);
return sociotypes[find];
}
function find_emojis(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 find_horoscrope(descr){
let banned_words=["Овен","Телец","Близнецы",
/*"Рак","Лев","Дева","Весы",*/
"Скорпион","Стрелец","Козерог","Водолей","Рыбы"];
return banned_words.find(word=>descr.indexOf(word)!==-1)
}
function check_girl(){
let descr;
let card=document.querySelector(`.recCard.active`);
if(!card)
card=document.querySelector(`.profileCard`);
let name=get_name(card);
function swipe_left(reason){
console.log(name,reason);
document.querySelector(`.button[aria-label="Nope"]`).click()
}
if(!human_name(name)) return swipe_left("робот");
if(get_photos_count(card)<2) return swipe_left("Скромняжка");
//if(get_distance(card)>20) return swipe_left("Засланный казачок");
if(card.querySelectorAll(".react-swipeable-view-container>div")[0].getAttribute("aria-hidden")!=="false")
return false;
descr=get_description(card)
if(!descr) return swipe_left("Ленивая жопа")
if(find_emojis(descr).length>3) return swipe_left("💩");
if(has_instagram(descr)) return swipe_left("инстаграм-модель")
if(has_snap(descr)) return swipe_left("е-шлюха")
if(looking_for_sponsor(descr)) return swipe_left("ищет папика себе")
if(has_kids(descr)) return swipe_left("ищет папика своим детям")
if(just_checking(descr)) return swipe_left("тешит самолюбие");
if(sociotype=find_socionics(descr)) return swipe_left("дохуя "+sociotype.toUpperCase());
}
var intrvl;
clearInterval(intrvl);
intrvl=setInterval(check_girl, 300); //TODO: make a button or smth
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment