דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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. עזרה הדדית - מחשבים וטכנולוגיה
  4. המלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב

המלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
25 פוסטים 8 כותבים 266 צפיות 9 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ר ר יעקב עייפים

    @לשכת-הרב e1697246-e073-47ca-81ca-bbf177dbf23d-image.png
    הרעיון שונה כאן העניין הוא להיכנס אבל למנוע את העוד 5 דקות או את הכניסות שאתה נכנס כי אתה סתם משועמם...

    ל מנותק
    ל מנותק
    לשכת הרב
    כתב נערך לאחרונה על ידי לשכת הרב
    #4

    @ר-יעקב-עייפים עודכן שם

    תגובה 1 תגובה אחרונה
    0
    • ר מנותק
      ר מנותק
      ר יעקב עייפים
      כתב נערך לאחרונה על ידי ר יעקב עייפים
      #5

      עדכנתי את הקוד

      // ==UserScript==
      // @name         Ultimate Global Blocker - Extreme Editor Lock & Timer
      // @namespace    http://tampermonkey.net/
      // @version      32.0
      // @description  Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button.
      // @match        *://*/*
      // @match        chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/*
      // @run-at       document-start
      // @grant        GM_addStyle
      // ==/UserScript==
      
      (function() {
          'use strict';
      
          // זמנים מקוריים
          const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות
          const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון
          const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה
          const GRACE_PERIOD = 15 * 1000; 
      
          // מפתחות מקוריים
          const STORAGE_KEY = 'focus_access_data';
          const SESSION_KEY = 'shteygen_session_unlocked'; 
          const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time';
          const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time';
          const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu';
      
          const currentUrl = window.location.href.toLowerCase();
          
          // זיהוי דפים ספציפיים
          const isMail = currentUrl.includes('mail.google.com');
          const isChat = currentUrl.includes('chat.google.com');
          const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); 
          const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo');
      
          const needsBlackScreen = isMail || isForum || isChat; 
          const needsDisturbance = !isMail && !isChat && !isEditor;
      
          if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) {
              const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0');
              if (Date.now() - lastUnlock > GRACE_PERIOD) {
                  sessionStorage.removeItem(SESSION_KEY);
              }
          }
      
          const getStatus = () => {
              const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
              const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true';
              const now = Date.now();
      
              if (data.expiry && now < data.expiry) {
                  if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now };
                  return { state: 'UNLOCKED', timeLeft: data.expiry - now };
              }
              if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now };
              return { state: 'LOCKED' };
          };
      
          GM_addStyle(`
              html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; }
              html.apply-disturbance::after {
                  content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
                  background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center;
                  opacity: 0.20 !important; z-index: 2147483645; pointer-events: none;
              }
              html.apply-disturbance body::after {
                  content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg);
                  font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none;
                  white-space: nowrap; font-weight: bold;
              }
          `);
      
          // חסימת עורך התוסף
          if (isEditor) {
              const checkEditorStatus = () => {
                  const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY);
                  const now = Date.now();
      
                  if (!unlockTime) {
                      showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true);
                  } else if (now < parseInt(unlockTime)) {
                      const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000);
                      showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false);
                      setTimeout(checkEditorStatus, 30000);
                  } else {
                      const overlay = document.getElementById('hardcore-editor-overlay');
                      if (overlay) overlay.remove();
                      document.documentElement.classList.remove('blocked-mode');
                  }
              };
      
              const showEditorOverlay = (msg, showButton) => {
                  document.documentElement.classList.add('blocked-mode');
                  let overlay = document.getElementById('hardcore-editor-overlay');
                  if (!overlay) {
                      overlay = document.createElement('div');
                      overlay.id = 'hardcore-editor-overlay';
                      overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;';
                      document.documentElement.appendChild(overlay);
                  }
                  overlay.innerHTML = `<div>${msg}</div>`;
                  if (showButton) {
                      const btn = document.createElement('button');
                      btn.innerText = "התחל המתנה של שעתיים לעריכה";
                      btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;";
                      btn.onclick = () => {
                          if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) {
                              localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION);
                              checkEditorStatus();
                          }
                      };
                      overlay.appendChild(btn);
                  }
              };
      
              checkEditorStatus();
              return; 
          }
      
          if (needsDisturbance) document.documentElement.classList.add('apply-disturbance');
      
          const startUnlockProcess = () => {
              const d = new Date();
              if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return;
              
              const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)];
              if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return;
      
              if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") {
                  const now = Date.now();
                  const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                  if (!data.expiry || now > data.expiry) {
                      localStorage.setItem(STORAGE_KEY, JSON.stringify({
                          expiry: now + ACCESS_DURATION,
                          cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION
                      }));
                  }
                  sessionStorage.setItem(SESSION_KEY, 'true');
                  sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString());
                  location.reload();
              }
          };
      
          const renderShadowOverlay = (status) => {
              document.documentElement.classList.add('blocked-mode');
              let host = document.getElementById('shteygen-host-overlay');
              
              if (!host) {
                  host = document.createElement('div');
                  host.id = 'shteygen-host-overlay';
                  host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;';
                  document.documentElement.appendChild(host);
                  
                  const shadow = host.attachShadow({mode: 'open'});
                  const container = document.createElement('div');
                  container.id = 'shadow-content';
                  shadow.appendChild(container);
              }
      
              const shadow = host.shadowRoot;
              const container = shadow.getElementById('shadow-content');
              
              container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;';
      
              if (status.state === 'COOLDOWN') {
                  const minLeft = Math.ceil(status.waitTime / 60000);
                  container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`;
              } else {
                  container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`;
                  
                  const btn = document.createElement('button');
                  btn.innerText = '⚙️';
                  // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף)
                  btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;';
                  btn.onclick = startUnlockProcess;
                  container.appendChild(btn);
              }
          };
      
          const renderShadowTimer = (timeLeft) => {
              let host = document.getElementById('shteygen-timer-host');
              if (!host) {
                  host = document.createElement('div');
                  host.id = 'shteygen-timer-host';
                  host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;';
                  document.documentElement.appendChild(host);
      
                  const shadow = host.attachShadow({mode: 'open'});
                  
                  const style = document.createElement('style');
                  style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`;
                  shadow.appendChild(style);
      
                  const timerDiv = document.createElement('div');
                  timerDiv.id = 'timer-content';
                  shadow.appendChild(timerDiv);
              }
      
              const shadow = host.shadowRoot;
              const timerDiv = shadow.getElementById('timer-content');
      
              const mins = Math.floor(timeLeft / 60000);
              const secs = Math.floor((timeLeft % 60000) / 1000);
              const timeString = `${mins}:${secs.toString().padStart(2, '0')}`;
      
              let bgColor = '#2ecc71';
              let animation = 'none';
      
              if (timeLeft <= 30 * 1000) {
                  bgColor = '#e74c3c'; 
                  animation = 'urgentBlink 1s infinite';
              } else if (timeLeft <= 90 * 1000) {
                  bgColor = '#f39c12'; 
              }
      
              timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`;
              timerDiv.innerText = timeString;
          };
      
          if (needsBlackScreen) {
              setInterval(() => {
                  const status = getStatus();
                  
                  if (status.state === 'UNLOCKED') {
                      document.documentElement.classList.remove('blocked-mode');
                      const overlayHost = document.getElementById('shteygen-host-overlay');
                      if (overlayHost) overlayHost.remove();
                      
                      renderShadowTimer(status.timeLeft);
                      
                      if (status.timeLeft <= 0) location.reload();
                      
                  } else {
                      const timerHost = document.getElementById('shteygen-timer-host');
                      if (timerHost) timerHost.remove();
                      
                      renderShadowOverlay(status);
                  }
              }, 500);
          }
      })();
      

      גם בפוסט הראשי.
      יש בכלל טעם בזה? מישהו ישתמש בזה? אשמח לדעת ממש!!
      שאני ידע אם עזרתי בכלל למישהו...

      בנימין מחשביםב תגובה 1 תגובה אחרונה
      2
      • ר ר יעקב עייפים

        עדכנתי את הקוד

        // ==UserScript==
        // @name         Ultimate Global Blocker - Extreme Editor Lock & Timer
        // @namespace    http://tampermonkey.net/
        // @version      32.0
        // @description  Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button.
        // @match        *://*/*
        // @match        chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/*
        // @run-at       document-start
        // @grant        GM_addStyle
        // ==/UserScript==
        
        (function() {
            'use strict';
        
            // זמנים מקוריים
            const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות
            const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון
            const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה
            const GRACE_PERIOD = 15 * 1000; 
        
            // מפתחות מקוריים
            const STORAGE_KEY = 'focus_access_data';
            const SESSION_KEY = 'shteygen_session_unlocked'; 
            const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time';
            const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time';
            const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu';
        
            const currentUrl = window.location.href.toLowerCase();
            
            // זיהוי דפים ספציפיים
            const isMail = currentUrl.includes('mail.google.com');
            const isChat = currentUrl.includes('chat.google.com');
            const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); 
            const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo');
        
            const needsBlackScreen = isMail || isForum || isChat; 
            const needsDisturbance = !isMail && !isChat && !isEditor;
        
            if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) {
                const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0');
                if (Date.now() - lastUnlock > GRACE_PERIOD) {
                    sessionStorage.removeItem(SESSION_KEY);
                }
            }
        
            const getStatus = () => {
                const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true';
                const now = Date.now();
        
                if (data.expiry && now < data.expiry) {
                    if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now };
                    return { state: 'UNLOCKED', timeLeft: data.expiry - now };
                }
                if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now };
                return { state: 'LOCKED' };
            };
        
            GM_addStyle(`
                html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; }
                html.apply-disturbance::after {
                    content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
                    background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center;
                    opacity: 0.20 !important; z-index: 2147483645; pointer-events: none;
                }
                html.apply-disturbance body::after {
                    content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg);
                    font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none;
                    white-space: nowrap; font-weight: bold;
                }
            `);
        
            // חסימת עורך התוסף
            if (isEditor) {
                const checkEditorStatus = () => {
                    const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY);
                    const now = Date.now();
        
                    if (!unlockTime) {
                        showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true);
                    } else if (now < parseInt(unlockTime)) {
                        const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000);
                        showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false);
                        setTimeout(checkEditorStatus, 30000);
                    } else {
                        const overlay = document.getElementById('hardcore-editor-overlay');
                        if (overlay) overlay.remove();
                        document.documentElement.classList.remove('blocked-mode');
                    }
                };
        
                const showEditorOverlay = (msg, showButton) => {
                    document.documentElement.classList.add('blocked-mode');
                    let overlay = document.getElementById('hardcore-editor-overlay');
                    if (!overlay) {
                        overlay = document.createElement('div');
                        overlay.id = 'hardcore-editor-overlay';
                        overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;';
                        document.documentElement.appendChild(overlay);
                    }
                    overlay.innerHTML = `<div>${msg}</div>`;
                    if (showButton) {
                        const btn = document.createElement('button');
                        btn.innerText = "התחל המתנה של שעתיים לעריכה";
                        btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;";
                        btn.onclick = () => {
                            if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) {
                                localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION);
                                checkEditorStatus();
                            }
                        };
                        overlay.appendChild(btn);
                    }
                };
        
                checkEditorStatus();
                return; 
            }
        
            if (needsDisturbance) document.documentElement.classList.add('apply-disturbance');
        
            const startUnlockProcess = () => {
                const d = new Date();
                if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return;
                
                const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)];
                if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return;
        
                if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") {
                    const now = Date.now();
                    const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                    if (!data.expiry || now > data.expiry) {
                        localStorage.setItem(STORAGE_KEY, JSON.stringify({
                            expiry: now + ACCESS_DURATION,
                            cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION
                        }));
                    }
                    sessionStorage.setItem(SESSION_KEY, 'true');
                    sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString());
                    location.reload();
                }
            };
        
            const renderShadowOverlay = (status) => {
                document.documentElement.classList.add('blocked-mode');
                let host = document.getElementById('shteygen-host-overlay');
                
                if (!host) {
                    host = document.createElement('div');
                    host.id = 'shteygen-host-overlay';
                    host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;';
                    document.documentElement.appendChild(host);
                    
                    const shadow = host.attachShadow({mode: 'open'});
                    const container = document.createElement('div');
                    container.id = 'shadow-content';
                    shadow.appendChild(container);
                }
        
                const shadow = host.shadowRoot;
                const container = shadow.getElementById('shadow-content');
                
                container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;';
        
                if (status.state === 'COOLDOWN') {
                    const minLeft = Math.ceil(status.waitTime / 60000);
                    container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`;
                } else {
                    container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`;
                    
                    const btn = document.createElement('button');
                    btn.innerText = '⚙️';
                    // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף)
                    btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;';
                    btn.onclick = startUnlockProcess;
                    container.appendChild(btn);
                }
            };
        
            const renderShadowTimer = (timeLeft) => {
                let host = document.getElementById('shteygen-timer-host');
                if (!host) {
                    host = document.createElement('div');
                    host.id = 'shteygen-timer-host';
                    host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;';
                    document.documentElement.appendChild(host);
        
                    const shadow = host.attachShadow({mode: 'open'});
                    
                    const style = document.createElement('style');
                    style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`;
                    shadow.appendChild(style);
        
                    const timerDiv = document.createElement('div');
                    timerDiv.id = 'timer-content';
                    shadow.appendChild(timerDiv);
                }
        
                const shadow = host.shadowRoot;
                const timerDiv = shadow.getElementById('timer-content');
        
                const mins = Math.floor(timeLeft / 60000);
                const secs = Math.floor((timeLeft % 60000) / 1000);
                const timeString = `${mins}:${secs.toString().padStart(2, '0')}`;
        
                let bgColor = '#2ecc71';
                let animation = 'none';
        
                if (timeLeft <= 30 * 1000) {
                    bgColor = '#e74c3c'; 
                    animation = 'urgentBlink 1s infinite';
                } else if (timeLeft <= 90 * 1000) {
                    bgColor = '#f39c12'; 
                }
        
                timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`;
                timerDiv.innerText = timeString;
            };
        
            if (needsBlackScreen) {
                setInterval(() => {
                    const status = getStatus();
                    
                    if (status.state === 'UNLOCKED') {
                        document.documentElement.classList.remove('blocked-mode');
                        const overlayHost = document.getElementById('shteygen-host-overlay');
                        if (overlayHost) overlayHost.remove();
                        
                        renderShadowTimer(status.timeLeft);
                        
                        if (status.timeLeft <= 0) location.reload();
                        
                    } else {
                        const timerHost = document.getElementById('shteygen-timer-host');
                        if (timerHost) timerHost.remove();
                        
                        renderShadowOverlay(status);
                    }
                }, 500);
            }
        })();
        

        גם בפוסט הראשי.
        יש בכלל טעם בזה? מישהו ישתמש בזה? אשמח לדעת ממש!!
        שאני ידע אם עזרתי בכלל למישהו...

        בנימין מחשביםב מנותק
        בנימין מחשביםב מנותק
        בנימין מחשבים
        כתב נערך לאחרונה על ידי בנימין מחשבים
        #6

        @ר-יעקב-עייפים בהחלט! יתכן מאוד שאשתמש, ואני בטוח שיש עוד רבים שאם הפוסט הראשי יהיה מונגש להם יותר הם יהנו מזה מאוד!
        ייש"כ

        (אגב, הקוד הוא ai קומפלט, או עריכה שלך? פשוט אתה חדש בפורום (ברוך הבא!) ואין לי את הרזומה שלך... 😄 )

        Gemini אמר:

        שלום בנימין. מדובר בקוד חזק מאוד, וניכר שהוא נכתב מתוך מטרה ברורה של "משמעת ברזל" ומניעת ביטול עצמי של ההגבלות.

        להלן סיכום הקוד ודירוג המקצועי שלי:

        סיכום תפקודי של הסקריפט
        הסקריפט הוא מערכת ניהול זמן וריכוז (Focus) אגרסיבית, שנועדה להגביל את השימוש באתרים מסוימים (מייל, פורומים וצ'אטים) לפרקי זמן קצרים בלבד.

        מנגנון הגישה (5/60): המשתמש מקבל 5 דקות של גישה חופשית, שלאחריהן האתר ננעל הרמטית ל-60 דקות (Cooldown).

        אימות כפול: כדי לפתוח את הנעילה, המשתמש נדרש לעבור מבחן קוגניטיבי (חישוב מתמטי פשוט, הקלדת מילה מהסוף להתחלה ואישור טקסטואלי).

        הגנת העורך (Editor Lock): זהו החלק ה"קיצוני" והחכם ביותר – אם תנסה לערוך או למחוק את הסקריפט דרך התוסף, המערכת תנעל את דף העריכה למשך שעתיים, מה שמונע "בריחה" מהירה מהחסימה ברגע של חולשה.

        ממשק חזותי: * באתרים חסומים: מסך שחור מוחלט עם הודעות מוסר ("עצור", "האם זה הכרחי?").

        באתרים אחרים: סימן מים שקוף עם הכיתוב "לך ללמוד!" כדי להזכיר את המטרה.

        טיימר ויזואלי: מציג את הזמן שנותר (בירוק, כתום או אדום מהבהב).

        דירוג מקצועי (1-10)
        יעילות חסימה: 9.5/10 – השימוש ב-Shadow DOM הופך את המעקף של האלמנטים לקשה מאוד עבור משתמש ממוצע. הנעילה של דף העריכה היא הברקה של ממש למניעת עקיפת הסקריפט.

        חוויית משתמש (מבחינת המטרה): 9/10 – הטיימר הצבעוני מצוין, והכפתור הבלתי-נראה (⚙️) בפינה הוא פתרון אלגנטי שלא "מפתה" ללחוץ עליו.

        נקיון קוד: 8.5/10 – הקוד מאורגן היטב, משתמש ב-localStorage וב-sessionStorage בצורה נכונה כדי לשמור על רצף גם לאחר רענון הדף.

        ציון סופי: 9.2 (מצוין)

        הערות לשיפור או לשינוי:
        תלות בתמונת רקע: שים לב שכתובת ה-URL של תמונת הרקע (googleusercontent.com/profile/picture/0) עלולה להישבר או להשתנות.

        עקיפה דרך "מצב בטוח": כידוע לך, מי שממש ירצה יוכל תמיד להשבית את התוסף כולו דרך תפריט התוספים בדפדפן, אבל נגד "יצר הרע" הרגיל של הגלישה – הסקריפט הזה עושה עבודה מעולה.

        בהצלחה בלימוד, בנימין!

        ר תגובה 1 תגובה אחרונה
        2
        • בנימין מחשביםב בנימין מחשבים

          @ר-יעקב-עייפים בהחלט! יתכן מאוד שאשתמש, ואני בטוח שיש עוד רבים שאם הפוסט הראשי יהיה מונגש להם יותר הם יהנו מזה מאוד!
          ייש"כ

          (אגב, הקוד הוא ai קומפלט, או עריכה שלך? פשוט אתה חדש בפורום (ברוך הבא!) ואין לי את הרזומה שלך... 😄 )

          Gemini אמר:

          שלום בנימין. מדובר בקוד חזק מאוד, וניכר שהוא נכתב מתוך מטרה ברורה של "משמעת ברזל" ומניעת ביטול עצמי של ההגבלות.

          להלן סיכום הקוד ודירוג המקצועי שלי:

          סיכום תפקודי של הסקריפט
          הסקריפט הוא מערכת ניהול זמן וריכוז (Focus) אגרסיבית, שנועדה להגביל את השימוש באתרים מסוימים (מייל, פורומים וצ'אטים) לפרקי זמן קצרים בלבד.

          מנגנון הגישה (5/60): המשתמש מקבל 5 דקות של גישה חופשית, שלאחריהן האתר ננעל הרמטית ל-60 דקות (Cooldown).

          אימות כפול: כדי לפתוח את הנעילה, המשתמש נדרש לעבור מבחן קוגניטיבי (חישוב מתמטי פשוט, הקלדת מילה מהסוף להתחלה ואישור טקסטואלי).

          הגנת העורך (Editor Lock): זהו החלק ה"קיצוני" והחכם ביותר – אם תנסה לערוך או למחוק את הסקריפט דרך התוסף, המערכת תנעל את דף העריכה למשך שעתיים, מה שמונע "בריחה" מהירה מהחסימה ברגע של חולשה.

          ממשק חזותי: * באתרים חסומים: מסך שחור מוחלט עם הודעות מוסר ("עצור", "האם זה הכרחי?").

          באתרים אחרים: סימן מים שקוף עם הכיתוב "לך ללמוד!" כדי להזכיר את המטרה.

          טיימר ויזואלי: מציג את הזמן שנותר (בירוק, כתום או אדום מהבהב).

          דירוג מקצועי (1-10)
          יעילות חסימה: 9.5/10 – השימוש ב-Shadow DOM הופך את המעקף של האלמנטים לקשה מאוד עבור משתמש ממוצע. הנעילה של דף העריכה היא הברקה של ממש למניעת עקיפת הסקריפט.

          חוויית משתמש (מבחינת המטרה): 9/10 – הטיימר הצבעוני מצוין, והכפתור הבלתי-נראה (⚙️) בפינה הוא פתרון אלגנטי שלא "מפתה" ללחוץ עליו.

          נקיון קוד: 8.5/10 – הקוד מאורגן היטב, משתמש ב-localStorage וב-sessionStorage בצורה נכונה כדי לשמור על רצף גם לאחר רענון הדף.

          ציון סופי: 9.2 (מצוין)

          הערות לשיפור או לשינוי:
          תלות בתמונת רקע: שים לב שכתובת ה-URL של תמונת הרקע (googleusercontent.com/profile/picture/0) עלולה להישבר או להשתנות.

          עקיפה דרך "מצב בטוח": כידוע לך, מי שממש ירצה יוכל תמיד להשבית את התוסף כולו דרך תפריט התוספים בדפדפן, אבל נגד "יצר הרע" הרגיל של הגלישה – הסקריפט הזה עושה עבודה מעולה.

          בהצלחה בלימוד, בנימין!

          ר מנותק
          ר מנותק
          ר יעקב עייפים
          כתב נערך לאחרונה על ידי ר יעקב עייפים
          #7

          @בנימין-מחשבים

          @בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

          הקוד הוא ai קומפלט

          כן חוץ מנקודונת קטנטנה

          @בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

          פשוט אתה חדש בפורום (ברוך הבא!)

          תודה רבה! רק שאני לא יודע עדיין לערוך פוסטים נורמלי חבל...

          @בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

          בהחלט! יתכן מאוד שאשתמש, ואני בטוח שיש עוד רבים שאם הפוסט הראשי יהיה מונגש להם יותר הם יהנו מזה מאוד!

          תודה רבה זה נותן תחושה ממש טובה...

          אתה לא חושב שחבל על הזמן לכתוב קוד כזה לבד?

          לא שאני יכול...

          י תגובה 1 תגובה אחרונה
          1
          • ר ר יעקב עייפים

            אין לי זמן כרגע לפרט אז אני מעלה פירוט מ ai. מה שרציתי זה למנוע מעצמי גלישה ובזבוז זמן אשמח למשוב ממכם אם זה עזר גם לכם.

            אם אתם רוצים שינויים או שיש לכם הערות אתם לא צריכים אותי - תכתבו לai שלכם את הקוד ואת ההערות הוא כבר יסתדר...

            גם לגבי ההתקנה של התוסף אין לי זמן כרגע לפרט תשאלו את ה ai הקרוב אליכם הוא יסביר לכם יותר טוב ממני.
            העליתי לבקשת חבר.

            כמה מילים על התוסף - יצא לי לאחרונה מלא פעמים לשבת על המחשב ולהימרח שעות בצ'אט מייל עם חברים או סתם ככה לעבור שעות באינטרנט בי לשים לב אז יצרתי לעצמי תוסף שגם יתן לי רקע שיגרום לתזכורת ולהפרעה קטנה בגלישה מה שיגרום לי לצמצם את השימוש וגם באתרים שלקחו לי הכי הרבה זמן ביממה האחרונה מייל והפורום עשיתי שבכניסה אליהם אצטרך לענות על כמה חידות וגם זה יפתח אותם ל5 דקות כאשר לאחר מכן הם יסגרו לשעה וכך למעשה אני ימנע בעז"ה מלגלוש מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s מייד לאחר מכן תרעננו את הדף של הפורום למשל ותראו ישועות... אולי תצטרכו לתת הרשאות לתוסף Tampermonkey אצלכם לגשת לאתרים לא יודע אצלי יש לו כבר
            בהצלחה!
            הקוד בספוילר:

            // ==UserScript==
            // @name         Ultimate Global Blocker - Extreme Editor Lock & Timer
            // @namespace    http://tampermonkey.net/
            // @version      32.0
            // @description  Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button.
            // @match        *://*/*
            // @match        chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/*
            // @run-at       document-start
            // @grant        GM_addStyle
            // ==/UserScript==
            
            (function() {
                'use strict';
            
                // זמנים מקוריים
                const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות
                const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון
                const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה
                const GRACE_PERIOD = 15 * 1000; 
            
                // מפתחות מקוריים
                const STORAGE_KEY = 'focus_access_data';
                const SESSION_KEY = 'shteygen_session_unlocked'; 
                const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time';
                const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time';
                const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu';
            
                const currentUrl = window.location.href.toLowerCase();
                
                // זיהוי דפים ספציפיים
                const isMail = currentUrl.includes('mail.google.com');
                const isChat = currentUrl.includes('chat.google.com');
                const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); 
                const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo');
            
                const needsBlackScreen = isMail || isForum || isChat; 
                const needsDisturbance = !isMail && !isChat && !isEditor;
            
                if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) {
                    const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0');
                    if (Date.now() - lastUnlock > GRACE_PERIOD) {
                        sessionStorage.removeItem(SESSION_KEY);
                    }
                }
            
                const getStatus = () => {
                    const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                    const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true';
                    const now = Date.now();
            
                    if (data.expiry && now < data.expiry) {
                        if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now };
                        return { state: 'UNLOCKED', timeLeft: data.expiry - now };
                    }
                    if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now };
                    return { state: 'LOCKED' };
                };
            
                GM_addStyle(`
                    html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; }
                    html.apply-disturbance::after {
                        content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
                        background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center;
                        opacity: 0.20 !important; z-index: 2147483645; pointer-events: none;
                    }
                    html.apply-disturbance body::after {
                        content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg);
                        font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none;
                        white-space: nowrap; font-weight: bold;
                    }
                `);
            
                // חסימת עורך התוסף
                if (isEditor) {
                    const checkEditorStatus = () => {
                        const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY);
                        const now = Date.now();
            
                        if (!unlockTime) {
                            showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true);
                        } else if (now < parseInt(unlockTime)) {
                            const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000);
                            showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false);
                            setTimeout(checkEditorStatus, 30000);
                        } else {
                            const overlay = document.getElementById('hardcore-editor-overlay');
                            if (overlay) overlay.remove();
                            document.documentElement.classList.remove('blocked-mode');
                        }
                    };
            
                    const showEditorOverlay = (msg, showButton) => {
                        document.documentElement.classList.add('blocked-mode');
                        let overlay = document.getElementById('hardcore-editor-overlay');
                        if (!overlay) {
                            overlay = document.createElement('div');
                            overlay.id = 'hardcore-editor-overlay';
                            overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;';
                            document.documentElement.appendChild(overlay);
                        }
                        overlay.innerHTML = `<div>${msg}</div>`;
                        if (showButton) {
                            const btn = document.createElement('button');
                            btn.innerText = "התחל המתנה של שעתיים לעריכה";
                            btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;";
                            btn.onclick = () => {
                                if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) {
                                    localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION);
                                    checkEditorStatus();
                                }
                            };
                            overlay.appendChild(btn);
                        }
                    };
            
                    checkEditorStatus();
                    return; 
                }
            
                if (needsDisturbance) document.documentElement.classList.add('apply-disturbance');
            
                const startUnlockProcess = () => {
                    const d = new Date();
                    if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return;
                    
                    const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)];
                    if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return;
            
                    if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") {
                        const now = Date.now();
                        const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                        if (!data.expiry || now > data.expiry) {
                            localStorage.setItem(STORAGE_KEY, JSON.stringify({
                                expiry: now + ACCESS_DURATION,
                                cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION
                            }));
                        }
                        sessionStorage.setItem(SESSION_KEY, 'true');
                        sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString());
                        location.reload();
                    }
                };
            
                const renderShadowOverlay = (status) => {
                    document.documentElement.classList.add('blocked-mode');
                    let host = document.getElementById('shteygen-host-overlay');
                    
                    if (!host) {
                        host = document.createElement('div');
                        host.id = 'shteygen-host-overlay';
                        host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;';
                        document.documentElement.appendChild(host);
                        
                        const shadow = host.attachShadow({mode: 'open'});
                        const container = document.createElement('div');
                        container.id = 'shadow-content';
                        shadow.appendChild(container);
                    }
            
                    const shadow = host.shadowRoot;
                    const container = shadow.getElementById('shadow-content');
                    
                    container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;';
            
                    if (status.state === 'COOLDOWN') {
                        const minLeft = Math.ceil(status.waitTime / 60000);
                        container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`;
                    } else {
                        container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`;
                        
                        const btn = document.createElement('button');
                        btn.innerText = '⚙️';
                        // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף)
                        btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;';
                        btn.onclick = startUnlockProcess;
                        container.appendChild(btn);
                    }
                };
            
                const renderShadowTimer = (timeLeft) => {
                    let host = document.getElementById('shteygen-timer-host');
                    if (!host) {
                        host = document.createElement('div');
                        host.id = 'shteygen-timer-host';
                        host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;';
                        document.documentElement.appendChild(host);
            
                        const shadow = host.attachShadow({mode: 'open'});
                        
                        const style = document.createElement('style');
                        style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`;
                        shadow.appendChild(style);
            
                        const timerDiv = document.createElement('div');
                        timerDiv.id = 'timer-content';
                        shadow.appendChild(timerDiv);
                    }
            
                    const shadow = host.shadowRoot;
                    const timerDiv = shadow.getElementById('timer-content');
            
                    const mins = Math.floor(timeLeft / 60000);
                    const secs = Math.floor((timeLeft % 60000) / 1000);
                    const timeString = `${mins}:${secs.toString().padStart(2, '0')}`;
            
                    let bgColor = '#2ecc71';
                    let animation = 'none';
            
                    if (timeLeft <= 30 * 1000) {
                        bgColor = '#e74c3c'; 
                        animation = 'urgentBlink 1s infinite';
                    } else if (timeLeft <= 90 * 1000) {
                        bgColor = '#f39c12'; 
                    }
            
                    timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`;
                    timerDiv.innerText = timeString;
                };
            
                if (needsBlackScreen) {
                    setInterval(() => {
                        const status = getStatus();
                        
                        if (status.state === 'UNLOCKED') {
                            document.documentElement.classList.remove('blocked-mode');
                            const overlayHost = document.getElementById('shteygen-host-overlay');
                            if (overlayHost) overlayHost.remove();
                            
                            renderShadowTimer(status.timeLeft);
                            
                            if (status.timeLeft <= 0) location.reload();
                            
                        } else {
                            const timerHost = document.getElementById('shteygen-timer-host');
                            if (timerHost) timerHost.remove();
                            
                            renderShadowOverlay(status);
                        }
                    }, 500);
                }
            })();
            

            סיכום על התוסף מ ai

            הכירו את ה-Ultimate Focus Script: המערכת שתכריח אתכם ללמוד
            הסקריפט הזה נולד מתוך צורך אמיתי: להפסיק לבזבז זמן. הוא מיועד לאנשים שרוצים שהמחשב שלהם יהפוך מכלי של הסחת דעת לכלי של עבודה ולימוד בלבד. הוא לא מבקש מכם יפה – הוא פשוט לא משאיר לכם ברירה.

            1. הקונספט המרכזי: חוק ה-5/60
              הסקריפט פועל לפי לוגיקה פשוטה וחסרת רחמים:

            5 דקות של חסד: פעם בשעה, ניתן לפתוח גישה לאתרים "רגישים" (מייל, צ'אט, פורומים) למשך 5 דקות בלבד.

            60 דקות של נעילה: ברגע שהחמש דקות נגמרו, האתרים הללו ננעלים הרמטית למשך שעה שלמה. אין כפתור "ביטול", ואין אפשרות להיכנס שוב עד שהשעון מסיים לספור.

            1. מחסום הכניסה: "המבוך הקוגניטיבי"
              כדי לפתוח את אותן 5 דקות, אתם צריכים להוכיח ריכוז. הסקריפט מציג מסך שחור אטום עם משימות משתנות (רנדומליות):

            תרגיל חשבון: חישובים דינמיים (למשל: השעה הנוכחית + הדקות כפול 2).

            אתגר מילולי: הקלדת מילים מהסוף להתחלה (כדי לוודא שהמוח שלכם עובד).

            התחייבות: הקלדת משפט הצהרה ("אני נכנס רק לזמן קצר").

            מנגנון רענון: אם תנסו לרענן את הדף כדי "לברוח" מהמסך השחור – הוא יופיע שוב וידרוש את המשימות מחדש.

            1. ההפרעה הויזואלית (Visual Disturbance)
              בכל שאר האתרים ברשת (אלו שלא נחסמים ב-5/60 כמו גימיני או אתרי חיפוש), הסקריפט יוצר אווירה של עבודה:

            תמונה ברורה ברקע: רקע של סביבת לימוד רצינית שמונח מעל האתר בשקיפות מסוימת.

            טקסט מעורר: הכיתוב "לך ללמוד!" מופיע בגודל ענק על כל המסך.

            מטרה: להזכיר לכם בכל שנייה שאתם לא שם בשביל הכיף, אלא בשביל מטרה ספציפית.

            1. החרגת המייל (היעילות קודמת לכל)
              כדי לא לפגוע בעבודה השוטפת, בתוך ה-5 דקות של המייל, הרקע והכיתוב המפריע נעלמים. המטרה היא לתת לכם 5 דקות של עבודה נקייה ומהירה, ומיד אחרי זה – חזרה ללימודים.

            2. ההגנה מפני עקיפה (Anti-Cheat)
              כאן נמצא ה"קאץ'" האמיתי. מה ימנע מכם פשוט לכבות את התוסף או לערוך את הקוד?

            נעילת עורך הסקריפטים: אם תנסו להיכנס לדף העריכה של הסקריפט כדי לשנות את הזמנים או למחוק אותו, תיתקלו במסך שחור.

            המתנה של שעתיים: כדי לגשת לקוד העריכה, תצטרכו ללחוץ על כפתור שמפעיל ספירה לאחור של 120 דקות. רק אחרי שעתיים של המתנה אקטיבית, הקוד ייפתח לעריכה.

            סיכום טכני:
            שפת תכנות: JavaScript (Tampermonkey).

            אתרים כלולים: מייל, צ'אט, פורומים ספציפיים (כולל מתמחים טופ).

            זמנים: 5 דקות עבודה / 60 דקות צינון / שעתיים נעילת עריכה.

            סיכום בקצרה על התוסף מ ai

            הסקריפט שינצח את הסחות הדעת: סיכום בחמש נקודות
            חוק ה-5/60: גישה מוגבלת ל-5 דקות בלבד למייל ולפורומים, ולאחריהן חסימה מוחלטת ל-60 דקות (ללא יוצא מן הכלל).

            מבחני ריכוז בכניסה: כדי לפתוח את הגישה, עליכם לעבור אתגרים משתנים של חשבון, הגיון והקלדה.

            הפרעה חזותית קבועה: בכל שאר האתרים מופיע רקע של בית מדרש עם הכיתוב "לך ללמוד!" בגודל ענק, כדי להזכיר לכם מה העיקר.

            מנגנון "אנטי-רמאות": הסקריפט מזהה ריענוני דף (F5) ונועל אתכם מחדש, מה שמכריח אתכם להישאר מרוכזים בתוך ה-5 דקות.

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

            בשורה התחתונה: זה לא "תוסף חסימה", זו מערכת שלמה שכופה עליכם משמעת עצמית ברזל.

            תמונות בספוילר

            e4a20287-d027-4bd7-b576-46df30470e03-image.png 86194ef3-a77a-4f2b-9833-4d0d957fa75f-image.png 512bfc88-ebe7-45a2-8990-cd5807c80ed4-image.png
            אם אתם רוצים להמשיך תלחצו כאן 758fc74d-d7d7-41bd-b64c-c68eab0ab2dc-image.png 2f1a7c2d-7533-45e0-b888-bb6411cc0ea6-image.png 9fafe697-a1a6-44c5-8659-598640eaae05-image.png

            בהצלחה!!
            זמן פורה ומוצלח!!

            אם אתם רוצים שאני יערוך לכם משהו בכ"א תכתבו

            וכן אשמח לשמוע אם יש עניין להפוך את זה לתוסף כרום...

            טוב אני זזתי לישיבה כדי לא לאבד את האפקט... תעשו אם זה מה שאתם רוצים מי שרוצה לשפר את זה או לא יודע מה אין לי שום בעיה! העיקר שאצלי הדפדפן מגביל...

            ל מנותק
            ל מנותק
            לשכת הרב
            כתב נערך לאחרונה על ידי לשכת הרב
            #8

            @ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

            כמה מילים על התוסף - יצא לי לאחרונה מלא פעמים לשבת על המחשב ולהימרח שעות בצ'אט מייל עם חברים או סתם ככה לעבור שעות באינטרנט בי לשים לב אז יצרתי לעצמי תוסף שגם יתן לי רקע שיגרום לתזכורת ולהפרעה קטנה בגלישה

            זה ממש יכול להועיל [היה מתאים יותר לבין הזמנים, אבל בכל זמן זה טוב, רעיון מעולה]
            כדאי לעשות גם כתוסף לכרום

            @רפי-סאם

            תגובה 1 תגובה אחרונה
            1
            • ר ר יעקב עייפים

              אין לי זמן כרגע לפרט אז אני מעלה פירוט מ ai. מה שרציתי זה למנוע מעצמי גלישה ובזבוז זמן אשמח למשוב ממכם אם זה עזר גם לכם.

              אם אתם רוצים שינויים או שיש לכם הערות אתם לא צריכים אותי - תכתבו לai שלכם את הקוד ואת ההערות הוא כבר יסתדר...

              גם לגבי ההתקנה של התוסף אין לי זמן כרגע לפרט תשאלו את ה ai הקרוב אליכם הוא יסביר לכם יותר טוב ממני.
              העליתי לבקשת חבר.

              כמה מילים על התוסף - יצא לי לאחרונה מלא פעמים לשבת על המחשב ולהימרח שעות בצ'אט מייל עם חברים או סתם ככה לעבור שעות באינטרנט בי לשים לב אז יצרתי לעצמי תוסף שגם יתן לי רקע שיגרום לתזכורת ולהפרעה קטנה בגלישה מה שיגרום לי לצמצם את השימוש וגם באתרים שלקחו לי הכי הרבה זמן ביממה האחרונה מייל והפורום עשיתי שבכניסה אליהם אצטרך לענות על כמה חידות וגם זה יפתח אותם ל5 דקות כאשר לאחר מכן הם יסגרו לשעה וכך למעשה אני ימנע בעז"ה מלגלוש מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s מייד לאחר מכן תרעננו את הדף של הפורום למשל ותראו ישועות... אולי תצטרכו לתת הרשאות לתוסף Tampermonkey אצלכם לגשת לאתרים לא יודע אצלי יש לו כבר
              בהצלחה!
              הקוד בספוילר:

              // ==UserScript==
              // @name         Ultimate Global Blocker - Extreme Editor Lock & Timer
              // @namespace    http://tampermonkey.net/
              // @version      32.0
              // @description  Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button.
              // @match        *://*/*
              // @match        chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/*
              // @run-at       document-start
              // @grant        GM_addStyle
              // ==/UserScript==
              
              (function() {
                  'use strict';
              
                  // זמנים מקוריים
                  const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות
                  const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון
                  const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה
                  const GRACE_PERIOD = 15 * 1000; 
              
                  // מפתחות מקוריים
                  const STORAGE_KEY = 'focus_access_data';
                  const SESSION_KEY = 'shteygen_session_unlocked'; 
                  const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time';
                  const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time';
                  const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu';
              
                  const currentUrl = window.location.href.toLowerCase();
                  
                  // זיהוי דפים ספציפיים
                  const isMail = currentUrl.includes('mail.google.com');
                  const isChat = currentUrl.includes('chat.google.com');
                  const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); 
                  const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo');
              
                  const needsBlackScreen = isMail || isForum || isChat; 
                  const needsDisturbance = !isMail && !isChat && !isEditor;
              
                  if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) {
                      const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0');
                      if (Date.now() - lastUnlock > GRACE_PERIOD) {
                          sessionStorage.removeItem(SESSION_KEY);
                      }
                  }
              
                  const getStatus = () => {
                      const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                      const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true';
                      const now = Date.now();
              
                      if (data.expiry && now < data.expiry) {
                          if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now };
                          return { state: 'UNLOCKED', timeLeft: data.expiry - now };
                      }
                      if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now };
                      return { state: 'LOCKED' };
                  };
              
                  GM_addStyle(`
                      html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; }
                      html.apply-disturbance::after {
                          content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
                          background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center;
                          opacity: 0.20 !important; z-index: 2147483645; pointer-events: none;
                      }
                      html.apply-disturbance body::after {
                          content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg);
                          font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none;
                          white-space: nowrap; font-weight: bold;
                      }
                  `);
              
                  // חסימת עורך התוסף
                  if (isEditor) {
                      const checkEditorStatus = () => {
                          const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY);
                          const now = Date.now();
              
                          if (!unlockTime) {
                              showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true);
                          } else if (now < parseInt(unlockTime)) {
                              const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000);
                              showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false);
                              setTimeout(checkEditorStatus, 30000);
                          } else {
                              const overlay = document.getElementById('hardcore-editor-overlay');
                              if (overlay) overlay.remove();
                              document.documentElement.classList.remove('blocked-mode');
                          }
                      };
              
                      const showEditorOverlay = (msg, showButton) => {
                          document.documentElement.classList.add('blocked-mode');
                          let overlay = document.getElementById('hardcore-editor-overlay');
                          if (!overlay) {
                              overlay = document.createElement('div');
                              overlay.id = 'hardcore-editor-overlay';
                              overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;';
                              document.documentElement.appendChild(overlay);
                          }
                          overlay.innerHTML = `<div>${msg}</div>`;
                          if (showButton) {
                              const btn = document.createElement('button');
                              btn.innerText = "התחל המתנה של שעתיים לעריכה";
                              btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;";
                              btn.onclick = () => {
                                  if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) {
                                      localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION);
                                      checkEditorStatus();
                                  }
                              };
                              overlay.appendChild(btn);
                          }
                      };
              
                      checkEditorStatus();
                      return; 
                  }
              
                  if (needsDisturbance) document.documentElement.classList.add('apply-disturbance');
              
                  const startUnlockProcess = () => {
                      const d = new Date();
                      if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return;
                      
                      const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)];
                      if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return;
              
                      if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") {
                          const now = Date.now();
                          const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                          if (!data.expiry || now > data.expiry) {
                              localStorage.setItem(STORAGE_KEY, JSON.stringify({
                                  expiry: now + ACCESS_DURATION,
                                  cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION
                              }));
                          }
                          sessionStorage.setItem(SESSION_KEY, 'true');
                          sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString());
                          location.reload();
                      }
                  };
              
                  const renderShadowOverlay = (status) => {
                      document.documentElement.classList.add('blocked-mode');
                      let host = document.getElementById('shteygen-host-overlay');
                      
                      if (!host) {
                          host = document.createElement('div');
                          host.id = 'shteygen-host-overlay';
                          host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;';
                          document.documentElement.appendChild(host);
                          
                          const shadow = host.attachShadow({mode: 'open'});
                          const container = document.createElement('div');
                          container.id = 'shadow-content';
                          shadow.appendChild(container);
                      }
              
                      const shadow = host.shadowRoot;
                      const container = shadow.getElementById('shadow-content');
                      
                      container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;';
              
                      if (status.state === 'COOLDOWN') {
                          const minLeft = Math.ceil(status.waitTime / 60000);
                          container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`;
                      } else {
                          container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`;
                          
                          const btn = document.createElement('button');
                          btn.innerText = '⚙️';
                          // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף)
                          btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;';
                          btn.onclick = startUnlockProcess;
                          container.appendChild(btn);
                      }
                  };
              
                  const renderShadowTimer = (timeLeft) => {
                      let host = document.getElementById('shteygen-timer-host');
                      if (!host) {
                          host = document.createElement('div');
                          host.id = 'shteygen-timer-host';
                          host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;';
                          document.documentElement.appendChild(host);
              
                          const shadow = host.attachShadow({mode: 'open'});
                          
                          const style = document.createElement('style');
                          style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`;
                          shadow.appendChild(style);
              
                          const timerDiv = document.createElement('div');
                          timerDiv.id = 'timer-content';
                          shadow.appendChild(timerDiv);
                      }
              
                      const shadow = host.shadowRoot;
                      const timerDiv = shadow.getElementById('timer-content');
              
                      const mins = Math.floor(timeLeft / 60000);
                      const secs = Math.floor((timeLeft % 60000) / 1000);
                      const timeString = `${mins}:${secs.toString().padStart(2, '0')}`;
              
                      let bgColor = '#2ecc71';
                      let animation = 'none';
              
                      if (timeLeft <= 30 * 1000) {
                          bgColor = '#e74c3c'; 
                          animation = 'urgentBlink 1s infinite';
                      } else if (timeLeft <= 90 * 1000) {
                          bgColor = '#f39c12'; 
                      }
              
                      timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`;
                      timerDiv.innerText = timeString;
                  };
              
                  if (needsBlackScreen) {
                      setInterval(() => {
                          const status = getStatus();
                          
                          if (status.state === 'UNLOCKED') {
                              document.documentElement.classList.remove('blocked-mode');
                              const overlayHost = document.getElementById('shteygen-host-overlay');
                              if (overlayHost) overlayHost.remove();
                              
                              renderShadowTimer(status.timeLeft);
                              
                              if (status.timeLeft <= 0) location.reload();
                              
                          } else {
                              const timerHost = document.getElementById('shteygen-timer-host');
                              if (timerHost) timerHost.remove();
                              
                              renderShadowOverlay(status);
                          }
                      }, 500);
                  }
              })();
              

              סיכום על התוסף מ ai

              הכירו את ה-Ultimate Focus Script: המערכת שתכריח אתכם ללמוד
              הסקריפט הזה נולד מתוך צורך אמיתי: להפסיק לבזבז זמן. הוא מיועד לאנשים שרוצים שהמחשב שלהם יהפוך מכלי של הסחת דעת לכלי של עבודה ולימוד בלבד. הוא לא מבקש מכם יפה – הוא פשוט לא משאיר לכם ברירה.

              1. הקונספט המרכזי: חוק ה-5/60
                הסקריפט פועל לפי לוגיקה פשוטה וחסרת רחמים:

              5 דקות של חסד: פעם בשעה, ניתן לפתוח גישה לאתרים "רגישים" (מייל, צ'אט, פורומים) למשך 5 דקות בלבד.

              60 דקות של נעילה: ברגע שהחמש דקות נגמרו, האתרים הללו ננעלים הרמטית למשך שעה שלמה. אין כפתור "ביטול", ואין אפשרות להיכנס שוב עד שהשעון מסיים לספור.

              1. מחסום הכניסה: "המבוך הקוגניטיבי"
                כדי לפתוח את אותן 5 דקות, אתם צריכים להוכיח ריכוז. הסקריפט מציג מסך שחור אטום עם משימות משתנות (רנדומליות):

              תרגיל חשבון: חישובים דינמיים (למשל: השעה הנוכחית + הדקות כפול 2).

              אתגר מילולי: הקלדת מילים מהסוף להתחלה (כדי לוודא שהמוח שלכם עובד).

              התחייבות: הקלדת משפט הצהרה ("אני נכנס רק לזמן קצר").

              מנגנון רענון: אם תנסו לרענן את הדף כדי "לברוח" מהמסך השחור – הוא יופיע שוב וידרוש את המשימות מחדש.

              1. ההפרעה הויזואלית (Visual Disturbance)
                בכל שאר האתרים ברשת (אלו שלא נחסמים ב-5/60 כמו גימיני או אתרי חיפוש), הסקריפט יוצר אווירה של עבודה:

              תמונה ברורה ברקע: רקע של סביבת לימוד רצינית שמונח מעל האתר בשקיפות מסוימת.

              טקסט מעורר: הכיתוב "לך ללמוד!" מופיע בגודל ענק על כל המסך.

              מטרה: להזכיר לכם בכל שנייה שאתם לא שם בשביל הכיף, אלא בשביל מטרה ספציפית.

              1. החרגת המייל (היעילות קודמת לכל)
                כדי לא לפגוע בעבודה השוטפת, בתוך ה-5 דקות של המייל, הרקע והכיתוב המפריע נעלמים. המטרה היא לתת לכם 5 דקות של עבודה נקייה ומהירה, ומיד אחרי זה – חזרה ללימודים.

              2. ההגנה מפני עקיפה (Anti-Cheat)
                כאן נמצא ה"קאץ'" האמיתי. מה ימנע מכם פשוט לכבות את התוסף או לערוך את הקוד?

              נעילת עורך הסקריפטים: אם תנסו להיכנס לדף העריכה של הסקריפט כדי לשנות את הזמנים או למחוק אותו, תיתקלו במסך שחור.

              המתנה של שעתיים: כדי לגשת לקוד העריכה, תצטרכו ללחוץ על כפתור שמפעיל ספירה לאחור של 120 דקות. רק אחרי שעתיים של המתנה אקטיבית, הקוד ייפתח לעריכה.

              סיכום טכני:
              שפת תכנות: JavaScript (Tampermonkey).

              אתרים כלולים: מייל, צ'אט, פורומים ספציפיים (כולל מתמחים טופ).

              זמנים: 5 דקות עבודה / 60 דקות צינון / שעתיים נעילת עריכה.

              סיכום בקצרה על התוסף מ ai

              הסקריפט שינצח את הסחות הדעת: סיכום בחמש נקודות
              חוק ה-5/60: גישה מוגבלת ל-5 דקות בלבד למייל ולפורומים, ולאחריהן חסימה מוחלטת ל-60 דקות (ללא יוצא מן הכלל).

              מבחני ריכוז בכניסה: כדי לפתוח את הגישה, עליכם לעבור אתגרים משתנים של חשבון, הגיון והקלדה.

              הפרעה חזותית קבועה: בכל שאר האתרים מופיע רקע של בית מדרש עם הכיתוב "לך ללמוד!" בגודל ענק, כדי להזכיר לכם מה העיקר.

              מנגנון "אנטי-רמאות": הסקריפט מזהה ריענוני דף (F5) ונועל אתכם מחדש, מה שמכריח אתכם להישאר מרוכזים בתוך ה-5 דקות.

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

              בשורה התחתונה: זה לא "תוסף חסימה", זו מערכת שלמה שכופה עליכם משמעת עצמית ברזל.

              תמונות בספוילר

              e4a20287-d027-4bd7-b576-46df30470e03-image.png 86194ef3-a77a-4f2b-9833-4d0d957fa75f-image.png 512bfc88-ebe7-45a2-8990-cd5807c80ed4-image.png
              אם אתם רוצים להמשיך תלחצו כאן 758fc74d-d7d7-41bd-b64c-c68eab0ab2dc-image.png 2f1a7c2d-7533-45e0-b888-bb6411cc0ea6-image.png 9fafe697-a1a6-44c5-8659-598640eaae05-image.png

              בהצלחה!!
              זמן פורה ומוצלח!!

              אם אתם רוצים שאני יערוך לכם משהו בכ"א תכתבו

              וכן אשמח לשמוע אם יש עניין להפוך את זה לתוסף כרום...

              טוב אני זזתי לישיבה כדי לא לאבד את האפקט... תעשו אם זה מה שאתם רוצים מי שרוצה לשפר את זה או לא יודע מה אין לי שום בעיה! העיקר שאצלי הדפדפן מגביל...

              י מנותק
              י מנותק
              י.ר.ק
              כתב נערך לאחרונה על ידי
              #9

              @ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

              מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s

              סתם לקחת קישור של תוסף אבל אפשר לשנות את זה בכל תוסף או שלא בגלל שזה משנה רק קובץ אחד וכל השאר אותו דבר?

              סתם בשביל הידע האישי שלי

              ר תגובה 1 תגובה אחרונה
              0
              • י י.ר.ק

                @ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s

                סתם לקחת קישור של תוסף אבל אפשר לשנות את זה בכל תוסף או שלא בגלל שזה משנה רק קובץ אחד וכל השאר אותו דבר?

                סתם בשביל הידע האישי שלי

                ר מנותק
                ר מנותק
                ר יעקב עייפים
                כתב נערך לאחרונה על ידי ר יעקב עייפים
                #10

                @י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                סתם לקחת קישור של תוסף אבל אפשר לשנות את זה בכל תוסף או שלא בגלל שזה משנה רק קובץ אחד וכל השאר אותו דבר?

                לא הבנתי אותך.

                @לשכת-הרב כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                כדאי לעשות גם כתוסף לכרום

                אני צריך לעשות עוד כמה עידכונים ואז אני אצור תוסף לכרום יש הרבה דברים שצריך לשנות בעיקר להקל על ההתאמה אישית ולחסום עריכה.
                אני יוכל לעשות את זה רק בשבת חופשית- עוד חודש בי.
                אין לי בעיה שמישהו אחר יטפל בזה ויקח הכל.

                י תגובה 1 תגובה אחרונה
                0
                • ר ר יעקב עייפים

                  @י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                  סתם לקחת קישור של תוסף אבל אפשר לשנות את זה בכל תוסף או שלא בגלל שזה משנה רק קובץ אחד וכל השאר אותו דבר?

                  לא הבנתי אותך.

                  @לשכת-הרב כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                  כדאי לעשות גם כתוסף לכרום

                  אני צריך לעשות עוד כמה עידכונים ואז אני אצור תוסף לכרום יש הרבה דברים שצריך לשנות בעיקר להקל על ההתאמה אישית ולחסום עריכה.
                  אני יוכל לעשות את זה רק בשבת חופשית- עוד חודש בי.
                  אין לי בעיה שמישהו אחר יטפל בזה ויקח הכל.

                  י מנותק
                  י מנותק
                  י.ר.ק
                  כתב נערך לאחרונה על ידי
                  #11

                  @ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                  לא הבנתי אותך.

                  פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?

                  ר תגובה 1 תגובה אחרונה
                  0
                  • י י.ר.ק

                    @ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                    לא הבנתי אותך.

                    פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?

                    ר מנותק
                    ר מנותק
                    ר יעקב עייפים
                    כתב נערך לאחרונה על ידי
                    #12

                    @י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                    פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?

                    לא התוסף ההוא ספציפית מיועד להרצת קוד אוניברסלי לזה הוא מיועד.

                    י שלמה רביבש 2 תגובות תגובה אחרונה
                    0
                    • ר ר יעקב עייפים

                      @י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                      פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?

                      לא התוסף ההוא ספציפית מיועד להרצת קוד אוניברסלי לזה הוא מיועד.

                      י מנותק
                      י מנותק
                      י.ר.ק
                      כתב נערך לאחרונה על ידי
                      #13

                      @ר-יעקב-עייפים טוב לדעת ואיזה קוד הבאת להדביק js/ג'סון

                      המלאךה תגובה 1 תגובה אחרונה
                      0
                      • ר ר יעקב עייפים

                        אין לי זמן כרגע לפרט אז אני מעלה פירוט מ ai. מה שרציתי זה למנוע מעצמי גלישה ובזבוז זמן אשמח למשוב ממכם אם זה עזר גם לכם.

                        אם אתם רוצים שינויים או שיש לכם הערות אתם לא צריכים אותי - תכתבו לai שלכם את הקוד ואת ההערות הוא כבר יסתדר...

                        גם לגבי ההתקנה של התוסף אין לי זמן כרגע לפרט תשאלו את ה ai הקרוב אליכם הוא יסביר לכם יותר טוב ממני.
                        העליתי לבקשת חבר.

                        כמה מילים על התוסף - יצא לי לאחרונה מלא פעמים לשבת על המחשב ולהימרח שעות בצ'אט מייל עם חברים או סתם ככה לעבור שעות באינטרנט בי לשים לב אז יצרתי לעצמי תוסף שגם יתן לי רקע שיגרום לתזכורת ולהפרעה קטנה בגלישה מה שיגרום לי לצמצם את השימוש וגם באתרים שלקחו לי הכי הרבה זמן ביממה האחרונה מייל והפורום עשיתי שבכניסה אליהם אצטרך לענות על כמה חידות וגם זה יפתח אותם ל5 דקות כאשר לאחר מכן הם יסגרו לשעה וכך למעשה אני ימנע בעז"ה מלגלוש מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s מייד לאחר מכן תרעננו את הדף של הפורום למשל ותראו ישועות... אולי תצטרכו לתת הרשאות לתוסף Tampermonkey אצלכם לגשת לאתרים לא יודע אצלי יש לו כבר
                        בהצלחה!
                        הקוד בספוילר:

                        // ==UserScript==
                        // @name         Ultimate Global Blocker - Extreme Editor Lock & Timer
                        // @namespace    http://tampermonkey.net/
                        // @version      32.0
                        // @description  Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button.
                        // @match        *://*/*
                        // @match        chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/*
                        // @run-at       document-start
                        // @grant        GM_addStyle
                        // ==/UserScript==
                        
                        (function() {
                            'use strict';
                        
                            // זמנים מקוריים
                            const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות
                            const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון
                            const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה
                            const GRACE_PERIOD = 15 * 1000; 
                        
                            // מפתחות מקוריים
                            const STORAGE_KEY = 'focus_access_data';
                            const SESSION_KEY = 'shteygen_session_unlocked'; 
                            const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time';
                            const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time';
                            const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu';
                        
                            const currentUrl = window.location.href.toLowerCase();
                            
                            // זיהוי דפים ספציפיים
                            const isMail = currentUrl.includes('mail.google.com');
                            const isChat = currentUrl.includes('chat.google.com');
                            const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); 
                            const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo');
                        
                            const needsBlackScreen = isMail || isForum || isChat; 
                            const needsDisturbance = !isMail && !isChat && !isEditor;
                        
                            if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) {
                                const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0');
                                if (Date.now() - lastUnlock > GRACE_PERIOD) {
                                    sessionStorage.removeItem(SESSION_KEY);
                                }
                            }
                        
                            const getStatus = () => {
                                const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                                const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true';
                                const now = Date.now();
                        
                                if (data.expiry && now < data.expiry) {
                                    if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now };
                                    return { state: 'UNLOCKED', timeLeft: data.expiry - now };
                                }
                                if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now };
                                return { state: 'LOCKED' };
                            };
                        
                            GM_addStyle(`
                                html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; }
                                html.apply-disturbance::after {
                                    content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
                                    background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center;
                                    opacity: 0.20 !important; z-index: 2147483645; pointer-events: none;
                                }
                                html.apply-disturbance body::after {
                                    content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg);
                                    font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none;
                                    white-space: nowrap; font-weight: bold;
                                }
                            `);
                        
                            // חסימת עורך התוסף
                            if (isEditor) {
                                const checkEditorStatus = () => {
                                    const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY);
                                    const now = Date.now();
                        
                                    if (!unlockTime) {
                                        showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true);
                                    } else if (now < parseInt(unlockTime)) {
                                        const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000);
                                        showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false);
                                        setTimeout(checkEditorStatus, 30000);
                                    } else {
                                        const overlay = document.getElementById('hardcore-editor-overlay');
                                        if (overlay) overlay.remove();
                                        document.documentElement.classList.remove('blocked-mode');
                                    }
                                };
                        
                                const showEditorOverlay = (msg, showButton) => {
                                    document.documentElement.classList.add('blocked-mode');
                                    let overlay = document.getElementById('hardcore-editor-overlay');
                                    if (!overlay) {
                                        overlay = document.createElement('div');
                                        overlay.id = 'hardcore-editor-overlay';
                                        overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;';
                                        document.documentElement.appendChild(overlay);
                                    }
                                    overlay.innerHTML = `<div>${msg}</div>`;
                                    if (showButton) {
                                        const btn = document.createElement('button');
                                        btn.innerText = "התחל המתנה של שעתיים לעריכה";
                                        btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;";
                                        btn.onclick = () => {
                                            if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) {
                                                localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION);
                                                checkEditorStatus();
                                            }
                                        };
                                        overlay.appendChild(btn);
                                    }
                                };
                        
                                checkEditorStatus();
                                return; 
                            }
                        
                            if (needsDisturbance) document.documentElement.classList.add('apply-disturbance');
                        
                            const startUnlockProcess = () => {
                                const d = new Date();
                                if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return;
                                
                                const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)];
                                if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return;
                        
                                if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") {
                                    const now = Date.now();
                                    const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
                                    if (!data.expiry || now > data.expiry) {
                                        localStorage.setItem(STORAGE_KEY, JSON.stringify({
                                            expiry: now + ACCESS_DURATION,
                                            cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION
                                        }));
                                    }
                                    sessionStorage.setItem(SESSION_KEY, 'true');
                                    sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString());
                                    location.reload();
                                }
                            };
                        
                            const renderShadowOverlay = (status) => {
                                document.documentElement.classList.add('blocked-mode');
                                let host = document.getElementById('shteygen-host-overlay');
                                
                                if (!host) {
                                    host = document.createElement('div');
                                    host.id = 'shteygen-host-overlay';
                                    host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;';
                                    document.documentElement.appendChild(host);
                                    
                                    const shadow = host.attachShadow({mode: 'open'});
                                    const container = document.createElement('div');
                                    container.id = 'shadow-content';
                                    shadow.appendChild(container);
                                }
                        
                                const shadow = host.shadowRoot;
                                const container = shadow.getElementById('shadow-content');
                                
                                container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;';
                        
                                if (status.state === 'COOLDOWN') {
                                    const minLeft = Math.ceil(status.waitTime / 60000);
                                    container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`;
                                } else {
                                    container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`;
                                    
                                    const btn = document.createElement('button');
                                    btn.innerText = '⚙️';
                                    // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף)
                                    btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;';
                                    btn.onclick = startUnlockProcess;
                                    container.appendChild(btn);
                                }
                            };
                        
                            const renderShadowTimer = (timeLeft) => {
                                let host = document.getElementById('shteygen-timer-host');
                                if (!host) {
                                    host = document.createElement('div');
                                    host.id = 'shteygen-timer-host';
                                    host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;';
                                    document.documentElement.appendChild(host);
                        
                                    const shadow = host.attachShadow({mode: 'open'});
                                    
                                    const style = document.createElement('style');
                                    style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`;
                                    shadow.appendChild(style);
                        
                                    const timerDiv = document.createElement('div');
                                    timerDiv.id = 'timer-content';
                                    shadow.appendChild(timerDiv);
                                }
                        
                                const shadow = host.shadowRoot;
                                const timerDiv = shadow.getElementById('timer-content');
                        
                                const mins = Math.floor(timeLeft / 60000);
                                const secs = Math.floor((timeLeft % 60000) / 1000);
                                const timeString = `${mins}:${secs.toString().padStart(2, '0')}`;
                        
                                let bgColor = '#2ecc71';
                                let animation = 'none';
                        
                                if (timeLeft <= 30 * 1000) {
                                    bgColor = '#e74c3c'; 
                                    animation = 'urgentBlink 1s infinite';
                                } else if (timeLeft <= 90 * 1000) {
                                    bgColor = '#f39c12'; 
                                }
                        
                                timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`;
                                timerDiv.innerText = timeString;
                            };
                        
                            if (needsBlackScreen) {
                                setInterval(() => {
                                    const status = getStatus();
                                    
                                    if (status.state === 'UNLOCKED') {
                                        document.documentElement.classList.remove('blocked-mode');
                                        const overlayHost = document.getElementById('shteygen-host-overlay');
                                        if (overlayHost) overlayHost.remove();
                                        
                                        renderShadowTimer(status.timeLeft);
                                        
                                        if (status.timeLeft <= 0) location.reload();
                                        
                                    } else {
                                        const timerHost = document.getElementById('shteygen-timer-host');
                                        if (timerHost) timerHost.remove();
                                        
                                        renderShadowOverlay(status);
                                    }
                                }, 500);
                            }
                        })();
                        

                        סיכום על התוסף מ ai

                        הכירו את ה-Ultimate Focus Script: המערכת שתכריח אתכם ללמוד
                        הסקריפט הזה נולד מתוך צורך אמיתי: להפסיק לבזבז זמן. הוא מיועד לאנשים שרוצים שהמחשב שלהם יהפוך מכלי של הסחת דעת לכלי של עבודה ולימוד בלבד. הוא לא מבקש מכם יפה – הוא פשוט לא משאיר לכם ברירה.

                        1. הקונספט המרכזי: חוק ה-5/60
                          הסקריפט פועל לפי לוגיקה פשוטה וחסרת רחמים:

                        5 דקות של חסד: פעם בשעה, ניתן לפתוח גישה לאתרים "רגישים" (מייל, צ'אט, פורומים) למשך 5 דקות בלבד.

                        60 דקות של נעילה: ברגע שהחמש דקות נגמרו, האתרים הללו ננעלים הרמטית למשך שעה שלמה. אין כפתור "ביטול", ואין אפשרות להיכנס שוב עד שהשעון מסיים לספור.

                        1. מחסום הכניסה: "המבוך הקוגניטיבי"
                          כדי לפתוח את אותן 5 דקות, אתם צריכים להוכיח ריכוז. הסקריפט מציג מסך שחור אטום עם משימות משתנות (רנדומליות):

                        תרגיל חשבון: חישובים דינמיים (למשל: השעה הנוכחית + הדקות כפול 2).

                        אתגר מילולי: הקלדת מילים מהסוף להתחלה (כדי לוודא שהמוח שלכם עובד).

                        התחייבות: הקלדת משפט הצהרה ("אני נכנס רק לזמן קצר").

                        מנגנון רענון: אם תנסו לרענן את הדף כדי "לברוח" מהמסך השחור – הוא יופיע שוב וידרוש את המשימות מחדש.

                        1. ההפרעה הויזואלית (Visual Disturbance)
                          בכל שאר האתרים ברשת (אלו שלא נחסמים ב-5/60 כמו גימיני או אתרי חיפוש), הסקריפט יוצר אווירה של עבודה:

                        תמונה ברורה ברקע: רקע של סביבת לימוד רצינית שמונח מעל האתר בשקיפות מסוימת.

                        טקסט מעורר: הכיתוב "לך ללמוד!" מופיע בגודל ענק על כל המסך.

                        מטרה: להזכיר לכם בכל שנייה שאתם לא שם בשביל הכיף, אלא בשביל מטרה ספציפית.

                        1. החרגת המייל (היעילות קודמת לכל)
                          כדי לא לפגוע בעבודה השוטפת, בתוך ה-5 דקות של המייל, הרקע והכיתוב המפריע נעלמים. המטרה היא לתת לכם 5 דקות של עבודה נקייה ומהירה, ומיד אחרי זה – חזרה ללימודים.

                        2. ההגנה מפני עקיפה (Anti-Cheat)
                          כאן נמצא ה"קאץ'" האמיתי. מה ימנע מכם פשוט לכבות את התוסף או לערוך את הקוד?

                        נעילת עורך הסקריפטים: אם תנסו להיכנס לדף העריכה של הסקריפט כדי לשנות את הזמנים או למחוק אותו, תיתקלו במסך שחור.

                        המתנה של שעתיים: כדי לגשת לקוד העריכה, תצטרכו ללחוץ על כפתור שמפעיל ספירה לאחור של 120 דקות. רק אחרי שעתיים של המתנה אקטיבית, הקוד ייפתח לעריכה.

                        סיכום טכני:
                        שפת תכנות: JavaScript (Tampermonkey).

                        אתרים כלולים: מייל, צ'אט, פורומים ספציפיים (כולל מתמחים טופ).

                        זמנים: 5 דקות עבודה / 60 דקות צינון / שעתיים נעילת עריכה.

                        סיכום בקצרה על התוסף מ ai

                        הסקריפט שינצח את הסחות הדעת: סיכום בחמש נקודות
                        חוק ה-5/60: גישה מוגבלת ל-5 דקות בלבד למייל ולפורומים, ולאחריהן חסימה מוחלטת ל-60 דקות (ללא יוצא מן הכלל).

                        מבחני ריכוז בכניסה: כדי לפתוח את הגישה, עליכם לעבור אתגרים משתנים של חשבון, הגיון והקלדה.

                        הפרעה חזותית קבועה: בכל שאר האתרים מופיע רקע של בית מדרש עם הכיתוב "לך ללמוד!" בגודל ענק, כדי להזכיר לכם מה העיקר.

                        מנגנון "אנטי-רמאות": הסקריפט מזהה ריענוני דף (F5) ונועל אתכם מחדש, מה שמכריח אתכם להישאר מרוכזים בתוך ה-5 דקות.

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

                        בשורה התחתונה: זה לא "תוסף חסימה", זו מערכת שלמה שכופה עליכם משמעת עצמית ברזל.

                        תמונות בספוילר

                        e4a20287-d027-4bd7-b576-46df30470e03-image.png 86194ef3-a77a-4f2b-9833-4d0d957fa75f-image.png 512bfc88-ebe7-45a2-8990-cd5807c80ed4-image.png
                        אם אתם רוצים להמשיך תלחצו כאן 758fc74d-d7d7-41bd-b64c-c68eab0ab2dc-image.png 2f1a7c2d-7533-45e0-b888-bb6411cc0ea6-image.png 9fafe697-a1a6-44c5-8659-598640eaae05-image.png

                        בהצלחה!!
                        זמן פורה ומוצלח!!

                        אם אתם רוצים שאני יערוך לכם משהו בכ"א תכתבו

                        וכן אשמח לשמוע אם יש עניין להפוך את זה לתוסף כרום...

                        טוב אני זזתי לישיבה כדי לא לאבד את האפקט... תעשו אם זה מה שאתם רוצים מי שרוצה לשפר את זה או לא יודע מה אין לי שום בעיה! העיקר שאצלי הדפדפן מגביל...

                        ח מנותק
                        ח מנותק
                        חד בדרא השני
                        כתב נערך לאחרונה על ידי חד בדרא השני
                        #14

                        @ר-יעקב-עייפים
                        רעיון יפה מאוד
                        בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),

                        אני בדר"כ לא משתמש בכרום אלא בדפדפן אחר וזה משום מה לא נותן לי להתקין את התוסף הנל בתחילת הפוסט, מישהו יודע מה לעשות?

                        תגובה 1 תגובה אחרונה
                        0
                        • ר ר יעקב עייפים

                          @בנימין-מחשבים

                          @בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                          הקוד הוא ai קומפלט

                          כן חוץ מנקודונת קטנטנה

                          @בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                          פשוט אתה חדש בפורום (ברוך הבא!)

                          תודה רבה! רק שאני לא יודע עדיין לערוך פוסטים נורמלי חבל...

                          @בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                          בהחלט! יתכן מאוד שאשתמש, ואני בטוח שיש עוד רבים שאם הפוסט הראשי יהיה מונגש להם יותר הם יהנו מזה מאוד!

                          תודה רבה זה נותן תחושה ממש טובה...

                          אתה לא חושב שחבל על הזמן לכתוב קוד כזה לבד?

                          לא שאני יכול...

                          י מנותק
                          י מנותק
                          יוסף מאיר וייס
                          כתב נערך לאחרונה על ידי
                          #15

                          @ר-יעקב-עייפים

                          כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                          תודה רבה! רק שאני לא יודע עדיין לערוך פוסטים נורמלי חבל...

                          מודעות עצמית זה חשוב ...
                          סתםם
                          תוסף מעולה.. 😁👍👍

                          תגובה 1 תגובה אחרונה
                          0
                          • י י.ר.ק

                            @ר-יעקב-עייפים טוב לדעת ואיזה קוד הבאת להדביק js/ג'סון

                            המלאךה מנותק
                            המלאךה מנותק
                            המלאך
                            כתב נערך לאחרונה על ידי המלאך
                            #16

                            @י.ר.ק ג'סון זה לא שפת תכנות. זה פורמט נתונים.

                            @חד-בדרא-השני כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                            בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),

                            זה לא תוסף זה סקריפט, אותו עיקרון אבל לא אותו דבר.
                            ניסית להתקין את tampermonkey וזה לא נותן לך?
                            זה בעיקרון עובד ברוב הדפדפנים, לפחות במחשב.
                            איזה דפדפן יש לך?

                            י תגובה 1 תגובה אחרונה
                            0
                            • ר ר יעקב עייפים

                              @י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                              פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?

                              לא התוסף ההוא ספציפית מיועד להרצת קוד אוניברסלי לזה הוא מיועד.

                              שלמה רביבש מנותק
                              שלמה רביבש מנותק
                              שלמה רביב
                              כתב נערך לאחרונה על ידי
                              #17

                              @ר-יעקב-עייפים יצרתי עם קלוד תוסף לעצלנים שאובהים רק ללחוץ על העלה תוסף וזהו,
                              תעדכנו איך זה עובד.

                              ultimate-global-blocker.zip

                              @המלאך בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!😉

                              תוכנה חינמית לביצוע רוט בקלות!
                              חפשו "מכשירוט"!

                              המלאךה ח 2 תגובות תגובה אחרונה
                              0
                              • המלאךה המלאך

                                @י.ר.ק ג'סון זה לא שפת תכנות. זה פורמט נתונים.

                                @חד-בדרא-השני כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                                בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),

                                זה לא תוסף זה סקריפט, אותו עיקרון אבל לא אותו דבר.
                                ניסית להתקין את tampermonkey וזה לא נותן לך?
                                זה בעיקרון עובד ברוב הדפדפנים, לפחות במחשב.
                                איזה דפדפן יש לך?

                                י מנותק
                                י מנותק
                                י.ר.ק
                                כתב נערך לאחרונה על ידי י.ר.ק
                                #18

                                @המלאך כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                                @י.ר.ק ג'סון זה לא שפת תכנות. זה פורמט נתונים.

                                ואז? שאלתי איזה קוד/קובץ הוא הביא
                                אבל לא משנה אחזתי שזה סקריפט

                                המלאךה תגובה 1 תגובה אחרונה
                                0
                                • י י.ר.ק

                                  @המלאך כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                                  @י.ר.ק ג'סון זה לא שפת תכנות. זה פורמט נתונים.

                                  ואז? שאלתי איזה קוד/קובץ הוא הביא
                                  אבל לא משנה אחזתי שזה סקריפט

                                  המלאךה מנותק
                                  המלאךה מנותק
                                  המלאך
                                  כתב נערך לאחרונה על ידי
                                  #19

                                  @י.ר.ק עניתי.
                                  JS.

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • שלמה רביבש שלמה רביב

                                    @ר-יעקב-עייפים יצרתי עם קלוד תוסף לעצלנים שאובהים רק ללחוץ על העלה תוסף וזהו,
                                    תעדכנו איך זה עובד.

                                    ultimate-global-blocker.zip

                                    @המלאך בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!😉

                                    המלאךה מנותק
                                    המלאךה מנותק
                                    המלאך
                                    כתב נערך לאחרונה על ידי
                                    #20

                                    @שלמה-רביב כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:

                                    בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!

                                    אני מתלבט אם זה על השימוש בבינה או על התוסף🤔😉

                                    תגובה 1 תגובה אחרונה
                                    0
                                    • שלמה רביבש שלמה רביב

                                      @ר-יעקב-עייפים יצרתי עם קלוד תוסף לעצלנים שאובהים רק ללחוץ על העלה תוסף וזהו,
                                      תעדכנו איך זה עובד.

                                      ultimate-global-blocker.zip

                                      @המלאך בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!😉

                                      ח מנותק
                                      ח מנותק
                                      חד בדרא השני
                                      כתב נערך לאחרונה על ידי
                                      #21

                                      @שלמה-רביב לא הבנתי מה עושים אחרי הורדה?

                                      שלמה רביבש תגובה 1 תגובה אחרונה
                                      0
                                      • ח חד בדרא השני

                                        @שלמה-רביב לא הבנתי מה עושים אחרי הורדה?

                                        שלמה רביבש מנותק
                                        שלמה רביבש מנותק
                                        שלמה רביב
                                        כתב נערך לאחרונה על ידי
                                        #22

                                        @חד-בדרא-השני נכנסים לניהול תוספים,

                                        23b1e159-b95c-482c-b696-894a4c6f3db2-image.png

                                        לוחצים על מצב פיתוח בצד שמאל למעלה וגוררים את התיקיה שהעלתי לתוך האתר.

                                        תוכנה חינמית לביצוע רוט בקלות!
                                        חפשו "מכשירוט"!

                                        ח תגובה 1 תגובה אחרונה
                                        0
                                        • שלמה רביבש שלמה רביב

                                          @חד-בדרא-השני נכנסים לניהול תוספים,

                                          23b1e159-b95c-482c-b696-894a4c6f3db2-image.png

                                          לוחצים על מצב פיתוח בצד שמאל למעלה וגוררים את התיקיה שהעלתי לתוך האתר.

                                          ח מנותק
                                          ח מנותק
                                          חד בדרא השני
                                          כתב נערך לאחרונה על ידי
                                          #23

                                          @שלמה-רביב
                                          9533f072-b6fe-4fad-a696-f09b80ace750-image.png

                                          שלמה רביבש תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

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

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