Discussions » Creation Requests

Памагити чайнику написать легчайший макрос

§
Posted: 2021-07-23
Драсте, я в макросах не дунь дунь, сижу уже 5 часов думаю как написать свой макрос но нифига не нашол.
Короче нужно, что бы на сайте постоянно нажималась одна единственная кнопка с интервалом пол секунды, стрелка влево.
Желательно ещё что бы страница сама обновлялась через каждые 15-20 сек.
Дай бог здоровья кто осмелится сделать столь сложную работу)
§
Posted: 2021-07-24
Edited: 2021-07-24
// ==UserScript==
// @name          Легчайший макрос
// @description   Нажимает ← раз в пол секунды и обновляет страницу каждые 15-20 сек.
// @author        Konf
// @namespace     https://greasyfork.org/users/424058
// @icon          https://www.google.com/s2/favicons?domain=greasyfork.org&sz=32
// @require       https://cdn.jsdelivr.net/npm/keysim@2.1.0/dist/keysim.min.js
// @version       1.0.0
// @match         https://en.key-test.ru/*
// @grant         none
// @noframes
// ==/UserScript==

/* jshint esversion: 6 */
/* global Keysim */

(function() {
  'use strict';

  const keyboard = Keysim.Keyboard.US_ENGLISH;

  (function loop() {
    setTimeout(() => {
      keyboard.dispatchEventsForAction('left', document.body);
      loop();
    }, 500);
  }());

  setTimeout(() => { location.reload() }, getRandomInt(15, 20) * 1000);

  function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);

    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
})();
§
Posted: 2021-07-24
Большое спасибо, Konf! Прости за мою сверхтупость, но у меня макрос работает только на сайте en.key-test ru, меняю его на свой или любой другой - клавиша не нажимается, но автообновление работает.
// ==UserScript==
// @name          Легчайший макрос
// @description   Нажимает ← раз в пол секунды и обновляет страницу каждые 15-20 сек.
// @author        Konf
// @namespace     https://greasyfork.org/users/424058
// @icon          https://www.google.com/s2/favicons?domain=greasyfork.org&sz=32
// @require       https://cdn.jsdelivr.net/npm/keysim@2.1.0/dist/keysim.min.js
// @version       1.0.0
// @match         https://en.key-test.ru/*
// @grant         none
// @noframes
// ==/UserScript==

/* jshint esversion: 6 */
/* global Keysim */

(function() {
  'use strict';

  const keyboard = Keysim.Keyboard.US_ENGLISH;

  (function loop() {
    setTimeout(() => {
      keyboard.dispatchEventsForAction('left', document.body);
      loop();
    }, 500);
  }());

  setTimeout(() => { location.reload() }, getRandomInt(15, 20) * 1000);

  function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);

    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
})();
§
Posted: 2021-07-24

А для каких вообще целей надо этот макрос? Что за сайт?

§
Posted: 2021-07-24

А для каких вообще целей надо этот макрос? Что за сайт?

Модерация карточек, суть в том что на этом сайте есть горячие кнопки, мне нужно что бы карточки сами подтверждались (нажатие левой кнопки), можно подтверждать и мышкой, но там позиция всегда рандомная, если только запарится и делать привязку к картинке (зелёная галочка) если такое возможно конечно макросом. Но намного проще просто забиндить стрелку я так думаю.
§
Posted: 2021-07-24

намного проще просто забиндить стрелку я так думаю

Наверное. В общем, скрипт сейчас симулирует нажатие кнопки на document.body, а для этого сайта твоего надо более конкретный блок указать, родительский, непосредственно с вот этими карточками. Справишься?

§
Posted: 2021-07-25

намного проще просто забиндить стрелку я так думаю

Наверное. В общем, скрипт сейчас симулирует нажатие кнопки на document.body, а для этого сайта твоего надо более конкретный блок указать, родительский, непосредственно с вот этими карточками. Справишься?

К сожалению нет, покопался в коде страницы и ещё больше ужаснулся. Ссылку на сайт давать бесполезно тк у тебя доступа не будет, не знаю поможет, но вот весь код страницыМодерация
Loading...

§
Posted: 2021-07-25
.
§
Posted: 2021-07-25
Edited: 2021-07-25

Это код можно сказать что пустой страницы, т.к. вся страница потом собирается с нуля на этом сайте. Смотри через Ctrl+Shift+i. Можно попробовать такой вариант, но я сомневаюсь что он заработает:

