Discussions » Creation Requests
Памагити чайнику написать легчайший макрос
// ==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/[email protected]/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;
}
})();
Большое спасибо, 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/[email protected]/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; } })();
А для каких вообще целей надо этот макрос? Что за сайт?
А для каких вообще целей надо этот макрос? Что за сайт?
Модерация карточек, суть в том что на этом сайте есть горячие кнопки, мне нужно что бы карточки сами подтверждались (нажатие левой кнопки), можно подтверждать и мышкой, но там позиция всегда рандомная, если только запарится и делать привязку к картинке (зелёная галочка) если такое возможно конечно макросом. Но намного проще просто забиндить стрелку я так думаю.
намного проще просто забиндить стрелку я так думаю
Наверное. В общем, скрипт сейчас симулирует нажатие кнопки на document.body, а для этого сайта твоего надо более конкретный блок указать, родительский, непосредственно с вот этими карточками. Справишься?
намного проще просто забиндить стрелку я так думаю
Наверное. В общем, скрипт сейчас симулирует нажатие кнопки на document.body, а для этого сайта твоего надо более конкретный блок указать, родительский, непосредственно с вот этими карточками. Справишься?
К сожалению нет, покопался в коде страницы и ещё больше ужаснулся. Ссылку на сайт давать бесполезно тк у тебя доступа не будет, не знаю поможет, но вот весь код страницы
Модерация
Это код можно сказать что пустой страницы, т.к. вся страница потом собирается с нуля на этом сайте. Смотри через 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/[email protected]/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;
}
})();
Это код можно сказать что пустой страницы, т.к. вся страница потом собирается с нуля на этом сайте. Смотри через 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/[email protected]/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; } })();
Да, не работает. Вот путь к этой зелёной галке.
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');
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');
Перебрал все по очереди, не помогло, ещё заметил если вставить любую из вышеперечисленных строк - перестаёт работать автообновление.
Konf, спасибо большое за помощь, вообщем я на стороннюю прогу забиндил кнопку и всё вроде бы ок)
Извините, а на сайте intim.blog будет макрос работать?
Извините, а на сайте intim.blog будет макрос работать?
Может да, может нет. Надо проверять и править, или сделать через тот же autohotkey как чел выше по итогу сделал
Драсте, я в макросах не дунь дунь, сижу уже 5 часов думаю как написать свой макрос но нифига не нашол.
Короче нужно, что бы на сайте постоянно нажималась одна единственная кнопка с интервалом пол секунды, стрелка влево.
Желательно ещё что бы страница сама обновлялась через каждые 15-20 сек.
Дай бог здоровья кто осмелится сделать столь сложную работу)