Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function() {
- var message = localStorage.getItem('message1');
- var message2 = localStorage.getItem('message2');
- var message3 = localStorage.getItem('message3');
- try {
- $('body').before('<div id="MSGWORK" style="position: fixed;right: 0;bottom: 0;z-index: 999999;background: #1d9bf0;font-size: 25px;padding: 5px;"></div>');
- $('body').before('<button id="openORshow" style="position: fixed;z-index: 999999; bottom: 0;">Скрыть/Открыть</button>');
- $('body').before('<div id="spamer" style="position: absolute;z-index: 99999;width: 321px;background: #b0b0b0;text-align: center;height: 100%;"></div>');
- $('#spamer').html(`
- <button id="spmtwtrStart"">Start Messaging</button>
- <button id="spmtwtrStop">Stop Messaging</button><br/><br/>
- <div>В окно ниже пихать парс</div>
- <textarea id='parselist' style="resize: none;" cols="40" rows="20"></textarea>
- <div><button id="listParsSave">Сохранить</button><div id='saveAndcount'>0</div></div>
- <div>Сообщения</div>
- <input type="number" id="totalMsg" style="width: 50px;"/> из <input type="number" id="maxMsg" style="width: 50px;"/>
- <br/>
- <div>3 окна = 31 сообщения</div>
- <textarea id='message1' style="resize: none;" cols="40" rows="5"></textarea>
- <textarea id='message2' style="resize: none;" cols="40" rows="5"></textarea>
- <textarea id='message3' style="resize: none;" cols="40" rows="5"></textarea>
- <div><button id="messagesavebtn">Сохранить</button></div>`);
- //НАЖАТИЕ КНОПКИ СТАРТ
- $('#spmtwtrStart').on('click', function(){
- startMessaging();
- });
- $('#spmtwtrStop').on('click', function(){
- window.location.href = "https://twitter.com/messages";
- });
- $('#openORshow').on('click', function(){
- $('#spamer').toggle();
- });
- //установка парсинга для спама
- var parselistSaved = localStorage.getItem('parselist');
- $('#listParsSave').on('click', function(){
- var parselist = $('#parselist').val();
- updParseLst(parselist);
- sndWorkmsg('Сохранено');
- });
- if(parselistSaved != null){
- $('#parselist').val(parselistSaved);
- }
- var updParseLst = function(updParseList){
- $('#parselist').val(updParseList);
- localStorage.setItem('parselist', updParseList);
- parselistSaved = updParseList;
- updCountParses();
- };
- var sndWorkmsg = function(msg){
- $('#MSGWORK').append('<div>'+msg+'</div>');
- setTimeout(function(){
- $('#MSGWORK').find('div')[0].remove();
- }, 5000);
- };
- var updCountParses = function(){
- $('#saveAndcount').text(parselistSaved.split("\n").length);
- }
- updCountParses();
- var updTotalMsg = function(totalMsg){
- localStorage.setItem('totalmsg', totalMsg);
- $('#totalMsg').val(totalMsg);
- }
- if(localStorage.getItem('totalmsg') == null){
- updTotalMsg(0);
- }
- $('#totalMsg').val(localStorage.getItem('totalmsg')); //init
- $('#totalMsg').on('keyup change', function(){
- updTotalMsg($(this).val());
- sndWorkmsg("Сохранено");
- });
- var updMaxMsg = function(MaxMsg){
- localStorage.setItem('maxMsg', MaxMsg);
- $('#maxMsg').val(MaxMsg);
- }
- if(localStorage.getItem('maxMsg') == null){
- updMaxMsg(50);
- }
- $('#maxMsg').val(localStorage.getItem('maxMsg')); //init
- $('#maxMsg').on('keyup', function(){
- updMaxMsg($(this).val());
- sndWorkmsg("Сохранено");
- });
- if(localStorage.getItem('message1') != null){
- $('#message1').val(localStorage.getItem('message1'));
- $('#message2').val(localStorage.getItem('message2'));
- $('#message3').val(localStorage.getItem('message3'));
- }
- var updatemessage = function(){
- localStorage.setItem('message1', $('#message1').val());
- localStorage.setItem('message2', $('#message2').val());
- localStorage.setItem('message3', $('#message3').val());
- message = localStorage.getItem('message1');
- message2 = localStorage.getItem('message2');
- message3 = localStorage.getItem('message3');
- sndWorkmsg("Сохранено");
- };
- $('#messagesavebtn').click(function(){
- updatemessage();
- });
- //VAR DEFAULT
- var checkModalInterval;
- var falseOrTrueFor = true; //Флаг указывающий в работе ли сейчас отправка сообщения конкретному человеку
- var messagingIInterval;
- var indUser = 1;
- if(localStorage.getItem('msgIndex') == null){
- localStorage.setItem('msgIndex', 1);
- }
- var firststart = true;
- var autoRestart = false;
- var sendedMessage = 25;
- var sendMsgSuccess = $.cookie('sendMsgSuccess');
- var startMessaging = function(){
- messagingIInterval = setInterval(function(){
- if(falseOrTrueFor){
- if(sendMsgSuccess == undefined){
- sendMsgSuccess = 0;
- }
- autoRestart = false;
- firststart = false;
- falseOrTrueFor = false;
- var userName1 = parselistSaved.split("\n")[0];
- var userName = userName1;
- userName = userName.split("/")[3];
- var totalMsg = parseInt(localStorage.getItem('totalmsg'));
- var maxMsg = parseInt(localStorage.getItem('maxMsg'));
- if(totalMsg < maxMsg){
- updParseLst(parselistSaved.replace(userName1,'').replace(/(\r?\n)/, ""));
- updCountParses();
- if(userName != undefined){
- $("a[href='/messages/compose']")[0].click();
- checkModalDialog(userName);
- } else {
- clearInterval(messagingIInterval);
- alert("Парсы кончились, грузи новые начальник!");
- }
- } else {
- clearInterval(messagingIInterval);
- alert(totalMsg+" из "+ maxMsg + " отправлено!");
- }
- }
- }, 1000);};
- var checkModalDialog = function(userName){
- checkModalInterval = setInterval(function(){
- if($("div[aria-labelledby='modal-header']").length != 0){
- clearInterval(checkModalInterval);
- setTimeout(function(){
- searchUser(userName);
- }, 500);
- }
- }, 300);
- };
- var searchInterval;
- var searchedOrno;
- var searchTimeout;
- var searchUser = function(userName, repeatsearch = false){
- var inputSearch = $("input[placeholder='Search people']")[0];
- $(inputSearch).attr({'data-focusvisible-polyfill':'true' });
- $(inputSearch).focus();
- inputSearch.setAttribute('value', userName);
- inputSearch.dispatchEvent(new Event('input', { bubbles: true, cancelable: true}));
- var timeoutClick;
- searchInterval = setInterval(function(){
- var searchedUser = $("span:Contains('@"+userName+"')");
- var noMessage = $("span:Contains('@"+userName+" can’t be messaged')");
- searchedOrno = false;
- if(searchedUser[0] != undefined){ //Найден ли пользователь
- if(noMessage[0] == undefined){ //Открыта ли личка
- searchedOrno = true; //объявляем что юзер найден
- sndWorkmsg("Пользователь найден.");
- clearInterval(searchInterval);
- clearTimeout(searchTimeout);
- userName = $(searchedUser[0]).text().replace('@', '');
- var realName = $($('div[data-testid="TypeaheadUser"]').find('span')[1]).text();
- timeoutClick = setTimeout(function(){
- goToUserPageMsg(searchedUser, inputSearch,userName, realName);
- }, 4000);
- } else {
- searchedOrno = true;
- sndWorkmsg("Личка закрыта");
- clearTimeout(timeoutClick);
- clearTimeout(searchTimeout);
- clearInterval(searchInterval);
- setTimeout(function(){
- falseOrTrueFor = true;
- }, 2000);
- }
- }
- }, 400);
- searchTimeout = setTimeout(function(){ //Если пользователь не нашелся
- sndWorkmsg("Пользователь не найден");
- clearInterval(searchInterval);
- setTimeout(function(){
- falseOrTrueFor = true;
- }, 2000);
- }, 5000);
- };
- var goToUserPageMsg = function(searchedUser, inputSearchDOM,userName,realName){
- var userTarget = searchedUser.parents("div[role='button']")[0];
- var intervalLoadUserOption;
- var intervalClick;
- var timeoutBUG;
- sndWorkmsg("Кликнули по пользователю");
- console.log(userName);
- intervalClick = setInterval(function(){
- $('div[data-testid="UserAvatar-Container-'+userName+'"]').click();
- }, 2000);
- intervalLoadUserOption = setInterval(function(){ //ожидаем пока он добавится в лист отправителей
- if($($(inputSearchDOM).parents("form").get(0)).find("div")[0].childNodes[0].childNodes[0].childElementCount != 1){
- clearInterval(intervalClick);
- clearInterval(intervalLoadUserOption);
- clearTimeout(timeoutBUG);
- setTimeout(function(){
- $("div[data-testid='nextButton']")[0].click();
- var intervalLoadWinUserDM;
- intervalLoadWinUserDM = setInterval(function(){
- if($('section[aria-label="Section details"]').find('div[data-testid="tweetText"]').length == 0){
- clearInterval(intervalLoadWinUserDM);
- sndWorkmsg("Переходим к отправке сообщения.");
- waitLoadPageMsg(realName);
- } else {
- clearInterval(intervalLoadWinUserDM);
- sndWorkmsg("Сообщение отправлено не будет, у вас уже есть переписка.");
- falseOrTrueFor = true;
- }
- }, 500);
- }, 2000);
- }
- }, 200);
- timeoutBUG = setTimeout(function(){ //ожидание перехода на новую страницу, если не случилось, идем дальше
- clearInterval(intervalClick);
- clearInterval(intervalLoadUserOption);
- sndWorkmsg("Не кликается по пользователю, ищу следующего");
- firststart = false;
- falseOrTrueFor = true;
- }, 7000);
- //clearIntervals(); //временный
- };
- var waitLoadPageMsgInterval;
- var timeoutReload;
- var waitLoadPageMsg = function(realName){
- var msgIndex = parseInt(localStorage.getItem('msgIndex'));
- switch (msgIndex) {
- case 1:
- message = message.replace('{name}', realName);
- msgIndex = 2;
- localStorage.setItem('msgIndex', 2);
- break;
- case 2:
- message = message2.replace('{name}', realName);
- localStorage.setItem('msgIndex', 3);
- break;
- case 3:
- message = message3.replace('{name}', realName);
- localStorage.setItem('msgIndex', 1);
- break;
- }
- var url = window.location.href;
- url += message;
- url += '&work=' + 'true';
- timeoutReload = setTimeout(function(){
- window.location.replace(url);
- }, 2000);
- };
- var sendMessageTimeout;
- var intervalCheckSendMessage;
- var sendMsgToUser = function(index){
- sendMessageTimeout = setTimeout(function(){
- $('div[aria-label="Send"]').click();
- intervalCheckSendMessage = setInterval(function(){
- if($('span:Contains("Message failed to send")')[0] != undefined){
- var totalmsgsend = parseInt(localStorage.getItem('totalmsg'));
- if(totalmsgsend < maxMSG){
- checkTryAgain();
- clearInterval(messagingIInterval);
- sndWorkmsg("Командир, палево, прекращаю рассылку на 20 минут.");
- } else {
- alert("Лимит достигнут, харош на сегодня!");
- }
- clearInterval(intervalCheckSendMessage);
- }
- if($('span:Contains("Sent")')[0] != undefined){
- clearInterval(intervalCheckSendMessage);
- var totalmsgsendmess = parseInt(localStorage.getItem('totalmsg')) + 1;
- updTotalMsg(totalmsgsendmess);
- sndWorkmsg("Сообщение отправлено (Всего успешных " + totalmsgsendmess + ")");
- reworkStart();
- }
- }, 1000);
- }, 9000);
- };
- var intervalCheckTryAgain;
- var checkTryAgain = function(){ //функция проверки при неудачной попытке отправки сообщения (красное окно)
- setTimeout(function(){
- $('span:Contains("Try again")').parents("div").get(0).click();
- setTimeout(function(){
- intervalCheckTryAgain = setInterval(function(){
- if($('span:Contains("Message failed to send")')[0] != undefined){
- sndWorkmsg("Сообщения не отправляются, возможно достигнут лимит.");
- clearInterval(intervalCheckTryAgain);
- checkTryAgain();
- }
- if($('span:Contains("Sent")')[0] != undefined){
- clearInterval(intervalCheckTryAgain);
- falseOrTrueFor = true;
- }
- }, 1000);
- }, 2000);
- }, (1000*60)*20);
- }
- var reworkStart = function(){
- falseOrTrueFor = true;
- setTimeout(function(){
- startMessaging();
- }, 3000);
- };
- var stopMessaging = function(){
- clearInterval(messagingIInterval);
- clearInterval(checkModalInterval);
- clearInterval(searchInterval);
- clearTimeout(timeoutClick);
- clearTimeout(searchTimeout);
- clearInterval(intervalClick);
- clearInterval(intervalLoadUserOption);
- clearTimeout(timeoutBUG);
- clearTimeout( timeoutReload);
- clearTimeout(sendMessageTimeout);
- };
- //UTILS
- var getUrlParameter = function getUrlParameter(sParam) {
- var sPageURL = decodeURIComponent(window.location.search.substring(1)),
- sURLVariables = sPageURL.split('&'),
- sParameterName,
- i;
- for (i = 0; i < sURLVariables.length; i++) {
- sParameterName = sURLVariables[i].split('=');
- if (sParameterName[0] === sParam) {
- sendMsgToUser(sParameterName[1] === undefined ? true : sParameterName[1]);
- }
- }
- };
- getUrlParameter("work"); //Перезапуск скрипта для отправки сообщения
- jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
- return function( elem ) {
- return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
- };});
- } catch {
- console.log("ОШИБКА, ПЕРЕЗАПУСК");
- autoRestart = true;
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment