Skip to content

Instantly share code, notes, and snippets.

@r0mdau
Last active August 3, 2018 12:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save r0mdau/8abdb3bda9db87d920f52226ed5eb9ee to your computer and use it in GitHub Desktop.
Save r0mdau/8abdb3bda9db87d920f52226ed5eb9ee to your computer and use it in GitHub Desktop.
Instagram bot
// ==UserScript==
// @name Insta bot like
// @namespace https://instagram.com
// @include https://www.instagram.com/*
// @author r0mdau
// @version 1
// ==/UserScript==
(function () {
var page = "";
var likeCount = 0;
setCookie("__problemeLikeElement", "0");
setCookie("__problemeNextElement", "0");
setCookie("__breaks", "0");
setCookie("__likes", "0");
setCookie("__errors", "");
setCookie("__damnIt", "");
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function incrementCookie(name) {
setCookie(name, (parseInt(getCookie(name)) + 1));
}
function generateTagUrl(tag) {
return "https://www.instagram.com/explore/tags/" + tag + "/";
}
function getRandomNumberBetween(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function waitingTimeBeforeLike() {
return getRandomNumberBetween(1, 4) * 1000 + getRandomNumberBetween(1, 3) * 2000;
}
function waitingTimeBeforeNextElement() {
return 1000 + getRandomNumberBetween(1, 8) * 100;
}
function waitingTimeBeforeNextSalve() {
// ~ 1h minimum
return (2800000 + getRandomNumberBetween(1, 6) * 100000) + getRandomNumberBetween(1, 3) * 600000;
}
function breakBeforeNextSalve() {
console.log("[break]");
incrementCookie("__breaks");
setTimeout(function () {
window.location.href = page;
}, waitingTimeBeforeNextSalve());
}
function doLike() {
var likeElement = document.querySelector('.coreSpriteHeartOpen');
var nextElement = document.querySelector('.coreSpriteRightPaginationArrow');
if (likeElement === null) {
incrementCookie("__problemeLikeElement");
setTimeout(function () {
nextElement.click();
setTimeout(doLike, waitingTimeBeforeLike());
}, waitingTimeBeforeNextElement());
return;
}
if (nextElement === null) {
incrementCookie("__problemeNextElement");
breakBeforeNextSalve();
return;
}
try {
likeElement.click();
likeCount++;
console.log("[like] +" + likeCount);
incrementCookie("__likes");
var maxLikeCount = 45 + getRandomNumberBetween(1, 25) + getRandomNumberBetween(1, 25);
if (likeCount <= maxLikeCount) {
setTimeout(function () {
nextElement.click();
setTimeout(doLike, waitingTimeBeforeLike());
}, waitingTimeBeforeNextElement());
} else {
breakBeforeNextSalve();
}
} catch (e) {
setCookie("__errors", getCookie("__errors") + "clickHeart ");
console.log(e);
breakBeforeNextSalve();
}
}
function openRecentPicture() {
var pictures = document.querySelectorAll('._bz0w') || document.querySelectorAll('.kIKUG');
try {
pictures[9].childNodes[0].click();
likeCount = 0;
setTimeout(doLike, 4000);
} catch (e) {
setCookie("__errors", getCookie("__errors") + "openPic ");
console.log(e);
breakBeforeNextSalve();
}
}
var keyCodeTagMap = {
66: {name: "bordeaux"},
74: {name: "bicycle"},
75: {name: "cycling"},
76: {name: "fixedgear"},
77: {name: "cyclist"}
};
window.onload = function () {
var found = false;
for (var code in keyCodeTagMap) {
if (keyCodeTagMap.hasOwnProperty(code)) {
if (window.location.href == generateTagUrl(keyCodeTagMap[code].name)) {
found = true;
page = generateTagUrl(keyCodeTagMap[code].name);
openRecentPicture();
}
}
}
if (
!found
&& (
/.+tagged.+/i.test(window.location.href)
|| /.+tags.+/i.test(window.location.href)
)
) {
setCookie("__errors", getCookie("__errors") + "notFound ");
console.log("Not found...");
try {
page = generateTagUrl(keyCodeTagMap[getRandomNumberBetween(74, 77)].name);
console.log(page);
breakBeforeNextSalve();
} catch (e) {
setCookie("___merrors", "shit hapened");
console.log(e);
}
}
setCookie("__damnIt", "motherfucked not usable");
};
document.addEventListener("keydown", function (e) {
if (keyCodeTagMap.hasOwnProperty(e.keyCode)) {
window.location.href = generateTagUrl(keyCodeTagMap[e.keyCode].name);
}
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment