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

// ==UserScript== // @name מחלץ אלרגיה לשורש ט.ר.פ - מתמחים טופ // @namespace https://mitmachim.top/ // @version 1.0 // @description מחליף מילים משורש ט.ר.פ בתחליפים מצחיקים + מד אלרגיה צף // @author Frozi // @match https://mitmachim.top/* // @match https://www.mitmachim.top/* // @grant none // ==/UserScript== (function () { 'use strict'; const STORAGE_KEY = 't-r-f-allergy-enabled'; let enabled = localStorage.getItem(STORAGE_KEY) !== 'false'; let totalReplaced = 0; const replacements = [ 'חריג בנוף 🌵', 'מוגזם ברמות 📈', 'בלתי נתפס 🤯', 'רמת התלהבות לא מאושרת', 'דורש אישור מהנדס', 'חורג מהתקן 🚨', 'התקף התלהבות', 'מקרה קשה של וואו', 'לא עבר ועדת ביקורת', 'מחוץ לסקאלה', 'טעון בדיקה חוזרת', 'חשוד כהתלהבות יתר', 'משרד הבריאות לא מאשר', '404: השפיות לא נמצאה', 'נשלח לבידוד לשוני', 'התפרצות רגשית מבוקרת', 'נמצא חיובי לט.ר.פ', 'אירוע חריג במרחב הפורומי', 'נדרש חיטוי טקסטואלי', 'תופעה שאינה מוסברת מדעית', 'המערכת סימנה כאובר', 'תסמין מתקדם של התלהבות', 'לא לשימוש לפני קפה', 'הוחלף מטעמי רגישות הציבור', 'מילה שנגנזה בארכיון' ]; const forbiddenRegex = /[\u0590-\u05FF]*ט+[\u0590-\u05FF]*ר+[\u0590-\u05FF]*[פף]+[\u0590-\u05FF]*/g; const skipTags = new Set([ 'SCRIPT', 'STYLE', 'TEXTAREA', 'INPUT', 'CODE', 'PRE', 'NOSCRIPT', 'SELECT', 'OPTION' ]); function randomReplacement() { return replacements[Math.floor(Math.random() * replacements.length)]; } function shouldSkipNode(node) { const parent = node.parentElement; if (!parent) return true; if (skipTags.has(parent.tagName)) return true; if (parent.closest('.trf-cleaned-word')) return true; if (parent.isContentEditable) return true; return false; } function processTextNode(node) { if (!enabled || shouldSkipNode(node)) return; const text = node.nodeValue; if (!forbiddenRegex.test(text)) return; forbiddenRegex.lastIndex = 0; const fragment = document.createDocumentFragment(); let lastIndex = 0; let count = 0; text.replace(forbiddenRegex, (match, offset) => { fragment.appendChild(document.createTextNode(text.slice(lastIndex, offset))); const span = document.createElement('span'); span.className = 'trf-cleaned-word'; span.textContent = randomReplacement(); span.title = `המילה המקורית "${match}" צונזרה עקב אלרגיה חריפה לשורש ט.ר.פ.`; span.dataset.original = match; fragment.appendChild(span); lastIndex = offset + match.length; count++; }); fragment.appendChild(document.createTextNode(text.slice(lastIndex))); if (count > 0) { node.parentNode.replaceChild(fragment, node); totalReplaced += count; updateWidget(); } } function scanPage(root = document.body) { if (!enabled || !root) return; const walker = document.createTreeWalker( root, NodeFilter.SHOW_TEXT, { acceptNode(node) { if (shouldSkipNode(node)) return NodeFilter.FILTER_REJECT; if (!node.nodeValue.trim()) return NodeFilter.FILTER_REJECT; return NodeFilter.FILTER_ACCEPT; } } ); const nodes = []; while (walker.nextNode()) { nodes.push(walker.currentNode); } nodes.forEach(processTextNode); } function getAllergyStatus() { if (totalReplaced <= 2) { return { level: '🟢', text: 'האוויר כמעט נקי', percent: 18 }; } if (totalReplaced <= 5) { return { level: '🟡', text: 'רמת ט.ר.פ בינונית', percent: 43 }; } if (totalReplaced <= 10) { return { level: '🟠', text: 'מומלץ להרכיב מסכה', percent: 71 }; } return { level: '🔴', text: 'התפרצות ט.ר.פ חמורה. העמוד עבר חיטוי.', percent: 96 }; } function createWidget() { const style = document.createElement('style'); style.textContent = ` #trf-allergy-widget { position: fixed; left: 16px; bottom: 16px; z-index: 999999; width: 245px; direction: rtl; font-family: Arial, sans-serif; background: #111827; color: #fff; border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.25); padding: 12px 14px; font-size: 13px; line-height: 1.5; border: 1px solid rgba(255,255,255,.12); } #trf-allergy-widget .trf-title { font-weight: bold; font-size: 14px; margin-bottom: 6px; } #trf-allergy-widget .trf-bar { height: 8px; background: rgba(255,255,255,.18); border-radius: 999px; overflow: hidden; margin: 7px 0; } #trf-allergy-widget .trf-fill { height: 100%; width: 0%; background: linear-gradient(90deg, #22c55e, #facc15, #f97316, #ef4444); transition: width .3s ease; } #trf-allergy-widget button { margin-top: 8px; width: 100%; border: 0; border-radius: 9px; padding: 6px 8px; cursor: pointer; font-weight: bold; background: #f3f4f6; color: #111827; } .trf-cleaned-word { display: inline-block; padding: 1px 5px; margin: 0 1px; border-radius: 7px; background: #fff3cd; color: #7a4b00; border: 1px dashed #d39e00; font-weight: 600; cursor: help; } `; document.head.appendChild(style); const widget = document.createElement('div'); widget.id = 'trf-allergy-widget'; widget.innerHTML = ` <div class="trf-title">🧪 מד אלרגיה לט.ר.פ</div> <div id="trf-status">סורק את העמוד...</div> <div class="trf-bar"><div class="trf-fill" id="trf-fill"></div></div> <div id="trf-counter">זוהו: 0 מופעים</div> <button id="trf-toggle"></button> `; document.body.appendChild(widget); document.getElementById('trf-toggle').addEventListener('click', () => { enabled = !enabled; localStorage.setItem(STORAGE_KEY, enabled ? 'true' : 'false'); updateWidget(); if (enabled) { scanPage(); } }); updateWidget(); } function updateWidget() { const statusEl = document.getElementById('trf-status'); const counterEl = document.getElementById('trf-counter'); const fillEl = document.getElementById('trf-fill'); const toggleEl = document.getElementById('trf-toggle'); if (!statusEl || !counterEl || !fillEl || !toggleEl) return; const status = getAllergyStatus(); statusEl.textContent = enabled ? `${status.level} ${status.text}` : '⚪ המחלץ כבוי כרגע'; counterEl.textContent = `זוהו וחוטאו: ${totalReplaced} מופעים`; fillEl.style.width = enabled ? `${status.percent}%` : '0%'; toggleEl.textContent = enabled ? 'כבה את המחלץ' : 'הפעל את המחלץ'; } function observeDynamicContent() { const observer = new MutationObserver((mutations) => { if (!enabled) return; for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node.nodeType === Node.TEXT_NODE) { processTextNode(node); } else if (node.nodeType === Node.ELEMENT_NODE) { scanPage(node); } } } }); observer.observe(document.body, { childList: true, subtree: true }); } function init() { createWidget(); scanPage(); observeDynamicContent(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();עובד נהדר...


-
עריכה -
בוצע.
הכנתי סקריפט ל־Tampermonkey שמרפא את האלרגיה לשורש ט.ר.פ.
מה הוא עושה?
- מחליף אוטומטית כל מילה שקשורה לשורש ט.ר.פ. (כולל הטיות וכתיבים יצירתיים) בביטוי אקראי ומשעשע.
- לכל החלפה מוצמד Tooltip שמסביר שהמילה "צונזרה עקב אלרגיה חריפה לשורש ט.ר.פ."
- מוסיף בפינת המסך מד אלרגיה שסופר כמה מופעים "נגועים" נמצאו בעמוד ומציג את רמת הזיהום.
- עובד גם על תוכן חדש שנטען בפורום, בלי צורך לרענן את הדף.
- כולל אפשרות להפעיל ולכבות את הסקריפט בלחיצה אחת.
מצרף את הקוד למי שרוצה לנסות.

// ==UserScript== // @name מחלץ אלרגיה לשורש ט.ר.פ - מתמחים טופ // @namespace https://mitmachim.top/ // @version 1.0 // @description מחליף מילים משורש ט.ר.פ בתחליפים מצחיקים + מד אלרגיה צף // @author Frozi // @match https://mitmachim.top/* // @match https://www.mitmachim.top/* // @grant none // ==/UserScript== (function () { 'use strict'; const STORAGE_KEY = 't-r-f-allergy-enabled'; let enabled = localStorage.getItem(STORAGE_KEY) !== 'false'; let totalReplaced = 0; const replacements = [ 'חריג בנוף 🌵', 'מוגזם ברמות 📈', 'בלתי נתפס 🤯', 'רמת התלהבות לא מאושרת', 'דורש אישור מהנדס', 'חורג מהתקן 🚨', 'התקף התלהבות', 'מקרה קשה של וואו', 'לא עבר ועדת ביקורת', 'מחוץ לסקאלה', 'טעון בדיקה חוזרת', 'חשוד כהתלהבות יתר', 'משרד הבריאות לא מאשר', '404: השפיות לא נמצאה', 'נשלח לבידוד לשוני', 'התפרצות רגשית מבוקרת', 'נמצא חיובי לט.ר.פ', 'אירוע חריג במרחב הפורומי', 'נדרש חיטוי טקסטואלי', 'תופעה שאינה מוסברת מדעית', 'המערכת סימנה כאובר', 'תסמין מתקדם של התלהבות', 'לא לשימוש לפני קפה', 'הוחלף מטעמי רגישות הציבור', 'מילה שנגנזה בארכיון' ]; const forbiddenRegex = /[\u0590-\u05FF]*ט+[\u0590-\u05FF]*ר+[\u0590-\u05FF]*[פף]+[\u0590-\u05FF]*/g; const skipTags = new Set([ 'SCRIPT', 'STYLE', 'TEXTAREA', 'INPUT', 'CODE', 'PRE', 'NOSCRIPT', 'SELECT', 'OPTION' ]); function randomReplacement() { return replacements[Math.floor(Math.random() * replacements.length)]; } function shouldSkipNode(node) { const parent = node.parentElement; if (!parent) return true; if (skipTags.has(parent.tagName)) return true; if (parent.closest('.trf-cleaned-word')) return true; if (parent.isContentEditable) return true; return false; } function processTextNode(node) { if (!enabled || shouldSkipNode(node)) return; const text = node.nodeValue; if (!forbiddenRegex.test(text)) return; forbiddenRegex.lastIndex = 0; const fragment = document.createDocumentFragment(); let lastIndex = 0; let count = 0; text.replace(forbiddenRegex, (match, offset) => { fragment.appendChild(document.createTextNode(text.slice(lastIndex, offset))); const span = document.createElement('span'); span.className = 'trf-cleaned-word'; span.textContent = randomReplacement(); span.title = `המילה המקורית "${match}" צונזרה עקב אלרגיה חריפה לשורש ט.ר.פ.`; span.dataset.original = match; fragment.appendChild(span); lastIndex = offset + match.length; count++; }); fragment.appendChild(document.createTextNode(text.slice(lastIndex))); if (count > 0) { node.parentNode.replaceChild(fragment, node); totalReplaced += count; updateWidget(); } } function scanPage(root = document.body) { if (!enabled || !root) return; const walker = document.createTreeWalker( root, NodeFilter.SHOW_TEXT, { acceptNode(node) { if (shouldSkipNode(node)) return NodeFilter.FILTER_REJECT; if (!node.nodeValue.trim()) return NodeFilter.FILTER_REJECT; return NodeFilter.FILTER_ACCEPT; } } ); const nodes = []; while (walker.nextNode()) { nodes.push(walker.currentNode); } nodes.forEach(processTextNode); } function getAllergyStatus() { if (totalReplaced <= 2) { return { level: '🟢', text: 'האוויר כמעט נקי', percent: 18 }; } if (totalReplaced <= 5) { return { level: '🟡', text: 'רמת ט.ר.פ בינונית', percent: 43 }; } if (totalReplaced <= 10) { return { level: '🟠', text: 'מומלץ להרכיב מסכה', percent: 71 }; } return { level: '🔴', text: 'התפרצות ט.ר.פ חמורה. העמוד עבר חיטוי.', percent: 96 }; } function createWidget() { const style = document.createElement('style'); style.textContent = ` #trf-allergy-widget { position: fixed; left: 16px; bottom: 16px; z-index: 999999; width: 245px; direction: rtl; font-family: Arial, sans-serif; background: #111827; color: #fff; border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.25); padding: 12px 14px; font-size: 13px; line-height: 1.5; border: 1px solid rgba(255,255,255,.12); } #trf-allergy-widget .trf-title { font-weight: bold; font-size: 14px; margin-bottom: 6px; } #trf-allergy-widget .trf-bar { height: 8px; background: rgba(255,255,255,.18); border-radius: 999px; overflow: hidden; margin: 7px 0; } #trf-allergy-widget .trf-fill { height: 100%; width: 0%; background: linear-gradient(90deg, #22c55e, #facc15, #f97316, #ef4444); transition: width .3s ease; } #trf-allergy-widget button { margin-top: 8px; width: 100%; border: 0; border-radius: 9px; padding: 6px 8px; cursor: pointer; font-weight: bold; background: #f3f4f6; color: #111827; } .trf-cleaned-word { display: inline-block; padding: 1px 5px; margin: 0 1px; border-radius: 7px; background: #fff3cd; color: #7a4b00; border: 1px dashed #d39e00; font-weight: 600; cursor: help; } `; document.head.appendChild(style); const widget = document.createElement('div'); widget.id = 'trf-allergy-widget'; widget.innerHTML = ` <div class="trf-title">🧪 מד אלרגיה לט.ר.פ</div> <div id="trf-status">סורק את העמוד...</div> <div class="trf-bar"><div class="trf-fill" id="trf-fill"></div></div> <div id="trf-counter">זוהו: 0 מופעים</div> <button id="trf-toggle"></button> `; document.body.appendChild(widget); document.getElementById('trf-toggle').addEventListener('click', () => { enabled = !enabled; localStorage.setItem(STORAGE_KEY, enabled ? 'true' : 'false'); updateWidget(); if (enabled) { scanPage(); } }); updateWidget(); } function updateWidget() { const statusEl = document.getElementById('trf-status'); const counterEl = document.getElementById('trf-counter'); const fillEl = document.getElementById('trf-fill'); const toggleEl = document.getElementById('trf-toggle'); if (!statusEl || !counterEl || !fillEl || !toggleEl) return; const status = getAllergyStatus(); statusEl.textContent = enabled ? `${status.level} ${status.text}` : '⚪ המחלץ כבוי כרגע'; counterEl.textContent = `זוהו וחוטאו: ${totalReplaced} מופעים`; fillEl.style.width = enabled ? `${status.percent}%` : '0%'; toggleEl.textContent = enabled ? 'כבה את המחלץ' : 'הפעל את המחלץ'; } function observeDynamicContent() { const observer = new MutationObserver((mutations) => { if (!enabled) return; for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node.nodeType === Node.TEXT_NODE) { processTextNode(node); } else if (node.nodeType === Node.ELEMENT_NODE) { scanPage(node); } } } }); observer.observe(document.body, { childList: true, subtree: true }); } function init() { createWidget(); scanPage(); observeDynamicContent(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();עובד נהדר...


