您需要先安装一个扩展,例如 篡改猴、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);
- })();