דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. כללי - עזרה הדדית
  3. שיתוף | SmartBlock PRO| תוסף לחסימת פרסומות מוחלטת באתרי חדשות כולל פרוג.

שיתוף | SmartBlock PRO| תוסף לחסימת פרסומות מוחלטת באתרי חדשות כולל פרוג.

מתוזמן נעוץ נעול הועבר כללי - עזרה הדדית
101 פוסטים 30 כותבים 2.7k צפיות 29 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • יאנג בויי מחובר
    יאנג בויי מחובר
    יאנג בוי
    מדריכים
    כתב נערך לאחרונה על ידי
    #101

    גרסת סקריפט טמפרמונקי למעוניינים:

    // ==UserScript==
    // @name         SmartBlock PRO - Tampermonkey Edition
    // @namespace    http://tampermonkey.net/
    // @version      1.7.1
    // @description  חסימת פרסומות באתרי חדשות ישראלים עם ממשק שליטה מותאם לטמפרמונקי
    // @author       SmartBlock PRO (Ported)
    // @match        *://*.prog.co.il/*
    // @match        *://*.kore.co.il/*
    // @match        *://*.emess.co.il/*
    // @match        *://*.jdn.co.il/*
    // @match        *://*.93fm.co.il/*
    // @match        *://*.kcm.fm/*
    // @match        *://*.hm-news.co.il/*
    // @match        *://*.babli.co.il/*
    // @run-at       document-start
    // @grant        GM_getValue
    // @grant        GM_setValue
    // @grant        GM_registerMenuCommand
    // @grant        GM_addStyle
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        // ==========================================
        // זיהוי האתר הנוכחי והגדרות מפתח
        // ==========================================
        const currentHost = window.location.hostname || '';
        const BLOCK_RULES_API_URL = 'https://next-js-chrome-exten-30q4.bolt.host/api/block-rules';
    
        let siteKey = '';
        let siteName = '';
    
        if (currentHost.includes('prog.co.il'))       { siteKey = 'prog'; siteName = 'פרוג'; }
        else if (currentHost.includes('jdn.co.il'))   { siteKey = 'jdn'; siteName = 'JDN'; }
        else if (currentHost.includes('kore.co.il'))  { siteKey = 'kore'; siteName = 'כל רגע'; }
        else if (currentHost.includes('emess.co.il')) { siteKey = 'emess'; siteName = 'קול חי'; }
        else if (currentHost.includes('kcm.fm'))      { siteKey = 'kcm'; siteName = 'KCM'; }
        else if (currentHost.includes('hm-news'))     { siteKey = 'hm-news'; siteName = 'המחדש'; }
        else if (currentHost.includes('babli.co.il')) { siteKey = 'babli'; siteName = 'בבלי'; }
        else if (currentHost.includes('93fm.co.il'))  { siteKey = 'jdn'; siteName = '93FM'; } // fallback
    
        // ==========================================
        // מערכת הגדרות (מחליף את ה-Popup)
        // ==========================================
        const masterProtection = GM_getValue('master_protection', true);
        const siteProtection = siteKey ? GM_getValue(siteKey, true) : true;
    
        // רישום תפריטים לטמפרמונקי
        GM_registerMenuCommand(`הגנה כללית (Master): ${masterProtection ? 'פעילה 🟢' : 'כבויה 🔴'}`, () => {
            GM_setValue('master_protection', !masterProtection);
            location.reload();
        });
    
        if (siteKey) {
            GM_registerMenuCommand(`הגנה באתר זה (${siteName}): ${siteProtection ? 'פעילה 🟢' : 'כבויה 🔴'}`, () => {
                GM_setValue(siteKey, !siteProtection);
                location.reload();
            });
        }
    
        // עצירת הסקריפט אם ההגנה כבויה
        if (!masterProtection || !siteProtection) {
            return;
        }
    
        // ==========================================
        // המרת חוקי חסימת רשת (rules.json) ל-CSS
        // ==========================================
        const NETWORK_BLOCK_CSS = `
            iframe[src*="advertising.jdn.co.il"], img[src*="advertising.jdn.co.il"],
            iframe[src*="clicka1.co.il"], img[src*="clicka1.co.il"],
            iframe[src*="ultra.clicka1.co.il"], img[src*="ultra.clicka1.co.il"],
            iframe[src*="jobik.co.il"], img[src*="jobik.co.il"],
            iframe[src*="a.kikar.co.il"], img[src*="a.kikar.co.il"],
            iframe[src*="video_ad"], video[src*="video_ad"]
            { display: none !important; height: 0 !important; visibility: hidden !important; width: 0 !important; }
        `;
    
        // ==========================================
        // CSS מיידי מובנה (HARDCODED_CSS)
        // ==========================================
        const HARDCODED_CSS = {
            prog: `
                .samUnitWrapper, .samCodeUnit, .samItem, .samBannerUnit2, .samUnitContent,
                [data-xf-init="sam-unit"], [data-position*="post_below"],
                .prog-classifieds-banner-container, ins.adsbygoogle,
                iframe[src*="googleads"], iframe[src*="doubleclick"],
                div[data-widget-key*="ad_"] {
                    display: none !important; height: 0 !important; visibility: hidden !important;
                }
                article.message[data-author="פרוגבוט"],
                article.message:has(a[username="פרוגבוט"]) {
                    display: none !important; height: 0 !important;
                    pointer-events: none !important; margin: 0 !important; padding: 0 !important;
                }
            `,
            jdn: `
                [id^="div-gpt-ad"], .ad-slot, .jdn-ad, iframe[src*="ads"],
                .ad-manager-slot, .maavaron, div.banner[role="banner"],
                #v-0-0, #v-0-1-0, div[id^="v-0-"],
                aside iframe, aside div[id^="v-0-"],
                div[ads="true"], .videoadplayer,
                .ultracap, .ucapc, .uc1,
                div:has(> div > img[src*="clicka1.co.il"]),
                div:has(> div > a > img[src*="clicka1.co.il"]),
                div:has(> div > .ubtn),
                div:has(> div > iframe[src*="jobik.co.il"]),
                div[style*="max-width: 1200px"]:has(img[src*="clicka1"]),
                figure:has(a > video),
                .article-content-inside a > video,
                a:has(video[autoplay]),
                iframe[src*="advertising.jdn.co.il"] {
                    display: none !important;
                }
                .video-js.vjs-ad-playing .vjs-tech,
                .video-js.vjs-ad-loading .vjs-tech,
                .video-js.vjs-ad-playing .vjs-poster,
                .video-js.vjs-ad-loading .vjs-poster {
                    opacity: 0 !important;
                }
                .video-js.vjs-ad-playing .preroll-blocker,
                .video-js.vjs-ad-playing [class*="preroll"],
                .video-js.vjs-ad-playing [class*="skip"] {
                    opacity: 0 !important;
                    pointer-events: none !important;
                }
            `,
            babli: `
                iframe[src*="a.kikar.co.il"],
                iframe[src*="kikar.co.il"],
                div:has(> iframe[src*="kikar.co.il"]),
                div:has(> iframe[src*="a.kikar.co.il"]),
                [class*="kikar-ad"], [id*="kikar-ad"],
                .sidebar-ad, .top-ad, .bottom-ad
                { display: none !important; }
            `,
            'hm-news': `
                #top_banner_div, #top_banner_btn,
                div[class*="aid-"][class*="zid-"],
                [id^="_4q"], [id^="_d6q"],
                #NewsItem > div.Scroll > div.video > div > div > div > a:has(video),
                a[href*="track.hm-news.co.il"],
                img[src*="media.aso1.net"],
                iframe[src*="media.hm-news.co.il"] {
                    display: none !important; height: 0 !important; visibility: hidden !important;
                    pointer-events: none !important; margin: 0 !important; padding: 0 !important;
                }
            `
        };
    
        // הזרקת CSS מובנה ו-CSS שמבוסס על rules.json
        let cssGroupKey = siteKey;
        if (['kore', 'jdn', 'emess', 'kcm'].includes(siteKey)) cssGroupKey = 'jdn'; // קיבוץ אתרי JDN
    
        if (cssGroupKey && HARDCODED_CSS[cssGroupKey]) {
            GM_addStyle(NETWORK_BLOCK_CSS + "\n" + HARDCODED_CSS[cssGroupKey]);
        }
    
        // ==========================================
        // חוקי ענן (משיכה משרת מרוחק)
        // ==========================================
        function applyRemoteRules() {
            const ctrl = new AbortController();
            const tid = setTimeout(() => ctrl.abort(), 3000);
            fetch(BLOCK_RULES_API_URL, { headers: { Accept: 'application/json' }, signal: ctrl.signal })
                .then(res => { clearTimeout(tid); return res.ok ? res.json() : null; })
                .then(rules => {
                    if (!Array.isArray(rules)) return;
                    rules.filter(r => Array.isArray(r.domains) && r.domains.some(d => currentHost.includes(d)))
                        .forEach(rule => {
                            if (!rule.site_key || !rule.css_selectors) return;
                            // בטמפרמונקי אנחנו כבר יודעים שההגנה דולקת (אחרת חזרנו מוקדם)
                            if (document.getElementById(`sb-dyn-${rule.site_key}`)) return;
                            GM_addStyle(rule.css_selectors);
                        });
                })
                .catch(() => {});
        }
        setTimeout(applyRemoteRules, 2000);
    
        // ==========================================
        // לוגיקת JS לפי אתרים (MutationObservers)
        // ==========================================
    
        // ---- PROG ----
        if (siteKey === 'prog') {
            const obs = new MutationObserver((mutations) => {
                for (const { addedNodes } of mutations) {
                    for (const node of addedNodes) {
                        if (node.nodeType !== 1) continue;
                        try {
                            if (node.classList?.contains('overlay') && node.querySelector('.samItem')) { node.remove(); continue; }
                            if (node.tagName === 'ARTICLE' && node.innerText?.includes('פרוגבוט')) { node.remove(); continue; }
                            node.querySelectorAll?.('article.message[data-author="פרוגבוט"]').forEach(b => b.remove());
                        } catch (_) {}
                    }
                }
            });
            document.addEventListener("DOMContentLoaded", () => {
                obs.observe(document.documentElement, { childList: true, subtree: true });
            });
        }
    
        // ---- BABLI ----
        else if (siteKey === 'babli') {
            const AD_SELECTOR = 'iframe[src*="kikar.co.il"], iframe[src*="a.kikar.co.il"]';
    
            function removeBabliAd(iframe) {
                try {
                    let parent = iframe.parentElement;
                    while (parent && parent !== document.body) {
                        const children = Array.from(parent.children).filter(c => c.offsetHeight > 0 || c.offsetWidth > 0);
                        if (children.length === 1 && children[0] === iframe) {
                            parent.remove();
                            return;
                        }
                        break;
                    }
                    iframe.remove();
                } catch (_) {}
            }
    
            const babliObs = new MutationObserver((mutations) => {
                for (const { addedNodes } of mutations) {
                    for (const node of addedNodes) {
                        if (node.nodeType !== 1) continue;
                        try {
                            if (node.matches?.('iframe') && node.src?.includes('kikar.co.il')) {
                                removeBabliAd(node); continue;
                            }
                            node.querySelectorAll?.(AD_SELECTOR).forEach(removeBabliAd);
                        } catch (_) {}
                    }
                }
            });
    
            document.addEventListener("DOMContentLoaded", () => {
                babliObs.observe(document.documentElement, { childList: true, subtree: true });
                const cleanBabli = () => { try { document.querySelectorAll(AD_SELECTOR).forEach(removeBabliAd); } catch (_) {} };
                setTimeout(cleanBabli, 400);
                setTimeout(cleanBabli, 1200);
                window.addEventListener('popstate', () => setTimeout(cleanBabli, 250));
            });
        }
    
        // ---- JDN / KORE / EMESS / 93FM / KCM ----
        else if (['kore', 'jdn', 'emess', 'kcm'].includes(siteKey)) {
            setInterval(() => {
                try {
                    // VideoJS preroll detection
                    document.querySelectorAll('.video-js').forEach(player => {
                        try {
                            const isAd = player.classList.contains('vjs-ad-playing') || player.classList.contains('vjs-ad-loading');
                            const video = player.querySelector('video');
    
                            if (!isAd) {
                                delete player.dataset.adSrc;
                                if (video && video.playbackRate > 4) video.playbackRate = 1;
                                return;
                            }
    
                            if (!video) return;
                            if (!video.muted) video.muted = true;
    
                            if (!player.dataset.adSrc && video.src) {
                                player.dataset.adSrc = video.src;
                            }
    
                            if (player.dataset.adSrc && video.src && video.src !== player.dataset.adSrc) return;
    
                            if (video.duration && isFinite(video.duration) && video.duration > 0) video.currentTime = video.duration;
                            if (video.playbackRate < 16) video.playbackRate = 16;
    
                            const skipBtn = player.querySelector('[class*="skip" i], [class*="Skip"]');
                            if (skipBtn) { try { skipBtn.click(); } catch (_) {} }
                        } catch (_) {}
                    });
    
                    // Flowplayer detection
                    document.querySelectorAll('.flowplayer').forEach(fpContainer => {
                        try {
                            if (fpContainer.classList.contains('is-cva') ||
                                fpContainer.querySelector('.fv-cva-skip') ||
                                (fpContainer.querySelector('video') && fpContainer.querySelector('video').src && fpContainer.querySelector('video').src.includes('video_ad'))) {
    
                                const nextVideoBtn = fpContainer.parentElement ? fpContainer.parentElement.querySelector('.fp-playlist-external a:nth-child(2)') : null;
                                if (nextVideoBtn && !nextVideoBtn.classList.contains('is-active')) {
                                    nextVideoBtn.click();
                                } else {
                                    const v = fpContainer.querySelector('video');
                                    if (v) { v.muted = true; if (v.duration) v.currentTime = v.duration; }
                                }
                            }
                        } catch (_) {}
                    });
                } catch (_) {}
            }, 50);
    
            const msObs = new MutationObserver((mutations) => {
                for (const { addedNodes } of mutations) {
                    for (const node of addedNodes) {
                        if (node.nodeType !== 1) continue;
                        try {
                            if (node.className && typeof node.className === 'string' && node.className.toLowerCase().includes('skip')) {
                                try { setTimeout(() => { if (node.offsetParent !== null) node.click(); }, 100); } catch (_) {}
                            }
    
                            const adVideos = node.querySelectorAll ? node.querySelectorAll('.videoadplayer, div[ads="true"] video') : [];
                            adVideos.forEach(adVideo => {
                                try {
                                    adVideo.muted = true;
                                    adVideo.style.display = 'none';
                                    adVideo.dispatchEvent(new Event('ended', { bubbles: true }));
                                    const skipBtn = document.querySelector('.skip-button');
                                    if (skipBtn) skipBtn.click();
                                } catch (_) {}
                            });
    
                            node.querySelectorAll?.('iframe[src*="advertising.jdn.co.il"], iframe[src*="clicka1.co.il"], div[id^="div-gpt-ad"], .ultracap, .ucapc, .uc1').forEach(el => { try { el.remove(); } catch (_) {} });
                        } catch (_) {}
                    }
                }
            });
            document.addEventListener("DOMContentLoaded", () => {
                msObs.observe(document.documentElement, { childList: true, subtree: true });
            });
        }
    
        // ---- HM-NEWS ----
        else if (siteKey === 'hm-news') {
            const hmObs = new MutationObserver(() => {
                try {
                    document.querySelectorAll('.video a video, a[href*="track.hm-news.co.il"] video').forEach(vid => {
                        try {
                            vid.muted = true;
                            vid.style.display = 'none';
                            if (vid.parentElement) vid.parentElement.style.display = 'none';
                        } catch (_) {}
                    });
                } catch (_) {}
            });
            document.addEventListener("DOMContentLoaded", () => {
                hmObs.observe(document.documentElement, { childList: true, subtree: true });
            });
        }
    
    })();
    

    בהצלחה, ותודה ל @פראירי על העבודה החשובה.

    תגובה 1 תגובה אחרונה
    4

    • התחברות

    • אין לך חשבון עדיין? הרשמה

    • התחברו או הירשמו כדי לחפש.
    • פוסט ראשון
      פוסט אחרון
    0
    • חוקי הפורום
    • פופולרי
    • לא נפתר
    • משתמשים
    • חיפוש גוגל בפורום
    • צור קשר