-
עריכה -
בוצע.
הכנתי סקריפט ל־Tampermonkey שמרפא את האלרגיה לשורש ט.ר.פ.
מה הוא עושה?
- מחליף אוטומטית כל מילה שקשורה לשורש ט.ר.פ. (כולל הטיות וכתיבים יצירתיים) בביטוי אקראי ומשעשע.
- לכל החלפה מוצמד Tooltip שמסביר שהמילה "צונזרה עקב אלרגיה חריפה לשורש ט.ר.פ."
- מוסיף בפינת המסך מד אלרגיה שסופר כמה מופעים "נגועים" נמצאו בעמוד ומציג את רמת הזיהום.
- עובד גם על תוכן חדש שנטען בפורום, בלי צורך לרענן את הדף.
- כולל אפשרות להפעיל ולכבות את הסקריפט בלחיצה אחת.
מצרף את הקוד למי שרוצה לנסות.

// ==UserScript== // @name מחלץ אלרגיה לשורש ט.ר.פ - מתמחים טופ // @namespace https://mitmachim.top/ // @version 1.0 // @description מחליף מילים משורש ט.ר.פ בתחליפים מצחיקים + מד אלרגיה צף // @author Frozi // @match https://mitmachim.top/* // @match https://www.mitmachim.top/* // @grant none // ==/UserScript== (function () { 'use strict'; const STORAGE_KEY = 't-r-f-allergy-enabled'; let enabled = localStorage.getItem(STORAGE_KEY) !== 'false'; let totalReplaced = 0; const replacements = [ 'חריג בנוף 🌵', 'מוגזם ברמות 📈', 'בלתי נתפס 🤯', 'רמת התלהבות לא מאושרת', 'דורש אישור מהנדס', 'חורג מהתקן 🚨', 'התקף התלהבות', 'מקרה קשה של וואו', 'לא עבר ועדת ביקורת', 'מחוץ לסקאלה', 'טעון בדיקה חוזרת', 'חשוד כהתלהבות יתר', 'משרד הבריאות לא מאשר', '404: השפיות לא נמצאה', 'נשלח לבידוד לשוני', 'התפרצות רגשית מבוקרת', 'נמצא חיובי לט.ר.פ', 'אירוע חריג במרחב הפורומי', 'נדרש חיטוי טקסטואלי', 'תופעה שאינה מוסברת מדעית', 'המערכת סימנה כאובר', 'תסמין מתקדם של התלהבות', 'לא לשימוש לפני קפה', 'הוחלף מטעמי רגישות הציבור', 'מילה שנגנזה בארכיון' ]; const forbiddenRegex = /[\u0590-\u05FF]*ט+[\u0590-\u05FF]*ר+[\u0590-\u05FF]*[פף]+[\u0590-\u05FF]*/g; const skipTags = new Set([ 'SCRIPT', 'STYLE', 'TEXTAREA', 'INPUT', 'CODE', 'PRE', 'NOSCRIPT', 'SELECT', 'OPTION' ]); function randomReplacement() { return replacements[Math.floor(Math.random() * replacements.length)]; } function shouldSkipNode(node) { const parent = node.parentElement; if (!parent) return true; if (skipTags.has(parent.tagName)) return true; if (parent.closest('.trf-cleaned-word')) return true; if (parent.isContentEditable) return true; return false; } function processTextNode(node) { if (!enabled || shouldSkipNode(node)) return; const text = node.nodeValue; if (!forbiddenRegex.test(text)) return; forbiddenRegex.lastIndex = 0; const fragment = document.createDocumentFragment(); let lastIndex = 0; let count = 0; text.replace(forbiddenRegex, (match, offset) => { fragment.appendChild(document.createTextNode(text.slice(lastIndex, offset))); const span = document.createElement('span'); span.className = 'trf-cleaned-word'; span.textContent = randomReplacement(); span.title = `המילה המקורית "${match}" צונזרה עקב אלרגיה חריפה לשורש ט.ר.פ.`; span.dataset.original = match; fragment.appendChild(span); lastIndex = offset + match.length; count++; }); fragment.appendChild(document.createTextNode(text.slice(lastIndex))); if (count > 0) { node.parentNode.replaceChild(fragment, node); totalReplaced += count; updateWidget(); } } function scanPage(root = document.body) { if (!enabled || !root) return; const walker = document.createTreeWalker( root, NodeFilter.SHOW_TEXT, { acceptNode(node) { if (shouldSkipNode(node)) return NodeFilter.FILTER_REJECT; if (!node.nodeValue.trim()) return NodeFilter.FILTER_REJECT; return NodeFilter.FILTER_ACCEPT; } } ); const nodes = []; while (walker.nextNode()) { nodes.push(walker.currentNode); } nodes.forEach(processTextNode); } function getAllergyStatus() { if (totalReplaced <= 2) { return { level: '🟢', text: 'האוויר כמעט נקי', percent: 18 }; } if (totalReplaced <= 5) { return { level: '🟡', text: 'רמת ט.ר.פ בינונית', percent: 43 }; } if (totalReplaced <= 10) { return { level: '🟠', text: 'מומלץ להרכיב מסכה', percent: 71 }; } return { level: '🔴', text: 'התפרצות ט.ר.פ חמורה. העמוד עבר חיטוי.', percent: 96 }; } function createWidget() { const style = document.createElement('style'); style.textContent = ` #trf-allergy-widget { position: fixed; left: 16px; bottom: 16px; z-index: 999999; width: 245px; direction: rtl; font-family: Arial, sans-serif; background: #111827; color: #fff; border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.25); padding: 12px 14px; font-size: 13px; line-height: 1.5; border: 1px solid rgba(255,255,255,.12); } #trf-allergy-widget .trf-title { font-weight: bold; font-size: 14px; margin-bottom: 6px; } #trf-allergy-widget .trf-bar { height: 8px; background: rgba(255,255,255,.18); border-radius: 999px; overflow: hidden; margin: 7px 0; } #trf-allergy-widget .trf-fill { height: 100%; width: 0%; background: linear-gradient(90deg, #22c55e, #facc15, #f97316, #ef4444); transition: width .3s ease; } #trf-allergy-widget button { margin-top: 8px; width: 100%; border: 0; border-radius: 9px; padding: 6px 8px; cursor: pointer; font-weight: bold; background: #f3f4f6; color: #111827; } .trf-cleaned-word { display: inline-block; padding: 1px 5px; margin: 0 1px; border-radius: 7px; background: #fff3cd; color: #7a4b00; border: 1px dashed #d39e00; font-weight: 600; cursor: help; } `; document.head.appendChild(style); const widget = document.createElement('div'); widget.id = 'trf-allergy-widget'; widget.innerHTML = ` <div class="trf-title">🧪 מד אלרגיה לט.ר.פ</div> <div id="trf-status">סורק את העמוד...</div> <div class="trf-bar"><div class="trf-fill" id="trf-fill"></div></div> <div id="trf-counter">זוהו: 0 מופעים</div> <button id="trf-toggle"></button> `; document.body.appendChild(widget); document.getElementById('trf-toggle').addEventListener('click', () => { enabled = !enabled; localStorage.setItem(STORAGE_KEY, enabled ? 'true' : 'false'); updateWidget(); if (enabled) { scanPage(); } }); updateWidget(); } function updateWidget() { const statusEl = document.getElementById('trf-status'); const counterEl = document.getElementById('trf-counter'); const fillEl = document.getElementById('trf-fill'); const toggleEl = document.getElementById('trf-toggle'); if (!statusEl || !counterEl || !fillEl || !toggleEl) return; const status = getAllergyStatus(); statusEl.textContent = enabled ? `${status.level} ${status.text}` : '⚪ המחלץ כבוי כרגע'; counterEl.textContent = `זוהו וחוטאו: ${totalReplaced} מופעים`; fillEl.style.width = enabled ? `${status.percent}%` : '0%'; toggleEl.textContent = enabled ? 'כבה את המחלץ' : 'הפעל את המחלץ'; } function observeDynamicContent() { const observer = new MutationObserver((mutations) => { if (!enabled) return; for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node.nodeType === Node.TEXT_NODE) { processTextNode(node); } else if (node.nodeType === Node.ELEMENT_NODE) { scanPage(node); } } } }); observer.observe(document.body, { childList: true, subtree: true }); } function init() { createWidget(); scanPage(); observeDynamicContent(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();עובד נהדר...


