Like Automator

This is a "like" automator (first N posts only).

  1. // ==UserScript==
  2. // @name Like Automator
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.7
  5. // @description This is a "like" automator (first N posts only).
  6. // @author biganthonymo
  7. // @match https://x.com/*/status/*
  8. // @icon data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTIyLjg4IDExNC40MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTIyLjg4IDExNC40MiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKCS5zdDB7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojRUU0ODU2O30KCS5zdDF7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojRkZGRkZGO30KXV0+PC9zdHlsZT48Zz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNOS4zMiwwaDEwNC4yNGM1LjEzLDAsOS4zMiw0LjIsOS4zMiw5LjMydjczLjYyYzAsNS4xMS00LjIxLDkuMzItOS4zMiw5LjMySDgzLjg0bC0xNi4xNywxOS4wNiBjLTMuNTgsNC4yMy05LjQ1LDQuMDQtMTIuODEsMEwzOS4wNCw5Mi4yNkg5LjMyQzQuMjEsOTIuMjYsMCw4OC4wNywwLDgyLjk0VjkuMzJDMCw0LjE5LDQuMTksMCw5LjMyLDBMOS4zMiwweiIvPjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MS4yLDMwLjQyYzMuNTMtMy42OCw2LTYuMTcsMTEuNDMtNi43OWMxMC4yLTEuMTcsMjAuMjcsOS4yNywxNS4xMiwxOS41NmMtMS45LDMuNzktOC40OSwxMC4xNi0xMy43NiwxNS4xNSBjLTIuMDEsMS45LTMuODMsMy42MS01LjEyLDQuODlsLTcuNjYsNy42bC02LjMzLTYuMDljLTEuOTEtMS44My00LjE2LTMuNzktNi40Ni01Ljg3QzQxLjUsNTIuNjQsMzQuMDUsNDUuMywzMy43NCwzNi43MyBjLTAuMjktOC4wMSw2LjcyLTEzLjE1LDE0LTEzLjA2QzU0LjIsMjMuNzYsNTYuOTIsMjYuMjUsNjEuMiwzMC40Mkw2MS4yLDMwLjQyeiIvPjwvZz48L3N2Zz4=
  9. // @grant none
  10. // @license MIT
  11.  
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. // Wait for the window to load completely
  18. window.onload = function() {
  19. // Function to get random delay
  20. function getRandomDelay() {
  21. return Math.floor(Math.random() * 400) + 100; // Random delay between 100 and 500 ms
  22. }
  23.  
  24. function simulatePageDown() {
  25. window.scrollBy(0, window.innerHeight);
  26. }
  27.  
  28. function scrollDownMultipleTimes(times, delay) {
  29. for (let i = 0; i < times; i++) {
  30. setTimeout(simulatePageDown, i * delay);
  31. }
  32. }
  33.  
  34. function simulatePageUp() {
  35. window.scrollBy(0, -window.innerHeight);
  36. }
  37.  
  38. function scrollUpMultipleTimes(times, delay) {
  39. for (let i = 0; i < times; i++) {
  40. setTimeout(simulatePageUp, i * delay);
  41. }
  42. }
  43.  
  44. // Create and append the floating button
  45. const floatButton = document.createElement('button');
  46. floatButton.innerText = 'Like Automator';
  47. Object.assign(floatButton.style, {
  48. position: 'fixed',
  49. bottom: '20px',
  50. left: '20px',
  51. zIndex: '9999',
  52. padding: '10px',
  53. backgroundColor: '#007bff',
  54. color: '#fff',
  55. border: 'none',
  56. borderRadius: '5px',
  57. cursor: 'pointer'
  58. });
  59.  
  60. // Append button to body only if body exists
  61. if (document.body) {
  62. document.body.appendChild(floatButton);
  63. } else {
  64. console.error('Document body is not available to append the button.');
  65. return;
  66. }
  67.  
  68. // Button click event to process all likes
  69. floatButton.addEventListener('click', function() {
  70. const buttons = document.querySelectorAll('[data-testid="like"]');
  71. let clickedCount = 0;
  72.  
  73. function processButton(i) {
  74. if (i >= buttons.length || i >= 50) return;
  75.  
  76. buttons[i].scrollIntoView({
  77. behavior: 'smooth',
  78. block: 'center'
  79. });
  80.  
  81. setTimeout(function() {
  82. buttons[i].click();
  83. clickedCount++;
  84. floatButton.innerText = `Like Automator (${clickedCount} / ${buttons.length - 1})`;
  85. setTimeout(() => processButton(i + 1), getRandomDelay());
  86. }, 500);
  87. }
  88.  
  89. processButton(1); // Start processing from the second button
  90. });
  91. };
  92. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址