您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Lets you follow all the accounts on someone's following list.
// ==UserScript== // @name gab.ai follow script // @namespace http://tampermonkey.net/ // @version 1.0 // @description Lets you follow all the accounts on someone's following list. // @author @jorgequintt // @match https://gab.ai/* // @grant none // ==/UserScript== (function() { 'use strict'; var step; var to_follow = 0; var acc_followed = 0; var waiting = false; var msg = ""; var last_qty = 0; function run_follow_all(){ step = 4; } function run_follow_x(){ step = 3; to_follow = document.querySelector('#j_custom_input').value; } function step1(){ step = 1; to_follow = 0; acc_followed = 0; last_qty = 0; waiting = false; } var css = "#loop_state{margin: 15px 15px 1px 15px;text-align: center;}#j_custom {padding-right: 0px;}.column1,.column2{width:50%;display:inline-block;text-align:center}#j_custom_input{width:67px}.j_custom_btn{position:initial!important}"; function loop(){ //check if we are in /following if( window.location.href.indexOf('/following') > 0 || window.location.href.indexOf('/followers') > 0 ){ //if element loaded, add button to layout var ul = document.querySelector('.user-list'); var first_u = document.querySelectorAll('.user-list__item.clearfix')[0]; var j_custom_elem = document.querySelector('#j_custom'); if( !!ul && !!first_u && !j_custom_elem){ console.log('step 0'); var css_elem = document.createElement('style'); css_elem.appendChild(document.createTextNode(css)); var follow_all_box = document.createElement('div'); follow_all_box.setAttribute('class', 'user-list__item clearfix j_custom_box'); follow_all_box.setAttribute('id', 'j_custom'); var wrapper = document.createElement('div'); var column1 = document.createElement('div'); column1.setAttribute('class', 'column1'); var column2 = document.createElement('div'); column2.setAttribute('class', 'column2'); var follow_all_btn = document.createElement('a'); follow_all_btn.innerHTML = 'Follow All'; follow_all_btn.setAttribute('class', 'user-list__item__follow j_custom_btn'); var follow_x_btn = document.createElement('a'); follow_x_btn.setAttribute('class', 'user-list__item__follow j_custom_btn'); follow_x_btn.innerHTML = 'Follow 0 accounts'; var follow_input = document.createElement('input'); follow_input.setAttribute('id', 'j_custom_input'); follow_input.setAttribute('type', 'number'); follow_input.setAttribute('placeholder', '0'); var loop_state = document.createElement('p'); loop_state.setAttribute('id', 'loop_state'); ['change', 'keyup', 'click'].forEach(function(ev){ follow_input.addEventListener(ev, function(){ follow_x_btn.innerHTML = 'Follow '+this.value+' accounts'; }); }); column1.appendChild(follow_all_btn); column2.appendChild(follow_x_btn); column2.appendChild(follow_input); wrapper.appendChild(css_elem); wrapper.appendChild(column1); wrapper.appendChild(column2); wrapper.appendChild(loop_state); follow_all_box.appendChild(wrapper); ul.insertBefore(follow_all_box, first_u); follow_all_btn.addEventListener('click', function(e){ e.preventDefault(); run_follow_all(); }); follow_x_btn.addEventListener('click', function(e){ e.preventDefault(); run_follow_x(); }); step1(); } if(!!j_custom_elem && step > 1){ console.log('step > 1'); document.querySelector('#loop_state').innerHTML = "Followed accounts: "+acc_followed; var all_btns = document.querySelectorAll('a.user-list__item__follow').length; var all_follow_btns = document.querySelectorAll('a[class="user-list__item__follow pull-right"]'); var load_more_btn = document.querySelector('.user-list__load'); var loading_icon = document.querySelector('.user-list__load .ion-load-c.spinning'); if(step == 3 && acc_followed == to_follow){ step = 5; msg = "All accounts have been followed."; }else{ if(all_follow_btns.length < 1){ if(!loading_icon && !waiting){ last_qty = all_btns; load_more_btn.click(); waiting = true; }else if(!loading_icon && waiting){ if(last_qty < all_btns){ last_qty = all_btns; load_more_btn.click(); }else if(last_qty == all_btns){ step = 5; msg = "No more accounts to follow."; } } }else{ waiting = false; all_follow_btns[0].click(); acc_followed++; } } } if( step == 5 ){ step1(); alert('Task done: '+msg); } } //end if in following } setInterval(loop, 350); })();