-
@פרוזי וואו וואו וואו!!! פשוט מטורףףףף! איך עשית את זה??? זה כל כך מטריף אותי שאין לי מושג איך עשית את הטירוף המטורף הזה

-נושא ספאם, אפשר למחוק-
-
-נושא ספאם, אפשר למחוק-
למה למחוק, @פרוזי הביא פה משהו מטורף,
אם לא יתכתבו כאן, זה לא יהפוך לספאם@kasnik זה כבר ספאם. אבוד.
-
@kasnik זה כבר ספאם. אבוד.
@אברהם-גלסר
למה?
כי זה בקשה מוזרה?
ואז מה? -
@אברהם-גלסר
למה?
כי זה בקשה מוזרה?
ואז מה? -
@המלאך הפוסט הראשון נכתב בהומור (לפי הבנתי). היה מצחיק, היה נחמד, גם הסקריפט חמוד מאוד.
אבל בחייאת, זה ספאם.@אברהם-גלסר אבל יש כאן פוטנציאל ורעיון שיכול להתפתח לטובה.
-
@אברהם-גלסר אבל יש כאן פוטנציאל ורעיון שיכול להתפתח לטובה.
-
@המלאך הפוסט הראשון נכתב בהומור (לפי הבנתי). היה מצחיק, היה נחמד, גם הסקריפט חמוד מאוד.
אבל בחייאת, זה ספאם. -
-
עריכה -
בוצע.
הכנתי סקריפט ל־Tampermonkey שמרפא את האלרגיה לשורש ט.ר.פ.
מה הוא עושה?
- מחליף אוטומטית כל מילה שקשורה לשורש ט.ר.פ. (כולל הטיות וכתיבים יצירתיים) בביטוי אקראי ומשעשע.
- לכל החלפה מוצמד Tooltip שמסביר שהמילה "צונזרה עקב אלרגיה חריפה לשורש ט.ר.פ."
- מוסיף בפינת המסך מד אלרגיה שסופר כמה מופעים "נגועים" נמצאו בעמוד ומציג את רמת הזיהום.
- עובד גם על תוכן חדש שנטען בפורום, בלי צורך לרענן את הדף.
- כולל אפשרות להפעיל ולכבות את הסקריפט בלחיצה אחת.
מצרף את הקוד למי שרוצה לנסות.

