המלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב
-
@חד-בדרא-השני חלצת את הקובץ שהעלתי לפני הגרירה?
צריך לחלץ ואז לגרור את כל תיקיית extension.הערכתי אפשרויות לבעיית הקובץ החסר
נסה לוודא שאתה בתיקייה הנכונה:פתח את התיקייה שבחרת ב-Load unpacked — האם אתה רואה ישירות את הקבצים האלה?
manifest.json
content.js
options.html
options.js
background.js
אם אתה רואה תיקייה נוספת במקום הקבצים עצמם — היכנס עוד שלב פנימה וטען אותה.כתבתי לך בספויילר מאמין שאתה לא בתיקיה הנכונה, לי זה עבד מצוין.
-
@חד-בדרא-השני חלצת את הקובץ שהעלתי לפני הגרירה?
צריך לחלץ ואז לגרור את כל תיקיית extension.הערכתי אפשרויות לבעיית הקובץ החסר
נסה לוודא שאתה בתיקייה הנכונה:פתח את התיקייה שבחרת ב-Load unpacked — האם אתה רואה ישירות את הקבצים האלה?
manifest.json
content.js
options.html
options.js
background.js
אם אתה רואה תיקייה נוספת במקום הקבצים עצמם — היכנס עוד שלב פנימה וטען אותה.כתבתי לך בספויילר מאמין שאתה לא בתיקיה הנכונה, לי זה עבד מצוין.
@שלמה-רביב
תודה פשוט גררתי את התקית אם המחולצת ולא את הקיה שבפניםאבל זה חוסם תמיד אחרי רענון ולא נפתח גם אחרי שעה
-
@שלמה-רביב
תודה פשוט גררתי את התקית אם המחולצת ולא את הקיה שבפניםאבל זה חוסם תמיד אחרי רענון ולא נפתח גם אחרי שעה
@חד-בדרא-השני יש כפתור בצד שמאל למטה (ממש לא ניראה, כמעט שקוף בכוונה,) תלחץ עליו ותפעל ע"פ ההוראות שם.
-
@ר-יעקב-עייפים יצרתי עם קלוד תוסף לעצלנים שאובהים רק ללחוץ על העלה תוסף וזהו,
תעדכנו איך זה עובד.@המלאך בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!

-
חבל לאמר שאתה מטורף! זה לא יוסיף כלום מעבר למה שכבר כולם יודעים
-
עדכנתי את הקוד
// ==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); } })();גם בפוסט הראשי.
יש בכלל טעם בזה? מישהו ישתמש בזה? אשמח לדעת ממש!!
שאני ידע אם עזרתי בכלל למישהו...@ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
יש בכלל טעם בזה? מישהו ישתמש בזה? אשמח לדעת ממש!!
אני משתמש בזה,
תודה רבה. -
חבל לאמר שאתה מטורף! זה לא יוסיף כלום מעבר למה שכבר כולם יודעים
@טופ-שבמתמחים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
חבל לאמר שאתה מטורף! זה לא יוסיף כלום מעבר למה שכבר כולם יודעים
????
@חכמון כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
אני משתמש בזה,
תודה רבה.כנ"ל
@ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
אני צריך לעשות עוד כמה עידכונים ואז אני אצור תוסף לכרום יש הרבה דברים שצריך לשנות בעיקר להקל על ההתאמה אישית ולחסום עריכה.
-
כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
תודה רבה! רק שאני לא יודע עדיין לערוך פוסטים נורמלי חבל...
מודעות עצמית זה חשוב ...
סתםם
תוסף מעולה..


@יוסף-מאיר-וייס כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
מודעות עצמית זה חשוב ...
סתםם
תוסף מעולה..הוא אשר דיברתי.
@כולם אני קפצתי לכמה דקות בבית מה כדאי לשפר?
-
@ר-יעקב-עייפים
רעיון יפה מאוד
בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),אני בדר"כ לא משתמש בכרום אלא בדפדפן אחר וזה משום מה לא נותן לי להתקין את התוסף הנל בתחילת הפוסט, מישהו יודע מה לעשות?
@חד-בדרא-השני כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),
למרות שאני די חולק על זה
כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
(גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),
-
@חד-בדרא-השני כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),
למרות שאני די חולק על זה
כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
(גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),
פוסט זה נמחק!
