1024videos vip

Automatically clears site data to bypass 5-video limit on 1024videos

Terá de instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

Terá de instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Terá de instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Terá de instalar uma extensão como Tampermonkey para instalar este script.

Terá de instalar uma extensão de gestão de scripts de utilizador para instalar este script.

(Já tenho um gestor de scripts de utilizador, deixe-me instalá-lo!)

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

(Já tenho um gestor de estilos de utilizador, deixe-me instalá-lo!)

// ==UserScript==
// @name         1024videos vip
// @namespace    1024videos_unlimited
// @version      1.0.0
// @author        codegeasse
// @description  Automatically clears site data to bypass 5-video limit on 1024videos
// @match        *://*.1024videos.com/*
// @match        *://*.1024video.com/*
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    console.log('🚀 1024videos Unlimited - Starting...');

    // =============================================
    // Clear ALL storage immediately
    // =============================================
    function clearAllData() {
        console.log('🧹 Clearing all site data...');
        
        // Clear localStorage completely
        try {
            localStorage.clear();
            console.log('✅ localStorage cleared');
        } catch(e) {
            console.log('❌ localStorage clear failed:', e);
        }
        
        // Clear sessionStorage completely
        try {
            sessionStorage.clear();
            console.log('✅ sessionStorage cleared');
        } catch(e) {
            console.log('❌ sessionStorage clear failed:', e);
        }
        
        // Clear all cookies
        try {
            document.cookie.split(";").forEach(function(c) { 
                var name = c.split("=")[0].trim();
                document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/";
                document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=" + window.location.hostname;
                document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=." + window.location.hostname;
            });
            console.log('✅ Cookies cleared');
        } catch(e) {
            console.log('❌ Cookie clear failed:', e);
        }
    }
    // =============================================
    // Block storage writes for tracking keys
    // =============================================
    const originalSetItem = Storage.prototype.setItem;
    const originalClear = Storage.prototype.clear;
    const originalRemoveItem = Storage.prototype.removeItem;

    // Track which keys the site tries to use
    const blockedKeys = new Set();

    Storage.prototype.setItem = function(key, value) {
        // Log what the site is trying to save
        console.log('📝 Site trying to save:', key, '=', value);
        blockedKeys.add(key);
        
        // Block common tracking keys
        const trackingPatterns = [
            /view/i, /watch/i, /count/i, /limit/i, /free/i, 
            /trial/i, /quota/i, /usage/i, /history/i,
            /recent/i, /played/i, /seen/i, /visited/i, 
            /session/i, /time/i, /expire/i, /24hour/i,
            /daily/i, /video/i, /num/i, /total/i
        ];
        
        const isTracking = trackingPatterns.some(pattern => pattern.test(key));
        
        if (isTracking) {
            console.log('🚫 BLOCKED tracking key:', key);
            return; // Don't save it
        }
        
        // Allow other keys
        return originalSetItem.call(this, key, value);
    };

    Storage.prototype.clear = function() {
        console.log('📝 Site trying to clear storage');
        // Allow clearing but log it
        return originalClear.call(this);
    };

    Storage.prototype.removeItem = function(key) {
        console.log('📝 Site trying to remove:', key);
        return originalRemoveItem.call(this, key);
    };

    // =============================================
    // Run immediately
    // =============================================    clearAllData();

    // Also run when DOM is ready
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', clearAllData);
    } else {
        clearAllData();
    }

    // Run after a short delay (in case site loads data later)
    setTimeout(clearAllData, 100);
    setTimeout(clearAllData, 500);
    setTimeout(clearAllData, 1000);
    setTimeout(clearAllData, 3000);

    // =============================================
    // Status indicator
    // =============================================
    function showStatus() {
        const statusDiv = document.createElement('div');
        statusDiv.style.cssText = `
            position: fixed;
            top: 10px;
            right: 10px;
            background: #2ed573;
            color: #000;
            padding: 10px 15px;
            border-radius: 5px;
            font-family: Arial, sans-serif;
            font-size: 12px;
            font-weight: bold;
            z-index: 999999;
            box-shadow: 0 2px 10px rgba(0,0,0,0.3);
        `;
        statusDiv.innerHTML = '♾️ Unlimited Mode Active<br><small style="font-weight:normal">Data cleared: ' + blockedKeys.size + ' keys blocked</small>';
        document.body.appendChild(statusDiv);

        // Show blocked keys in console
        if (blockedKeys.size > 0) {
            console.log('📊 Blocked tracking keys:', Array.from(blockedKeys));
        }
    }

    // Show status when page loads
    if (document.body) {
        showStatus();
    } else {
        document.addEventListener('DOMContentLoaded', showStatus);
    }
    // Clear data every 30 seconds
    setInterval(() => {
        clearAllData();
        console.log('🔄 Periodic cleanup done');
    }, 30000);

    // Clear data when leaving page
    window.addEventListener('beforeunload', clearAllData);

    // Clear data when tab becomes visible again
    document.addEventListener('visibilitychange', () => {
        if (!document.hidden) {
            clearAllData();
            console.log('🔄 Cleared on tab focus');
        }
    });

    console.log('✅ 1024videos Unlimited loaded successfully');
    console.log('💡 Watch unlimited videos - data will be auto-cleared');

})();