Загрузка...

Anti -discovery in the distributions

Thread in Extentions created by Архистратиг Jul 29, 2025 at 9:40 AM. 80 views

  1. Архистратиг
    Архистратиг Topic starter Jul 29, 2025 at 9:40 AM аниме малышка продается - https://lolz.live/threads/7421153/ 16,645 Jul 26, 2020
    [IMG]

    Мне надоело, что при заходе в раздачу открывается последний ответ и нужно вручную кликать на 1 страницу, чтобы посмотреть изменилось ли кодовое слово и др.условия.

    Сделал скрипт, который это фиксит:

    Без скрипта открывается рандомная страница с ответами:




    С скриптом всегда первая, даже если отвечали в теме:




    Использование:

    1. Скачать Tampermonkey
    2. Вставить код
    Code
    // ==UserScript==
    // @name Lolz.live - Умный редирект тем
    // @namespace http://tampermonkey.net/
    // @version 1.3
    // @description Перенаправляет с /page-N на первую страницу темы, убирает /unread из ссылок и отменяет авто-прокрутку к #post.
    // @author ChatGPT & You (да говнокод, но работает же)
    // @match https://lolz.live/forums/*
    // @match https://lolz.live/threads/*
    // @icon https://lolz.live/styles/default/xenforo/favicon.ico
    // @grant none
    // @run-at document-start
    // ==/UserScript==

    (function() {
    'use strict';

    const logPrefix = '[Lolz Smart Redirect]';

    // --- ЧАСТЬ 1: Логика для страниц тем (/threads/*) ---
    if (window.location.pathname.startsWith('/threads/')) {
    const path = window.location.pathname;
    const search = window.location.search;

    // 1.1: Если URL содержит '/page-', перенаправляем на первую страницу темы.
    if (path.includes('/page-')) {
    // Находим базовый URL темы (например, /threads/12345/) с помощью регулярного выражения
    const match = path.match(/^(\/threads\/\d+\/)/);
    if (match && match[1]) {
    const baseUrl = window.location.origin + match[1] + search;
    console.log(`${logPrefix} Обнаружена страница ${path}. Перенаправляем на первую страницу: ${baseUrl}`);
    // Выполняем редирект
    window.location.replace(baseUrl);
    // Прекращаем выполнение скрипта, так как страница будет перезагружена
    return;
    }
    }

    // 1.2: Если это первая страница, предотвращаем редирект на #post-...
    // Эта логика сработает только если не было редиректа выше.
    // Используем document-start, чтобы успеть до скриптов сайта.
    const cleanUrlHash = () => {
    if (window.location.hash && window.location.hash.startsWith('#post-')) {
    console.log(`${logPrefix} Обнаружен редирект на ${window.location.hash}. Отменяем.`);
    history.replaceState(null, '', path + search);
    }
    };

    // Немедленно чистим URL при загрузке
    cleanUrlHash();

    // Наблюдаем за изменениями, так как сайт может добавить хеш динамически
    const intervalId = setInterval(cleanUrlHash, 100);

    // Через 7 секунд прекращаем проверку
    setTimeout(() => {
    clearInterval(intervalId);
    console.log(`${logPrefix} Мониторинг редиректа на #post завершен.`);
    }, 7000);
    }

    // --- ЧАСТЬ 2: Логика для страниц разделов (/forums/*) ---
    // Очищаем все ссылки, чтобы они вели на первую страницу темы.
    if (window.location.pathname.startsWith('/forums/')) {
    const cleanLinks = () => {
    const threadLinks = document.querySelectorAll('a[href*="/threads/"]');
    let cleanedCount = 0;
    threadLinks.forEach(link => {
    const originalHref = link.href;
    // Находим базовый URL темы (https://.../threads/12345/)
    const match = originalHref.match(/(https:\/\/lolz\.live\/threads\/\d+\/)/);

    if (match && match[1]) {
    const cleanHref = match[1];
    // Если ссылка отличается от чистой (содержит /page-N, /unread и т.д.), исправляем ее
    if (link.href !== cleanHref) {
    link.href = cleanHref;
    cleanedCount++;
    }
    }
    });
    if (cleanedCount > 0) {
    console.log(`${logPrefix} Очищено ${cleanedCount} ссылок от /page-N и /unread.`);
    }
    };

    // Ждем загрузки DOM, чтобы все ссылки были на месте
    window.addEventListener('DOMContentLoaded', () => {
    cleanLinks();

    // MutationObserver для отслеживания динамически подгружаемого контента (бесконечная прокрутка)
    const observer = new MutationObserver((mutations) => {
    let hasAddedNodes = mutations.some(mutation => mutation.addedNodes.length > 0);
    if (hasAddedNodes) {
    cleanLinks();
    }
    });

    observer.observe(document.body, {
    childList: true,
    subtree: true
    });
    });
    }
    })();
    3. Включать только, когда хотите полутать халяву - затем отключать

     
  2. tonwarden
    tonwarden Jul 29, 2025 at 9:54 AM :smile_read: Лучшие ****** здесь - lolz.live/threads/8856953/ 2213 Apr 27, 2025
    Я бы щас тебе ноги расцеловал
     
  3. ллимоникс
    ллимоникс Jul 29, 2025 at 12:30 PM lolz.live/threads/8634402/ - Лучшие телеграмм аккаунты :+rep: 23,974 Jan 20, 2020
    а что теперь рекламу даже в дополнениях скупают ?
     
    1. ллимоникс
      Киана, правил по этому поводу не существует, так что не в моих силах. Если его так спонсят, то пусть спонсят
Loading...
Top