// ==UserScript==
// @name          Легчайший макрос
// @description   Нажимает ← раз в пол секунды и обновляет страницу каждые 15-20 сек.
// @author        Konf
// @namespace     https://greasyfork.org/users/424058
// @icon          https://www.google.com/s2/favicons?domain=greasyfork.org&sz=32
// @require       https://cdn.jsdelivr.net/npm/keysim@2.1.0/dist/keysim.min.js
// @version       1.1.0
// @match         *
// @grant         none
// @noframes
// ==/UserScript==

/* jshint esversion: 6 */
/* global Keysim */

(function() {
  'use strict';

  const keyboard = Keysim.Keyboard.US_ENGLISH;
  const targetNode = document.querySelector('div#__nuxt');

  if (targetNode === null) return;

  (function loop() {
    setTimeout(() => {
      keyboard.dispatchEventsForAction('left', targetNode);
      loop();
    }, 500);
  }());

  setTimeout(() => { location.reload() }, getRandomInt(15, 20) * 1000);

  function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);

    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
})();
§
Posted: 2021-07-26

Это код можно сказать что пустой страницы, т.к. вся страница потом собирается с нуля на этом сайте. Смотри через Ctrl+Shift+i.
Можно попробовать такой вариант, но я сомневаюсь что он заработает:

// ==UserScript==
// @name          Легчайший макрос
// @description   Нажимает ← раз в пол секунды и обновляет страницу каждые 15-20 сек.
// @author        Konf
// @namespace     https://greasyfork.org/users/424058
// @icon          https://www.google.com/s2/favicons?domain=greasyfork.org&sz=32
// @require       https://cdn.jsdelivr.net/npm/keysim@2.1.0/dist/keysim.min.js
// @version       1.1.0
// @match         *
// @grant         none
// @noframes
// ==/UserScript==

/* jshint esversion: 6 */
/* global Keysim */

(function() {
  'use strict';

  const keyboard = Keysim.Keyboard.US_ENGLISH;
  const targetNode = document.querySelector('div#__nuxt');

  if (targetNode === null) return;

  (function loop() {
    setTimeout(() => {
      keyboard.dispatchEventsForAction('left', targetNode);
      loop();
    }, 500);
  }());

  setTimeout(() => { location.reload() }, getRandomInt(15, 20) * 1000);

  function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);

    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
})();
Да, не работает. Вот путь к этой зелёной галке.
§
Posted: 2021-07-26

const targetNode = document.querySelector('div#__nuxt'); - убрать

Перебрать по очереди:

const targetNode = document.querySelectorAll('div.column_3Puao')[1] || null;
const targetNode = document.querySelector('div.block_3o-Cc.block');
const targetNode = document.querySelector('div.block_3o-Cc.block > div');
const targetNode = document.querySelectorAll('div.block_3o-Cc.block > div > div')[1] || null;
const targetNode = document.querySelector('div.block_3o-Cc.block > div[data-index="0"]');
const targetNode = document.querySelector('div.block_3o-Cc.block > div[data-index="0"] > div');
const targetNode = document.querySelector('div.block_3o-Cc.block > div[data-index="0"] > div > div');
§
Posted: 2021-07-26

const targetNode = document.querySelector('div#__nuxt'); - убрать

Перебрать по очереди:

const targetNode = document.querySelectorAll('div.column_3Puao')[1] || null;
const targetNode = document.querySelector('div.block_3o-Cc.block');
const targetNode = document.querySelector('div.block_3o-Cc.block > div');
const targetNode = document.querySelectorAll('div.block_3o-Cc.block > div > div')[1] || null;
const targetNode = document.querySelector('div.block_3o-Cc.block > div[data-index="0"]');
const targetNode = document.querySelector('div.block_3o-Cc.block > div[data-index="0"] > div');
const targetNode = document.querySelector('div.block_3o-Cc.block > div[data-index="0"] > div > div');
Перебрал все по очереди, не помогло, ещё заметил если вставить любую из вышеперечисленных строк - перестаёт работать автообновление.
§
Posted: 2021-07-27
Konf, спасибо большое за помощь, вообщем я на стороннюю прогу забиндил кнопку и всё вроде бы ок)

Post reply

Sign in to post a reply.