הוספתי אפשרות שזה יהיה סקריפט בTampermonkey
התקינו את Tampermonkey מהחנות והתקינו את הסקריפט הזה
וכן עוד שיפור לא צריך ללחוץ לחיצה ימנית מיד אחרי הדגשה יהיה חלון צף קטן שלחיצה עליו תפתח את ההסבר
הסקריפט
// ==UserScript==
// @name מה זה? - מילון חכם (Tampermonkey Version)
// @namespace http://tampermonkey.net/
// @version 3.0
// @description הסבר מהיר על מושגים מהמכלול, ויקיפדיה ומאגר AI מקומי
// @author Gemini נטפרי
// @match *://*/*
// @grant GM_xmlhttpRequest
// @connect www.hamichlol.org.il
// @connect he.wikipedia.org
// ==/UserScript==
(function() {
'use strict';
// --- מאגר ידע מקומי ---
const localDatabase = {
"prompt": "הנחיה או פקודה טקסטואלית הניתנת למודל בינה מלאכותית (כמו ג'מיני) כדי להפיק ממנו תוצאה מסוימת.",
"api": "ממשק תכנות המאפשר לתוכנות שונות לתקשר ביניהן. בתוספים, הוא משמש למשיכת מידע מאתרים אחרים.",
"gemini": "הבינה המלאכותית המתקדמת של גוגל, המסוגלת להבין טקסט, קוד ותמונות ולענות על שאלות מורכבות.",
"gpt": "משפחת מודלי שפה חכמים (כמו ChatGPT) המסוגלים לנהל שיחה ולכתוב טקסטים ברמה אנושית.",
"manifest": "קובץ ההגדרות הראשי של תוסף כרום. הוא מכיל את שם התוסף, הגרסה וההרשאות שלו.",
"github": "אתר איחסון לקודי תוכנה. מתכנתים משתמשים בו כדי לשמור גרסאות של הקוד שלהם ולשתף אותם.",
"open source": "קוד פתוח: תוכנה שכל אחד יכול לראות את הקוד שלה, להעתיק אותו ולשפר אותו בחינם.",
"json": "פורמט נפוץ להעברת נתונים בין מחשבים, הבנוי מרשימה של מפתחות וערכים.",
"backend": "צד השרת: החלק בתוכנה שרץ 'מאחורי הקלעים' ומטפל בלוגיקה ובבסיסי הנתונים.",
"frontend": "צד הלקוח: כל מה שהמשתמש רואה ומתקשר איתו בדפדפן (עיצוב וכפתורים).",
"netfree": "ספק אינטרנט עם סינון תוכן מתקדם המותאם לציבור החרדי, הכולל סינון תמונות אנושי.",
"extension": "תוסף: אפליקציה קטנה שמותקנת על הדפדפן ומוסיפה לו יכולות חדשות.",
"cache": "זיכרון מטמון: מקום בו הדפדפן שומר עותק של אתרים כדי להאיץ את הטעינה שלהם בעתיד.",
"vpn": "רשת פרטית שיוצרת 'צינור' מאובטח לגלישה ומסתירה את המיקום האמיתי של המחשב.",
"token": "קוד זיהוי דיגיטלי המשמש לאבטחת כניסה או לגישה לשירותים מוגנים.",
"script": "סקריפט: רצף של פקודות קוד שהמחשב מבצע כדי להשלים משימה אוטומטית.",
"cookie": "קובץ קטן שהאתר שומר בדפדפן כדי לזכור את המשתמש ולהשאיר אותו מחובר.",
"האם ישראל עשה ניתוח בחיים שלו ואם כן למה": "כן ישראל עשה ניתוח להכנסת ברגי טטיניום כי נשברה לו חוליה בגב לאחר טיול."
};
// יצירת כפתור החיפוש הצף
const searchButton = document.createElement('div');
searchButton.innerHTML = "🔍";
searchButton.style.cssText = "position:absolute; display:none; background:#e67e22; color:white; padding:5px; border-radius:50%; cursor:pointer; z-index:2147483647; width:25px; height:25px; text-align:center; font-size:16px; line-height:25px; box-shadow:0 2px 5px rgba(0,0,0,0.3);";
document.body.appendChild(searchButton);
let selectedText = "";
// הצגת הכפתור כשמסמנים טקסט
document.addEventListener('mouseup', (e) => {
const selection = window.getSelection().toString().trim();
if (selection.length > 0) {
selectedText = selection;
searchButton.style.left = `${e.pageX + 10}px`;
searchButton.style.top = `${e.pageY + 10}px`;
searchButton.style.display = 'block';
} else {
searchButton.style.display = 'none';
}
});
// פונקציית החיפוש
async function getSmartInfo(q) {
const cleanQ = q.toLowerCase();
if (localDatabase[cleanQ]) return { title: "הסבר ממאגר התוסף 💡", desc: localDatabase[cleanQ] };
// חיפוש במכלול
try {
const res = await fetch(`https://www.hamichlol.org.il/w/api.php?action=query&prop=extracts&exintro&explaintext&titles=${encodeURIComponent(q)}&format=json&origin=*`);
const data = await res.json();
const pages = data.query.pages;
const pageId = Object.keys(pages)[0];
if (pageId !== "-1" && pages[pageId].extract) return { title: "מהמכלול:", desc: pages[pageId].extract.split('.')[0] + "." };
} catch (e) {}
// חיפוש בויקיפדיה
try {
const res = await fetch(`https://he.wikipedia.org/api/rest_v1/page/summary/${encodeURIComponent(q)}`);
const data = await res.json();
if (data.extract) return { title: "מוויקיפדיה:", desc: data.extract };
} catch (e) {}
return { title: "תוצאה:", desc: "לא נמצא הסבר מפורט למושג '" + q + "'. נסה לסמן מילה בודדת או מושג מוכר." };
}
// יצירת תיבת התוצאה
function showBox(text, result = null) {
let box = document.getElementById('what-is-it-box');
if (!box) {
box = document.createElement('div');
box.id = 'what-is-it-box';
box.style.cssText = "position:fixed; bottom:20px; right:20px; width:320px; background:white; border-radius:12px; border:1px solid #ddd; box-shadow:0 8px 30px rgba(0,0,0,0.2); z-index:2147483647; padding:15px; font-family:system-ui, sans-serif; direction:rtl; text-align:right; cursor:pointer;";
document.body.appendChild(box);
box.onclick = () => box.remove();
}
if (!result) {
box.innerHTML = `<div style='color:#e67e22; font-weight:bold; margin-bottom:5px;'>🔍 בודק עבור: ${text}</div><div style='color:#7f8c8d;'>מחפש במאגרים...</div>`;
} else {
box.innerHTML = `<div style='font-weight:bold; color:#2c3e50; border-bottom:1px solid #eee; padding-bottom:5px; margin-bottom:5px;'>${result.title}</div>
<div style='font-size:14px; color:#34495e; line-height:1.5;'>${result.desc}</div>
<div style='font-size:10px; color:#999; margin-top:10px; text-align:left;'>לחץ לסגירה</div>`;
}
}
// הפעלה בלחיצה על האייקון
searchButton.addEventListener('mousedown', async (e) => {
e.preventDefault(); // מניעת ביטול הסימון
searchButton.style.display = 'none';
showBox(selectedText);
const info = await getSmartInfo(selectedText);
showBox(selectedText, info);
});
})();