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

@שלמה-רביב כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף ל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 מה שיעזור לכם לא להיות על המחשב:
יש בכלל טעם בזה? מישהו ישתמש בזה? אשמח לדעת ממש!!
אני משתמש בזה,
תודה רבה.