// ==UserScript== // @name מחלץ אלרגיה לשורש ט.ר.פ - מתמחים טופ // @namespace https://mitmachim.top/ // @version 1.0 // @description מחליף מילים משורש ט.ר.פ בתחליפים מצחיקים + מד אלרגיה צף // @author Frozi // @match https://mitmachim.top/* // @match https://www.mitmachim.top/* // @grant none // ==/UserScript== (function () { 'use strict'; const STORAGE_KEY = 't-r-f-allergy-enabled'; let enabled = localStorage.getItem(STORAGE_KEY) !== 'false'; let totalReplaced = 0; const replacements = [ 'חריג בנוף 🌵', 'מוגזם ברמות 📈', 'בלתי נתפס 🤯', 'רמת התלהבות לא מאושרת', 'דורש אישור מהנדס', 'חורג מהתקן 🚨', 'התקף התלהבות', 'מקרה קשה של וואו', 'לא עבר ועדת ביקורת', 'מחוץ לסקאלה', 'טעון בדיקה חוזרת', 'חשוד כהתלהבות יתר', 'משרד הבריאות לא מאשר', '404: השפיות לא נמצאה', 'נשלח לבידוד לשוני', 'התפרצות רגשית מבוקרת', 'נמצא חיובי לט.ר.פ', 'אירוע חריג במרחב הפורומי', 'נדרש חיטוי טקסטואלי', 'תופעה שאינה מוסברת מדעית', 'המערכת סימנה כאובר', 'תסמין מתקדם של התלהבות', 'לא לשימוש לפני קפה', 'הוחלף מטעמי רגישות הציבור', 'מילה שנגנזה בארכיון' ]; const forbiddenRegex = /[\u0590-\u05FF]*ט+[\u0590-\u05FF]*ר+[\u0590-\u05FF]*[פף]+[\u0590-\u05FF]*/g; const skipTags = new Set([ 'SCRIPT', 'STYLE', 'TEXTAREA', 'INPUT', 'CODE', 'PRE', 'NOSCRIPT', 'SELECT', 'OPTION' ]); function randomReplacement() { return replacements[Math.floor(Math.random() * replacements.length)]; } function shouldSkipNode(node) { const parent = node.parentElement; if (!parent) return true; if (skipTags.has(parent.tagName)) return true; if (parent.closest('.trf-cleaned-word')) return true; if (parent.isContentEditable) return true; return false; } function processTextNode(node) { if (!enabled || shouldSkipNode(node)) return; const text = node.nodeValue; if (!forbiddenRegex.test(text)) return; forbiddenRegex.lastIndex = 0; const fragment = document.createDocumentFragment(); let lastIndex = 0; let count = 0; text.replace(forbiddenRegex, (match, offset) => { fragment.appendChild(document.createTextNode(text.slice(lastIndex, offset))); const span = document.createElement('span'); span.className = 'trf-cleaned-word'; span.textContent = randomReplacement(); span.title = `המילה המקורית "${match}" צונזרה עקב אלרגיה חריפה לשורש ט.ר.פ.`; span.dataset.original = match; fragment.appendChild(span); lastIndex = offset + match.length; count++; }); fragment.appendChild(document.createTextNode(text.slice(lastIndex))); if (count > 0) { node.parentNode.replaceChild(fragment, node); totalReplaced += count; updateWidget(); } } function scanPage(root = document.body) { if (!enabled || !root) return; const walker = document.createTreeWalker( root, NodeFilter.SHOW_TEXT, { acceptNode(node) { if (shouldSkipNode(node)) return NodeFilter.FILTER_REJECT; if (!node.nodeValue.trim()) return NodeFilter.FILTER_REJECT; return NodeFilter.FILTER_ACCEPT; } } ); const nodes = []; while (walker.nextNode()) { nodes.push(walker.currentNode); } nodes.forEach(processTextNode); } function getAllergyStatus() { if (totalReplaced <= 2) { return { level: '🟢', text: 'האוויר כמעט נקי', percent: 18 }; } if (totalReplaced <= 5) { return { level: '🟡', text: 'רמת ט.ר.פ בינונית', percent: 43 }; } if (totalReplaced <= 10) { return { level: '🟠', text: 'מומלץ להרכיב מסכה', percent: 71 }; } return { level: '🔴', text: 'התפרצות ט.ר.פ חמורה. העמוד עבר חיטוי.', percent: 96 }; } function createWidget() { const style = document.createElement('style'); style.textContent = ` #trf-allergy-widget { position: fixed; left: 16px; bottom: 16px; z-index: 999999; width: 245px; direction: rtl; font-family: Arial, sans-serif; background: #111827; color: #fff; border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.25); padding: 12px 14px; font-size: 13px; line-height: 1.5; border: 1px solid rgba(255,255,255,.12); } #trf-allergy-widget .trf-title { font-weight: bold; font-size: 14px; margin-bottom: 6px; } #trf-allergy-widget .trf-bar { height: 8px; background: rgba(255,255,255,.18); border-radius: 999px; overflow: hidden; margin: 7px 0; } #trf-allergy-widget .trf-fill { height: 100%; width: 0%; background: linear-gradient(90deg, #22c55e, #facc15, #f97316, #ef4444); transition: width .3s ease; } #trf-allergy-widget button { margin-top: 8px; width: 100%; border: 0; border-radius: 9px; padding: 6px 8px; cursor: pointer; font-weight: bold; background: #f3f4f6; color: #111827; } .trf-cleaned-word { display: inline-block; padding: 1px 5px; margin: 0 1px; border-radius: 7px; background: #fff3cd; color: #7a4b00; border: 1px dashed #d39e00; font-weight: 600; cursor: help; } `; document.head.appendChild(style); const widget = document.createElement('div'); widget.id = 'trf-allergy-widget'; widget.innerHTML = ` <div class="trf-title">🧪 מד אלרגיה לט.ר.פ</div> <div id="trf-status">סורק את העמוד...</div> <div class="trf-bar"><div class="trf-fill" id="trf-fill"></div></div> <div id="trf-counter">זוהו: 0 מופעים</div> <button id="trf-toggle"></button> `; document.body.appendChild(widget); document.getElementById('trf-toggle').addEventListener('click', () => { enabled = !enabled; localStorage.setItem(STORAGE_KEY, enabled ? 'true' : 'false'); updateWidget(); if (enabled) { scanPage(); } }); updateWidget(); } function updateWidget() { const statusEl = document.getElementById('trf-status'); const counterEl = document.getElementById('trf-counter'); const fillEl = document.getElementById('trf-fill'); const toggleEl = document.getElementById('trf-toggle'); if (!statusEl || !counterEl || !fillEl || !toggleEl) return; const status = getAllergyStatus(); statusEl.textContent = enabled ? `${status.level} ${status.text}` : '⚪ המחלץ כבוי כרגע'; counterEl.textContent = `זוהו וחוטאו: ${totalReplaced} מופעים`; fillEl.style.width = enabled ? `${status.percent}%` : '0%'; toggleEl.textContent = enabled ? 'כבה את המחלץ' : 'הפעל את המחלץ'; } function observeDynamicContent() { const observer = new MutationObserver((mutations) => { if (!enabled) return; for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node.nodeType === Node.TEXT_NODE) { processTextNode(node); } else if (node.nodeType === Node.ELEMENT_NODE) { scanPage(node); } } } }); observer.observe(document.body, { childList: true, subtree: true }); } function init() { createWidget(); scanPage(); observeDynamicContent(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();עובד נהדר...


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