尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
אתר שסורק אתרי חדשות ישראליים דרך RSS, מזהה אירועים שמסוקרים ביותר ממקור אחד ומציג כל אירוע ככרטיס. הזיהוי הסמנטי רץ מקומית, בלי מפתחות API ובלי עלות שוטפת. האתר מציג כותרות וקישורים בלבד ולא מעתיק כתבות. צריך Node.js בגרסה 20 ומעלה. בהרצה הראשונה המודל multilingual-e5-small (כ-130MB) יורד פעם אחת לתיקייה models/. מאותו רגע הוא רץ בלי אינטרנט. פותחים את http://localhost:3000. הסריקה הראשונה מתחילה מיד ולוקחת כחצי דקה. הדף מתעדכן לבד כל 30 שניות.檢視完整 README ↗
אתר שסורק אתרי חדשות ישראליים דרך RSS, מזהה אירועים שמסוקרים ביותר ממקור אחד ומציג כל אירוע ככרטיס. הזיהוי הסמנטי רץ מקומית, בלי מפתחות API ובלי עלות שוטפת. האתר מציג כותרות וקישורים בלבד ולא מעתיק כתבות.
צריך Node.js בגרסה 20 ומעלה.
cd israel-news
npm install
בהרצה הראשונה המודל multilingual-e5-small (כ-130MB) יורד פעם אחת לתיקייה models/. מאותו רגע הוא רץ בלי אינטרנט.
npm start
פותחים את http://localhost:3000. הסריקה הראשונה מתחילה מיד ולוקחת כחצי דקה. הדף מתעדכן לבד כל 30 שניות.
npm test: בדיקות יחידה, וגם בדיקות סמנטיות על כותרות אמיתיות מהפידים.npm run eval: דוח דיוק מלא של זיהוי האירועים (עם VERBOSE=1 הוא מפרט כל טעות).http://localhost:3000/#/status: מצב כל מקור, כולל שגיאות.כך האתר מתעדכן כל הזמן, גם כשהמחשב כבוי:
.github/workflows/scan.yml: ריצה אחת ארוכה (כ-5.5 שעות) שסורקת כל 3 דקות (scripts/scan-loop.js) ומפרסמת אחרי כל סריקה. בסופה היא מפעילה בעצמה את הריצה הבאה. ה-cron של GitHub הוא רק גיבוי, כי הוא לא אמין. המצב נשמר בענף data: אירועים, ETag, וקבצי events.json ו-status.json..github/workflows/pages.yml: מפרסם את public/ ל-GitHub Pages. בכל פתיחה הדף קורא את events.json העדכני מהענף data.הגדרה חד-פעמית:
הערות:
npm start עדיין עובד מקומית כמו קודם, לפיתוח.config.json)כל ההגדרות נמצאות בקובץ אחד. אחרי שינוי מפעילים את השרת מחדש.
| הגדרה | ברירת מחדל | משמעות |
|---|---|---|
minSources | 2 | כמה מקורות שונים צריכים לסקר סיפור כדי שייחשב אירוע. שתי כתבות מאותו אתר לא נחשבות. |
similarityThreshold | 0.89 | מאיזה דמיון (0 עד 1) שתי כותרות בעברית נחשבות אותו אירוע. ערך גבוה יותר נותן פחות מיזוגים שגויים, וגם יותר פספוסים. |
crossLanguageThreshold | 0.84 | אותו דבר, לזוג כותרות בעברית ובאנגלית (Jerusalem Post). |
scanIntervalMinutes | 10 | כל כמה דקות סורקים. |
maxEvents | 10 | כמה אירועים מוצגים לכל היותר. |
eventMergeThreshold | 0.875 | אירועים שכבר קיימים מתאחדים אם הדמיון הממוצע ביניהם עובר את הערך הזה, ולפחות זוג כותרות אחד עובר את similarityThreshold. זה מונע כרטיסים כפולים על אותו סיפור. |
noSharedNamePenalty | 0.01 | שתי כותרות בעברית בלי אף מילה נדירה משותפת (שם, חברה, מקום) צריכות להיות דומות יותר בערך הזה כדי להתאחד. מונע איחוד של סיפורים שרק נשמעים דומים. |
storyMergeThreshold | 0.865 | שני אירועים שיש להם מילת מפתח משותפת (מילה שמופיעה בלפחות שתיים ומחצית מהכותרות של כל אחד, למשל "פליי דובאי") מתאחדים כבר מדמיון ממוצע כזה. מאחד זוויות שונות של אותה פרשה. 0 מכבה. |
showPhotos | false | הצגת תמונות מהפידים של האתרים. כבוי בכוונה: צילומי עיתונות מוגנים בזכויות יוצרים ולרוב מורשים לאתר עצמו בלבד. להדליק רק אחרי אישור בכתב מהאתרים. |
leadMinSources / leadHoldMinutes | 3 / 120 | אירוע שמסוקר בלפחות כך וכך אתרים הופך ל"סיפור המרכזי": הוא מוצג ראשון במשך כך וכך דקות מהרגע שהגיע לסף, ולא נדחק מהרשימה בזמן הזה. אם יש כמה כאלה, מוביל זה שמסוקר ביותר אתרים. 0 מכבה. |
singleSourceFallbackMinutes | 10 | אם במשך כך וכך דקות לא זוהה אירוע ממספר מקורות, נוסף הסיפור "החם" ביותר ממקור אחד, מסומן "חם · מקור אחד". כשאתר נוסף מסקר אותו, הוא הופך לאירוע רגיל. 0 מכבה. |
כשיתווספו מקורות, משנים ב-config.json:
"minSources": 3,
ומפעילים מחדש (npm start). אירועים שכבר זוהו נשארים, והחדשים יצטרכו 3 מקורות.
כדי לבדוק ערך בלי לשנות את הקובץ:
THRESHOLD=0.88 npm run eval
מה בודקים בפלט: "different-event kept apart" (כמה מיזוגים שגויים נמנעו) מול "same-event found" (כמה התאמות נכונות נמצאו).
robots.txt לא אוסר עליו.sources ב-config.json:{
"id": "newsite",
"name": "שם האתר",
"color": "#8a2be2",
"enabled": true,
"feeds": ["https://example.co.il/rss.xml"],
"includeUrlPatterns": ["example\\.co\\.il/news/"],
"excludeUrlPatterns": ["/opinion/"],
"excludeTitlePatterns": ["ממומן"],
"dateLabelIsLocalTime": false
}
feeds: אפשר לתת כמה פידים, והם ייחשבו מקור אחד (כמו אצל גלובס).breakingFeeds: פיד המבזקים של האתר, אם יש לו. כתבה משם נחשבת "חמה" יותר.hot: עם false המקור לא יופיע לבד ככרטיס "חם · מקור אחד" (כך אצל כיכר השבת). הוא עדיין מצטרף לאירועים שמסוקרים במקורות נוספים.includeUrlPatterns ו-excludeUrlPatterns: ביטויים רגולריים על הקישור, לסינון מדורים שאינם חדשות (ספורט, לייף סטייל, דעות). אם אין include, כל הקישורים נכנסים חוץ מה-exclude.dateLabelIsLocalTime: מסמנים true אם הפיד כותב "GMT" אבל בפועל נותן שעון ישראל (כך אצל וואלה ו-JPost). כדי לבדוק, משווים את זמן הפריט בפיד לזמן שמופיע בכתבה עצמה."enabled": false.src/feeds.js): כל 3 דקות, בזה אחר זה, עם הפסקה של 1.5 שניות בין בקשות. נשלח User-Agent מזוהה ונכבדים ETag ו-If-Modified-Since. מקור שנכשל ממשיך לרוץ בלי להפריע לאחרים, השגיאה נרשמת ב-data/errors.log, והמקור מקבל השהיה הולכת וגדלה עד 30 דקות.src/filters.js): ממומן, חידונים, הורוסקופים ומדורים שאינם חדשות.src/dates.js): הכל ל-UTC. זמנים עתידיים מוחלפים בזמן ההורדה.src/text.js): הסרת "בלעדי:", "| צפו", פיסוק ומירכאות. ראשי תיבות כמו צה"ל נשמרים.src/embedder.js): המודל intfloat/multilingual-e5-small בגרסת ONNX מכווצת (int8), דרך transformers.js.src/events.js): כותרת חדשה מצטרפת לאירוע קיים אם הדמיון הממוצע שלה לכתבות שבו עובר את הסף. כותרות שלא הצטרפו לשום אירוע מקובצות ביניהן בשיטת average-linkage, שמונעת "שרשור" של סיפורים לא קשורים. אשכול הופך לאירוע רק כשיש בו minSources אתרים שונים.המצב נשמר ב-data/state.json, כך שאחרי הפעלה מחדש זמני הזיהוי נשמרים.
פעילים: ynet (כולל מבזקים), ישראל היום, מעריב (כולל מבזקים), הארץ, TheMarker, גלובס, סרוגים, ערוץ 7, כיכר השבת (בלי כרטיסים חמים). Jerusalem Post כבוי.
דולגו:
robots.txt שלו אוסר גישה ל-/feed/.כתבות ספורט מגיעות מפידי הספורט של האתרים (sportFeeds במקור, או sportUrlPatterns כשהן מגיעות בתוך הפיד הכללי) ומוצגות רק במדור "ספורט". הן לא משתתפות בזיהוי האירועים של העמוד הראשי. מקורות: ynet ספורט, ישראל היום ספורט ו-ONE. הפידים של מעריב ספורט קיימים אבל לא מתעדכנים מאז 2025; לספורט 5, ספורט 1 ו-וואלה ספורט אין פיד.
המדור "בחירות 2026" מציג את סקר המנדטים האחרון של כל ערוץ (חדשות 12, רשת 13, כאן 11, ערוץ 14, i24NEWS), ממוצע לכל מפלגה ותחזית (מי המפלגה הגדולה ובכמה).
הנתונים נקראים מטבלת הסקרים בוויקיפדיה דרך ה-API הפתוח שלה (src/elections.js), כל כמה שעות, ונשמרים ב-elections.json בענף data.
הממוצע מחושב בקוד; את נוסח התחזית כותב המודל מתוך המספרים בלבד (וכל מספר בטקסט נבדק מול הנתונים).
מיום שישי שלפני הבחירות ועד סגירת הקלפיות החוק אוסר לפרסם סקרים, ולכן בימים האלה הקובץ לא מכיל מספרים והמדור מציג הודעה.
articleMaxAgeHours |
24 |
| כתבות ישנות יותר מזה לא נכנסות לזיהוי. |