Крч если на вас напишут жалобу скрипт вас оповестит. Нужно чтобы тыла открыта страница жалоб( https://zelenka.guru/forums/801/ ), впринципе все. В коде написал что и куда вписывать. // ==UserScript== // @name уведы о жалобах // @namespace https://zelenka.guru/ // @version 0.1 // @author stealyourbrain // @match https://zelenka.guru/forums/801/* // @icon https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru // @grant none // ==/UserScript== const workerCode = ` self.addEventListener('message', async (event) => { if (event.data.type === 'start') { while (true) { self.postMessage({ type: 'log', message: \`[\${new Date().toLocaleString()}] Ищем новые темы...\` }); await new Promise(resolve => setTimeout(resolve, 400)); } } }); `; const workerBlob = new Blob([workerCode], { type: 'application/javascript' }); const workerURL = URL.createObjectURL(workerBlob); const worker = new Worker(workerURL); worker.addEventListener('message', (event) => { if (event.data.type === 'log') { console.log(event.data.message); } }); worker.postMessage({ type: 'start' }); const CHECK_INTERVAL = 400; const checkedThreads = []; const _xfToken = document.querySelector('input[name="_xfToken"]').value; function wait (ms) { return new Promise((resolve) => setTimeout(() => resolve(), ms)) }; function log (msg) { console.log(`%c ${msg} `, 'background: #111; color: #bada55; font-size: 14; line-height: 25px;'); } async function doUpdate () { document.querySelector(".UpdateFeedButton").click(); } async function doBooking(thread_id) { let formData = new FormData(); formData.append("prefix_id[]", 314); formData.append("_xfConfirm", 1); formData.append("_xfResponseType", "json") formData.append("_xfNoRedirect", 1) formData.append("_xfToken", _xfToken); formData.append("discussion_open", 1); await fetch(`/threads/${thread_id}/save`, { method: 'POST', body: formData }); } async function sendTelegramNotification(thread_id) { const chat_id = 'сюда ваш ид телеграмм'; const bot_token = 'сюда токен бота телеграмм'; const message = `https://zelenka.guru/threads/${thread_id}/`; const url = `https://api.telegram.org/bot${bot_token}/sendMessage?chat_id=${chat_id}&text=${message}&parse_mode=HTML`; await fetch(url); } (async function mainLoop() { while (true) { log(`[${new Date().toLocaleString()}] Ищем новые темы...`); await doUpdate(); await wait(110); const response = await fetch('https://zelenka.guru/forums/801/'); const html = await response.text(); const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html'); const discussions = doc.querySelectorAll(".discussionListItem"); for (let discussion of discussions) { let user_el = discussion.querySelector(".threadCreator > span"); let thread_id = Number(discussion.id.split("-")[1]); let username = user_el.innerText.trim(); let is_blocked = Array.from(user_el.classList).includes("style18"); let date_is_now = discussion.querySelector(".startDate.muted").innerText.trim() === "Только что"; if (date_is_now && is_blocked && !checkedThreads.includes(thread_id)) { checkedThreads.push(thread_id); log(`Найдена новая тема (ID: ${thread_id}) от юзера ${username}`); await doBooking(thread_id) .then(() => { sendTelegramNotification(thread_id); // вызываем функцию sendTelegramNotification() }) .catch((e) => console.warn('Ошибка:', e)); } } await wait(CHECK_INTERVAL); } })(); JS // ==UserScript== // @name уведы о жалобах // @namespace https://zelenka.guru/ // @version 0.1 // @author stealyourbrain // @match https://zelenka.guru/forums/801/* // @icon https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru // @grant none // ==/UserScript== const workerCode = ` self.addEventListener('message', async (event) => { if (event.data.type === 'start') { while (true) { self.postMessage({ type: 'log', message: \`[\${new Date().toLocaleString()}] Ищем новые темы...\` }); await new Promise(resolve => setTimeout(resolve, 400)); } } }); `; const workerBlob = new Blob([workerCode], { type: 'application/javascript' }); const workerURL = URL.createObjectURL(workerBlob); const worker = new Worker(workerURL); worker.addEventListener('message', (event) => { if (event.data.type === 'log') { console.log(event.data.message); } }); worker.postMessage({ type: 'start' }); const CHECK_INTERVAL = 400; const checkedThreads = []; const _xfToken = document.querySelector('input[name="_xfToken"]').value; function wait (ms) { return new Promise((resolve) => setTimeout(() => resolve(), ms)) }; function log (msg) { console.log(`%c ${msg} `, 'background: #111; color: #bada55; font-size: 14; line-height: 25px;'); } async function doUpdate () { document.querySelector(".UpdateFeedButton").click(); } async function doBooking(thread_id) { let formData = new FormData(); formData.append("prefix_id[]", 314); formData.append("_xfConfirm", 1); formData.append("_xfResponseType", "json") formData.append("_xfNoRedirect", 1) formData.append("_xfToken", _xfToken); formData.append("discussion_open", 1); await fetch(`/threads/${thread_id}/save`, { method: 'POST', body: formData }); } async function sendTelegramNotification(thread_id) { const chat_id = 'сюда ваш ид телеграмм'; const bot_token = 'сюда токен бота телеграмм'; const message = `https://zelenka.guru/threads/${thread_id}/`; const url = `https://api.telegram.org/bot${bot_token}/sendMessage?chat_id=${chat_id}&text=${message}&parse_mode=HTML`; await fetch(url); } (async function mainLoop() { while (true) { log(`[${new Date().toLocaleString()}] Ищем новые темы...`); await doUpdate(); await wait(110); const response = await fetch('https://zelenka.guru/forums/801/'); const html = await response.text(); const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html'); const discussions = doc.querySelectorAll(".discussionListItem"); for (let discussion of discussions) { let user_el = discussion.querySelector(".threadCreator > span"); let thread_id = Number(discussion.id.split("-")[1]); let username = user_el.innerText.trim(); let is_blocked = Array.from(user_el.classList).includes("style18"); let date_is_now = discussion.querySelector(".startDate.muted").innerText.trim() === "Только что"; if (date_is_now && is_blocked && !checkedThreads.includes(thread_id)) { checkedThreads.push(thread_id); log(`Найдена новая тема (ID: ${thread_id}) от юзера ${username}`); await doBooking(thread_id) .then(() => { sendTelegramNotification(thread_id); // вызываем функцию sendTelegramNotification() }) .catch((e) => console.warn('Ошибка:', e)); } } await wait(CHECK_INTERVAL); } })();
похоже на какой-то кф скрипт для жалоб, который неудачно пытаются подогнать под уведы у обычных юзеров нет прав на редактирование чужой темы, да и проверки на юзернейм я не вижу