Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Components of Firefox */
- Components.utils.import("resource://gre/modules/Services.jsm");
- const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
- Components.utils.importGlobalProperties(["atob", "btoa"]);
- try {
- Components.utils.import('resource://gre/modules/devtools/Console.jsm');
- } catch (err) {
- Components.utils.import('resource://gre/modules/Console.jsm');
- }
- window = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator)
- .getMostRecentWindow("navigator:browser");
- if (typeof window === "undefined")
- var window;
- else
- var originalWindow = window;
- if (typeof document === "undefined")
- var document;
- else
- var originalDocument = document;
- /* Cookies service */
- var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService(Components.interfaces.nsICookieManager);
- var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService(Components.interfaces.nsICookieManager2);
- /*-----------------*/
- /* general */
- /*Imacros struct*/
- var execute = "CODE:SET !ERRORIGNORE YES\n" +
- "SET !TIMEOUT_PAGE 320\n" +
- "SET !TIMEOUT_TAG 0\n\n";
- var errorOne = "#EANF#";
- function FixPlay(file) {
- var ret = iimPlay(file);
- if (ret == -101)
- throw new Error("Script STOP!");
- return 0;
- }
- function search_site(content) {
- document = window.content.document;
- if (document.documentElement.innerHTML.search(content) == -1)
- return false;
- else
- return true;
- }
- var extractData = function(archive, line, col) {
- FixPlay(execute +
- "SET !DATASOURCE " + archive + "\n" +
- "SET !DATASOURCE_LINE " + line + "\n" +
- "SET !EXTRACT {{!COL" + col + "}}");
- return iimGetLastExtract().trim();
- }
- function random_num(min, max) {
- return Math.floor(Math.random() * (max - min + 1)) + min;
- }
- var SetUserAgent = function(agent) {
- Services.prefs.setCharPref("general.useragent.override", agent);
- return agent;
- }
- var SetProxy = function(proxy) {
- if (proxy == "0.0.0.0:0")
- Services.prefs.setIntPref("network.proxy.type", 0);
- else {
- var array;
- var array = proxy.split(":");
- var ip = array[0],
- port = array[1];
- Services.prefs.setIntPref("network.proxy.type", 1);
- Services.prefs.setBoolPref("network.proxy.share_proxy_settings", true);
- Services.prefs.setIntPref("network.proxy.backup.ftp_port", port);
- Services.prefs.setIntPref("network.proxy.backup.socks_port", port);
- Services.prefs.setIntPref("network.proxy.backup.ssl_port", port);
- Services.prefs.setIntPref("network.proxy.ssl_port", port);
- Services.prefs.setIntPref("network.proxy.ftp_port", port);
- Services.prefs.setIntPref("network.proxy.http_port", port);
- Services.prefs.setIntPref("network.proxy.socks_port", port);
- Services.prefs.setCharPref("network.proxy.socks", ip);
- Services.prefs.setCharPref("network.proxy.ssl", ip);
- Services.prefs.setCharPref("network.proxy.http", ip);
- Services.prefs.setCharPref("network.proxy.ftp", ip);
- Services.prefs.setCharPref("network.proxy.backup.ssl", ip);
- Services.prefs.setCharPref("network.proxy.backup.socks", ip);
- Services.prefs.setCharPref("network.proxy.backup.ftp", ip);
- }
- return proxy;
- }
- var ClearFix = function() {
- FixPlay(execute + "TAB T=1\nTAB CLOSEALLOTHERS\nURL GOTO=about:newtab");
- //remove cookies
- var cmgr = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService();
- cmgr = cmgr.QueryInterface(Components.interfaces.nsICookieManager);
- cmgr.removeAll();
- // Clear SQL VACUUM
- try {
- var sql = Components.classes["@mozilla.org/browser/nav-history-service;1"].getService(Components.interfaces.nsPIPlacesDatabase);
- sql.DBConnection.executeSimpleSQL("VACUUM");
- } catch (err) {}
- }
- function requestf(url, postdata, async, method) {
- if (retry > 3) {
- retry = 0
- FixPlay(execute + "WAIT SECONDS = 15")
- }
- console.log("request \nURL:" + url + "\nPOST:" + postdata + "\n")
- loadScriptFromURL('https://code.jquery.com/jquery-3.3.1.min.js');
- jq = window.$,
- JQuery = window.JQuery;
- var resultr = jq.ajax({
- url: url,
- headers: {
- 'Content-Type': 'application/json'
- },
- type: method,
- async: async,
- data: postdata,
- success: function(data) {
- return data
- },
- error: function(XMLHttpRequest, textStatus, errorThrown) {
- retry++
- }
- });
- console.log("request \nURL:" + url + "\n STATUS:" + resultr['status'] + "\nPOST:" + postdata + "\nAnswer:" + resultr['responseText'] + "\n")
- return resultr['responseText'];
- }
- function request(url, postdata, async, method, token) {
- if (retry > 3) {
- retry = 0
- FixPlay(execute + "WAIT SECONDS = 15")
- }
- console.log("request \nURL:" + url + "\nPOST:" + postdata + "\n")
- loadScriptFromURL('https://code.jquery.com/jquery-3.3.1.min.js');
- jq = window.$,
- JQuery = window.JQuery;
- var resultr = jq.ajax({
- url: url,
- headers: {
- 'Authorization': 'Token ' + token,
- 'Content-Type': 'application/json'
- },
- type: method,
- async: async,
- data: postdata,
- success: function(data) {
- return data
- },
- error: function(XMLHttpRequest, textStatus, errorThrown) {
- retry++
- }
- });
- console.log("request \nURL:" + url + "\n STATUS:" + resultr['status'] + "\nPOST:" + postdata + "\nAnswer:" + resultr['responseText'] + "\n")
- return resultr['responseText'];
- }
- // Array Remove - By John Resig (MIT Licensed)
- Array.prototype.remove = function(from, to) {
- var rest = this.slice((to || from) + 1 || this.length);
- this.length = from < 0 ? this.length + from : from;
- return this.push.apply(this, rest);
- };
- function SetCookie(cookie) {
- cookie_request = atob(cookie);
- if (cookie_request.search("CookieT") != -1) { // Old versions
- var obj = JSON.parse(cookie_request)
- for (var i = 0; i < obj["CookieT"]; i++) {
- var host = obj["Cookie" + i + ""]["host"],
- path = obj["Cookie" + i + ""]["path"],
- name = obj["Cookie" + i + ""]["name"],
- value = obj["Cookie" + i + ""]["value"],
- expires = obj["Cookie" + i + ""]["expires"],
- isSecure = obj["Cookie" + i + ""]["isSecure"]
- if (obj["Cookie" + i + ""]["expires"] == "0") {
- var d = new Date();
- expires = ((d.getTime() - d.getMilliseconds()) / 1000) + 314496000;
- }
- if (name == "PREF")
- cookieManager.add(host, path, name, "f1=50000000&al=en&f6=c1008", isSecure, false, isSecure, expires);
- else
- cookieManager.add(host, path, name, value, isSecure, false, isSecure, expires);
- };
- } else if (cookie != '' && cookie != 'null') { // new versions
- var obj = JSON.parse(cookie_request)
- for (var i = 0; i < Object.keys(obj).length - 1; i++) {
- var host = obj[i]["host"],
- path = obj[i]["path"],
- name = obj[i]["name"],
- value = obj[i]["value"],
- expires = obj[i]["expires"],
- isSecure = obj[i]["isSecure"]
- if (obj[i]["expires"] == "0") {
- var d = new Date();
- expires = ((d.getTime() - d.getMilliseconds()) / 1000) + 314496000;
- }
- if (name == "PREF") {
- cookieManager.add(host, path, name, "f1=50000000&al=en&f6=c1008", isSecure, false, isSecure, expires);
- } else {
- cookieManager.add(host, path, name, value, isSecure, false, isSecure, expires);
- }
- };
- var d = new Date();
- expires = ((d.getTime() - d.getMilliseconds()) / 1000) + 314496000;
- cookieManager.add('.youtube.com', "/", "PREF", "f1=50000000&al=en&f6=c1008", false, false, false, expires);
- }
- }
- function SaveCookie() {
- var mc = 0;
- var cookieuri = {}
- for (var e = cookieMgr.enumerator; e.hasMoreElements();) {
- var cookie = e.getNext().QueryInterface(Components.interfaces.nsICookie);
- var valuec = cookie.value
- cookieuri[mc] = {
- 'host': cookie.host,
- 'path': cookie.path,
- 'name': cookie.name,
- 'value': valuec,
- 'isSecure': cookie.isSecure,
- 'expires': cookie.expires
- }
- mc++;
- }
- var obj = new Object();
- obj.cookie = btoa(JSON.stringify(cookieuri));
- var jsonString = JSON.stringify(obj);
- FixPlay(execute + "TAB T=1\nTAB CLOSEALLOTHERS\nURL GOTO=about:newtab");
- request(api + "/account/cookie/" + monitor, jsonString, false, "POST", token)
- }
- function youtube_parser(url) {
- var regExp = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/;
- var match = url.match(regExp);
- if (match && match[2].length == 11) {
- return match[2];
- }
- }
- /* end struct of iMacros*/
- var version = 1.0;
- var failed = 0;
- var complete = 0;
- var d = new Date();
- var expires = ((d.getTime() - d.getMilliseconds()) / 1000) + 314496000;
- var api = "https://socialstrendy.com/api";
- var token = null;
- var monitor = null;
- var retry = 0
- var limittask = 3
- var limit = 0
- var retry = 0
- /* model user */
- var idUser = null;
- var account = null;
- var password = null;
- var cookie = null;
- var email_recovery = null;
- var phone = null;
- var proxy = null;
- var useragent = null;
- var cookie = null;
- /* model site*/
- var balance = 0
- /* --------- */
- function main() {
- SetProxy("0.0.0.0:0");
- ClearFix();
- token = extractData("token.csv", 1, 1);
- if (token == '') {
- alert('We do not have data of your account, We are going to add the account of socialstrendy.com')
- var account = prompt("Please enter your username", "");
- var password = prompt("Please enter your password", "");
- var obj = new Object();
- obj.username = account;
- obj.password = password;
- var jsonString = JSON.stringify(obj);
- token = requestf(api + "/login", jsonString, false, 'POST', false);
- token = JSON.parse(token);
- FixPlay(execute + "SET !EXTRACT " + token['token'] + "\n" + "SAVEAS TYPE=EXTRACT FOLDER={{!FOLDER_DATASOURCE}} FILE=token.csv")
- token = extractData("token.csv", 1, 1);
- }
- return create_monitor()
- }
- function create_monitor() {
- monitor = extractData("monitor.csv", 1, 1);
- if (monitor == '') {
- var query = request(api + "/monitor", false, false, 'GET', token)
- query = JSON.parse(query);
- monitor = query['monitor_id']
- balance = query['balance']
- FixPlay(execute + "SET !EXTRACT " + monitor + "\n" + "SAVEAS TYPE=EXTRACT FOLDER={{!FOLDER_DATASOURCE}} FILE=monitor.csv")
- token = extractData("token.csv", 1, 1);
- }
- change_account()
- }
- function change_account() {
- SetProxy("0.0.0.0:0");
- quarter()
- ClearFix();
- cookieManager.add('.youtube.com', "/", "PREF", "f1=50000000&al=en&f6=c1008", false, false, false, expires);
- var query = request(api + "/account/get/" + monitor + "/0", false, false, "GET", token);
- query = JSON.parse(query);
- if (query == null) {
- FixPlay(execute + "WAIT SECONDS = 30")
- return change_account();
- }
- if (query['message'] == "No accounts available for now.") {
- FixPlay(execute + "WAIT SECONDS = 30")
- return change_account()
- }
- limit = 0
- idUser = query['id'];
- account = query['account'];
- password = query['password'];
- cookie = query['cookie'];
- email_recovery = query['email_recovery'];
- phone = query['phone'];
- proxy = SetProxy(query['proxy']);
- useragent = SetUserAgent(query['useragent']);
- cookie = SetCookie(query['cookie']);
- return checktask();
- }
- var checktask = function() {
- while (true) {
- if (limittask <= limit) {
- //SaveCookie();
- return change_account();
- }
- var query = request(api + "/order/" + monitor, false, false, "GET", token)
- if (typeof query === "undefined")
- return checktask();
- try {
- query = JSON.parse(query);
- } catch (err) {
- //SaveCookie();
- return change_account();
- }
- if (query['link'] == null) {
- limit++;
- return checktask();
- } else {
- action(query['cheating'], query['link'], query['id'])
- FixPlay(execute + 'WAIT SECONDS = 20')
- checkt(query['id'])
- }
- }
- }
- function action(type, link, id) {
- limit++;
- loadScriptFromURL('https://code.jquery.com/jquery-3.3.1.min.js');
- jq = window.$,
- JQuery = window.JQuery;
- setstatus("Make task");
- if (typeof youtube_parser(link) === "undefined")
- return checktask()
- var resultr = jq.ajax({
- url: 'https://www.youtube.com/watch?v=' + youtube_parser(link),
- type: 'GET',
- async: false,
- success: function(data) {
- return data
- },
- error: function(XMLHttpRequest, textStatus, errorThrown) {
- return change_account();
- }
- });
- if (typeof resultr['responseText'] === "undefined")
- return action(type, link, id)
- if (resultr['responseText'].search("accounts.google.com/ServiceLogin") != -1) {
- if (logingoogle(account, password, email_recovery) != 1) {
- request(api + "/account/update/" + monitor + "/1", false, false, "GET", token);
- //SaveCookie();
- return change_account()
- }
- SaveCookie();
- return action(type, link, id)
- }
- loadScriptFromURL('https://code.jquery.com/jquery-3.3.1.min.js');
- jq = window.$,
- JQuery = window.JQuery;
- document = window.content.document;
- var youtube_token = regp(resultr['responseText'], /'X-YouTube-Identity-Token': "(.*?)"/g, 1)
- var client_version = regp(resultr['responseText'], /INNERTUBE_CONTEXT_CLIENT_VERSION: "(.*?)",/g, 1)
- var page_cl = regp(resultr['responseText'], /'PAGE_CL': (.*?),/g, 1)
- var page_build = regp(resultr['responseText'], /'PAGE_BUILD_LABEL': "(.*?)",/g, 1)
- var checksum = regp(resultr['responseText'], /'VARIANTS_CHECKSUM': "(.*?)",/g, 1)
- var data_post = regp(resultr['responseText'], /data-post-data="(.*?)"/g, 1)
- var token_xsrf = regp(resultr['responseText'], /XSRF_TOKEN('|"):( |)"(.*?)"/g,3)
- FixPlay(execute + '\nWAIT SECONDS = 40')
- switch (type) {
- case 0:
- video_id = youtube_parser(link)
- //var sej = '{"clickTrackingParams":"","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"likeEndpoint":{"status":"LIKE","target":{"videoId":"'+video_id+'"}}}'
- var postdata = data_post[0].replace(/&/g, '&') + '&session_token=' + encodeURIComponent(token_xsrf)
- var resultr = jq.ajax({
- url: "https://www.youtube.com/service_ajax?name=likeEndpoint",
- headers: {
- 'X-YouTube-Client-Name': "1",
- 'X-YouTube-Client-Version': client_version,
- 'X-Youtube-Identity-Token': youtube_token,
- 'X-YouTube-Page-CL': page_cl,
- 'X-YouTube-Page-Label': page_build,
- 'X-YouTube-Variants-Checksum': checksum,
- 'X-YouTube-Utc-Offset': "-240"
- },
- type: "POST",
- data: postdata,
- async: false,
- });
- break;
- case 1:
- video_id = youtube_parser(link)
- var sej = '{"clickTrackingParams":"","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"likeEndpoint":{"status":"DISLIKE","target":{"videoId":"' + video_id + '"}}}'
- var postdata = 'sej=' + encodeURIComponent(sej) + '&session_token=' + encodeURIComponent(token_xsrf)
- var resultr = jq.ajax({
- url: "https://www.youtube.com/service_ajax?name=likeEndpoint",
- type: "POST",
- data: postdata,
- async: false,
- });
- break;
- case 2:
- channel = link.replace(/https:\/\/youtube.com\/channel\//g, "");
- var sej = '{"clickTrackingParams":"","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"subscribeEndpoint":{"channelIds":["' + channel + '"],"params":"EgIIAg%3D%3D"}}'
- var postdata = 'sej=' + encodeURIComponent(sej) + '&session_token=' + encodeURIComponent(token_xsrf)
- var resultr = jq.ajax({
- url: "https://www.youtube.com/service_ajax?name=subscribeEndpoint",
- type: "POST",
- data: postdata,
- async: false,
- });
- break;
- case 7:
- //FixPlay("libs/tw/fw")
- break;
- default:
- return change_account();
- break;
- }
- }
- function checkt(id) {
- var query = request(api + "/order/check/" + id, false, false, "GET", token)
- try {
- query = JSON.parse(query);
- } catch (err) {
- return checkt(id);
- }
- if (query['message'] == "Done") {
- complete++;
- balance = query['balance'];
- } else {
- failed++;
- }
- }
- var setstatus = function(status) {
- var obj = new Object();
- obj.update = status;
- var jsonString = JSON.stringify(obj);
- //request(api + "/monitor/update/" + monitor + "/0", jsonString, true, "POST", token);
- iimDisplay(
- "SocialsTrendy BOT V" + version + "\n" +
- "Status: " + status + "\n" +
- "Balance: " + balance + "\n" +
- "Task Complete: " + complete + "\n" +
- "Task Failed: " + failed + "\n" +
- "Account: " + account + "\n" +
- "Proxy: " + proxy + "\n" +
- "UserAgent: " + useragent + "\n"
- )
- }
- function loadScriptFromURL(url) {
- var request = Components.classes['@mozilla.org/xmlextras/xmlhttprequest;1'].createInstance(Components.interfaces.nsIXMLHttpRequest),
- async = false;
- request.open('GET', url, async);
- request.send();
- if (request.status !== 200) {
- var message = 'an error occurred while loading script at url: ' + url + ', status: ' + request.status;
- iimDisplay(message);
- return false;
- }
- eval(request.response);
- return true;
- }
- function regp(str, regex, row) {
- var res = [];
- var m;
- if (regex.global) {
- while (m = regex.exec(str)) {
- res.push(m[row]);
- }
- } else {
- if (m = regex.exec(str)) {
- res.push(m[row]);
- }
- }
- return res;
- }
- var logingoogle = function(email, password, email_recovery) {
- cookieManager.add('.youtube.com', "/", "PREF", "f1=50000000&al=en&f6=c1008", false, false, false, expires);
- iimSet("EMAIL", email);
- iimSet("PASSWORD", password);
- FixPlay("libs/google/login");
- var site = "" + window.location + "";
- if (iimGetLastExtract(1).trim() == "Verify it's you" || site.search(/selectchallenge/) != -1) {
- if (search_site("Confirm your recovery email")) {
- setstatus("Pass security Google Email Recovery");
- iimSet("email_rc", email_recovery);
- FixPlay("libs/google/verifyemail");
- }
- }
- var site = "" + window.location + "";
- if (site.search(/signin\/newfeatures/) != -1) {
- FixPlay(execute +
- "TAG POS=1 TYPE=IMG ATTR=SRC:*keyboard_arrow_down_white_*.*\n" +
- "WAIT SECONDS = 2\n" +
- "TAG POS=1 TYPE=IMG ATTR=SRC:*keyboard_arrow_down_white_*.*\n" +
- "WAIT SECONDS = 2\n" +
- "TAG POS=1 TYPE=IMG ATTR=SRC:*keyboard_arrow_down_white_*.*\n" +
- "WAIT SECONDS = 2\n" +
- "TAG POS=2 TYPE=SPAN ATTR=TXT:I<SP>agree\nTAG POS=1 TYPE=SPAN ATTR=TXT:Done");
- }
- if (site.search(/privacyreminder/) != -1) {
- FixPlay(execute +
- "TAG POS=2 TYPE=DIV ATTR=CLASS:ZFr60d<SP>CeoRYc\n" +
- "WAIT SECONDS = 2\n" +
- "TAG POS=2 TYPE=DIV ATTR=CLASS:ZFr60d<SP>CeoRYc\n" +
- "WAIT SECONDS = 2\n" +
- "TAG POS=2 TYPE=DIV ATTR=CLASS:ZFr60d<SP>CeoRYc\n" +
- "WAIT SECONDS = 2\n" +
- "TAG POS=2 TYPE=DIV ATTR=CLASS:ZFr60d<SP>CeoRYc\n" +
- "WAIT SECONDS = 2\nTAG POS=1 TYPE=SPAN ATTR=TXT:Done"
- )
- }
- if (site.search(/recoveryoptions/) != -1) {
- FixPlay(execute +
- "WAIT SECONDS = 3\n" +
- "EVENT TYPE=CLICK SELECTOR=\"#view_container>DIV>DIV>DIV>DIV>DIV>DIV:nth-of-type(3)>DIV\" BUTTON=0\n" +
- "TAG POS=2 TYPE=DIV ATTR=TXT:Done\n" +
- "WAIT SECONDS = 8\nTAG POS=1 TYPE=SPAN ATTR=TXT:Done");
- }
- var o = 0
- while (true) {
- o++
- FixPlay(execute + 'TAG POS=1 TYPE=DIV ATTR=TXT:Type<SP>the<SP>text<SP>you<SP>hear<SP>or<SP>see EXTRACT=TXT')
- var resul = iimGetLastExtract().trim()
- if (o > 2)
- break
- if (resul != errorOne) {
- FixPlay('/libs/ch2')
- } else
- break
- }
- FixPlay(execute + "WAIT SECONDS = 5");
- var site = "" + window.location + "";
- if (search_site("yt-masthead-user") || search_site("ytd-masthead") || site == "https://www.youtube.com") {
- return 1;
- } else
- return -1;
- }
- function quarter() {
- window.resizeTo(
- random_num(700, 1350),
- random_num(500, 900)
- );
- }
- main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement