Flingster - Advanced Ad Skipper

Automatically clicks 'next' on Flingster ads by detecting multiple ad clues like "Hide This", "flag-sponsored", or "Connect with Women".

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Flingster - Advanced Ad Skipper
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  Automatically clicks 'next' on Flingster ads by detecting multiple ad clues like "Hide This", "flag-sponsored", or "Connect with Women".
// @author       hawg808
// @match        *://*.flingster.com/*
// @grant        none
// @run-at       document-idle
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // --- Configuration ---
    // List of CSS selectors that identify an ad. The script will trigger if ANY of these are found.
    const adSelectors = [
        '.rcw-hide',                // The container for ">> Hide This"
        '.flag-sponsored',          // The "Remove Ads" flag
        '.rcw-cont .girls-btn'      // The "Connect with Women" button inside the ad box
    ];
    // The 'next' button that skips to the next person.
    const nextButtonSelector = '#right_button';
    // --- End Configuration ---

    console.log('Flingster Advanced Ad Skipper is now active. 🚀');

    // This function clicks the 'next' button.
    const clickNextButton = () => {
        const nextButton = document.querySelector(nextButtonSelector);
        if (nextButton) {
            // Find which clue was detected for the log message
            const detectedClue = adSelectors.find(selector => document.querySelector(selector));
            console.log(`Ad detected (clue: "${detectedClue}")! Clicking "next"...`);
            nextButton.click();
        }
    };

    // We use a MutationObserver to efficiently watch for when new elements
    // are added to the page.
    const observer = new MutationObserver((mutationsList) => {
        // Check only if something was actually added to the page
        if (!mutationsList.some(mutation => mutation.addedNodes.length > 0)) {
            return;
        }

        // Check if any of our ad selectors match a new, visible element.
        for (const selector of adSelectors) {
            const adElement = document.querySelector(selector);
            // Check if the element exists and is actually visible on the screen.
            if (adElement && adElement.offsetParent !== null) {
                clickNextButton();
                // Exit the function once an ad is found and clicked to avoid multiple clicks.
                return;
            }
        }
    });

    // Start observing the entire page for changes.
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
})();