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

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

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

מתוזמן נעוץ נעול הועבר כללי - עזרה הדדית
101 פוסטים 30 כותבים 3.9k צפיות 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 תגובה אחרונה
    5

    שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

    נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

    בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

    הרשמה התחברות

    • התחברות

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

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