דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
ה

הידען

@הידען
הפסקת מעקב מעקב
אודות
פוסטים
191
נושאים
34
שיתופים
0
קבוצות
0
עוקבים
3
עוקב אחרי
1

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • המלצה | **🎵 תמלול שיעורים — אוטומטי ובחינם** עכשיו בקלות להתקנה
    ה הידען

    🎵 תמלול שיעורים — אוטומטי ובחינם

    שולחים הקלטה של שיעור תורני למייל → מקבלים תמלול מלא ומעוצב חזרה. זה הכל.

    מה זה עושה?

    מתמלל שיעורי תורה (גמרא, הלכה, חסידות, מחשבה, תנ"ך) בדיוק גבוה
    מחזיר תמלול מעוצב במייל + קובץ Word מצורף
    תומך בהקלטות מימות המשיח ישר מהקו

    למי זה מתאים? מגידי שיעורים, אברכים, גבאים, כל מי שמקליט שיעורים ורוצה אותם כתובים.

    כמה זה עולה? חינם לגמרי. רץ על חשבון Google בלי שרת חיצוני.

    3 דרכים לשלוח הקלטה:

    📧 דרך מייל — שלחו מייל לעצמכם עם הנושא "תמלול" וקובץ הקלטה מצורף (mp3, wav, m4a...). תוך דקות תקבלו תשובה עם התמלול.

    📞 מימות המשיח — אוטומטי — הכניסו את הטוקן ומספר השלוחה בהגדרות, וכל הקלטה שתעלה לשלוחה תתומלל אוטומטית ותשלח למייל.

    ✉️ מכתובת אוטומטית — הגדירו כתובת (כמו ivr@yml.li של ימות המשיח) וכל מייל שמגיע ממנה עם הקלטה יתומלל בלי לכתוב שום נושא.

    איך מתקינים? (2 דקות)

    1️⃣ לחצו על הקישור ליצירת עותק: https://docs.google.com/spreadsheets/d/1ODvDBSYMz1r5eiuwPVCdOch_Fx21CFbhs2nDHyyTUSo/copy

    2️⃣ מלאו בדף "הגדרות": מפתח API של Gemini (חינם מ-Google AI Studio) + כתובת מייל

    3️⃣ תוספים ← Apps Script ← בחרו "הפעלהראשונה" ← לחצו ▶️ ← אשרו הרשאות

    ✅ מוכן! מעכשיו כל הקלטה שתשלחו למייל עם הנושא "תמלול" — תחזור מתומללת תוך דקות.


    ⚙️ הסבר על דף ההגדרות

    מפתח API 1-5 מפתח Gemini API מ-Google AI Studio (aistudio.google.com). אפשר עד 5 מפתחות — אם אחד נגמר הוא עובר לבא. חובה להזין לפחות מפתח אחד.

    מייל יעד כתובת מייל שאליה ישלחו התמלולים. אם משאירים ריק — נשלח לאותו מייל שהתקנתם עליו. אופציונלי.

    נושאי מייל לתמלול מילים שאם הן מופיעות בנושא המייל — הקובץ המצורף יתומלל. אפשר כמה מילים מופרדות בפסיק. לדוגמה: תמלול,שיעור,הקלטה

    כתובות אוטומטיות כתובות מייל שכל הקלטה שמגיעה מהן תתומלל אוטומטית, בלי קשר לנושא המייל. מופרדות בפסיק. לדוגמה: ivr@yml.li

    טוקן ימות המשיח הטוקן מחשבון ימות המשיח שלכם. אם יש לכם מערכת בימות המשיח עם הקלטות — שימו את הטוקן וזה יתמלל אוטומטית. אופציונלי.

    שלוחה מספר השלוחה שבה נמצאות ההקלטות בימות המשיח. לדוגמה: 3

    תדירות ריצה (דקות) כל כמה דקות המערכת בודקת מיילים חדשים. מ-1 עד 10. ברירת מחדל: 5

    📧 איך שולחים הקלטה לתמלול?

    דרך 1 — מייל עם נושא: שלחו מייל (לעצמכם או ממישהו אחר) עם נושא שמכיל את המילה "תמלול" (או כל מילה שהגדרתם) וצרפו קובץ הקלטה (mp3, wav, m4a, ogg, flac, aac). תוך כמה דקות תקבלו תשובה באותו שרשור עם התמלול המלא + קובץ Word מצורף.

    דרך 2 — כתובת אוטומטית: אם הגדרתם כתובת אוטומטית (כמו ivr@yml.li) — כל מייל עם הקלטה שמגיע מהכתובת הזו יתומלל אוטומטית בלי שצריך נושא מיוחד.

    דרך 3 — ימות המשיח: אם הגדרתם טוקן ושלוחה — המערכת בודקת אוטומטית הקלטות חדשות בשלוחה ומתמללת אותן. התמלול נשלח למייל היעד.

    📝 דף הנחיות

    בדף "הנחיות" יש את ההוראות שהמערכת נותנת לבינה המלאכותית. אפשר למחוק שורות שלא רלוונטיות (למשל אם השיעורים לא תורניים). אי אפשר לשנות טקסט קיים — רק למחוק שורות שלמות.

    🔄 פונקציות שימושיות (הרצה מעורך הסקריפט)

    הפעלהראשונה — מפעיל את הטריגר האוטומטי (צריך להריץ פעם אחת בלבד)
    הרצתתמלול — מריץ בדיקה ידנית עכשיו בלי לחכות לטריגר
    כיבוי — עוצר את הריצה האוטומטית (מוחק את כל הטריגרים)
    יצירתגליון — יוצר/מאפס את דפי הגליון מחדש (זהירות: מוחק הגדרות קיימות)

    שאלות נפוצות ❓

    כמה זמן לוקח תמלול? תלוי באורך ההקלטה. קובץ של 1MB לוקח כ-2 דקות. קובץ ארוך (שעה+) יכול לקחת 5-6 דקות.

    כמה זה עולה? חינם לגמרי. Gemini API נותן מכסה יומית חינמית. אם יש הרבה שיעורים — שימו כמה מפתחות API.

    מה הפורמטים הנתמכים? mp3, wav, m4a, ogg, flac, aac, aiff

    מה קורה אם התמלול נכשל? המערכת מנסה אוטומטית 8 מודלים שונים עם כל מפתח API. אם הכל נכשל — תקבלו הודעת שגיאה במייל.

    לסיום, נבקש לפנות אליכם בפנייה אישית מהלב. הואיל ועמל רב ומשאבים מרובים הושקעו בפיתוח תוכנה זו, חשוב לנו מאוד לקבל משוב מכל אחד ואחד אשר התקין את התוכנה והפעילה בהצלחה. קבלת התגובות וההערות מכם היא בנפשנו ממש, ונשמח מאוד להתעדכן על כך, בין באמצעות מענה למייל זה ובין בכתיבת תגובה או סימון 'לייק' בפורום. כמו כן, נשמח לקבל כל הצעה לשיפור, לייעול או לתיקון, כדי שנוכל להמשיך ולהשביח את הכלי לתועלת הכלל.

    עזרה הדדית - בינה מלאכותית

  • להורדה | תוכנת עימוד ספרים אוטומטי.... כולל אפשרות בקשות מגמיני לעיצוב!
    ה הידען

    אפשרות לעריכה מקצועית
    כולל אפשרות לעלות קובץ WORD והוא מעצב לבד אוטומטי

    לשנות לHTML
    עורך.TXT

    מהפכה בעימוד התורני: הכירו את הכלי החינמי שהופך כל טקסט לספר מעומד – היישר מהדפדפן (כולל עוזר AI מובנה!)
    כל מי שעסק אי פעם בהוצאת קונטרס, חידושי תורה לחג, חוברת זיכרון או עלון משפחתי, מכיר היטב את הדילמה הכואבת:
    תוכנות מקצועיות עולות הון, דורשות חודשי לימוד, ומסורבלות מאוד לעבודות קצרות.
    תוכנת Word: פשוטה לשימוש, אבל ספרים שמעומדים בה נראים "מטולאים" – כותרות רצות נשברות, רווחים לא אחידים, מספרי עמודים מתבלבלים, והתוצאה הסופית רחוקה מלהיראות כמו "ספר אמיתי".
    היום הדילמה הזו נגמרה.
    פיתחנו כלי עימוד ייעודי לעולם התורני, שפועל כולו כקובץ אחד ויחיד שנפתח ישירות בדפדפן אין צורך בהתקנה, אין שרתים, אין עלויות, והתוצאה – עימוד אותנטי ומרשים בדקות ספורות בלבד, עם ייצוא ישיר ל-PDF מוכן להדפסה!
    מה הכלי הזה יודע לעשות?
    עימוד חי בזמן אמת:
    בצד אחד עורכים את הטקסט – ובצד השני העמודים מתעמדים בזמן אמת בפורמט ספר אמיתי. כל אות ומילה מחושבות מיד, ללא צורך בהרצת סקריפטים.
    ייבוא חכם מקובץ Word בלחיצת כפתור:
    כותבים כרגיל בוורד ומייבאים את הקובץ. המערכת מזהה וממירה אוטומטית:
    כותרת עם שלוש כוכביות הופכת לשם הפרק.
    כותרת עם ארבע כוכביות הופכת לכותרת ראשית.
    "כותרת 1" הופכת לכותרת משנה מעוצבת.
    פסקאות מוזחות ("הגדל כניסה") הופכות לקטע נכנס / ציטוט.
    כל ההדגשות (Bold) נשמרות במדויק.
    טיפוגרפיה ומראה תורני אותנטי:
    כותרות רצות (Running Headers): מתחלפות אוטומטית לפי פרקים וכותרות, עם הפרדה בין עמודי שמאל לימין (זוגי/אי-זוגי).
    לוגו עליון קלאסי: יצירה אוטומטית של סרט עיטור תורני וקטורי וחד עם שם הספר.
    מספור עברי מדויק: אותיות (א, ב, ג... ט"ו, ט"ז, ק', ת"ש וכו') או מספרים.
    סגנון כותרות מתקדם: תיבות אפורות מעוטרות, נקודות מפרידות, פסים מעוצבים ועוד.
    שער הספר, עמודי פרטים ושערי חלקים:
    בלחיצת כפתור מוסיפים עמוד שער מהודר בעיצוב מדליון מסורתי (כולל כותרת, משנה, שורות מחבר ומהדורה).
    עמוד פרטים והקדשות מובנה (כולל קווים מפרידים והדגשות אוטומטיות).
    "שער חלק": כפתור ייעודי שיוצר עמוד שער פנימי יפהפה לפני חלק חדש בספר.
    הצלת סוגריים הפוכים (פיצ'ר זהב ללומדי תורה!):
    מכירים את הטקסטים שמעתיקים ממאגרים תורניים והסוגריים מתהפכים? כפתור "תיקון סוגריים" סורק את הטקסט והופך אותם בחזרה באופן תקני ברגע.
    שליטה מוחלטת בגופנים:
    המערכת קוראת את כל הפונטים המותקנים במחשב שלכם (פרנק-ריהל, הדסה, גוטמן וכו'), ובנוסף מאפשרת לבחור ממאות פונטים חינמיים של Google Fonts ישירות מהרשת.

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

    מדריך: איך לבקש מ-Gemini בקשות ולקבל תוצאות מושלמות?
    בשדה "מה לשנות?" אפשר לכתוב לג'מיני כל בקשה בשפה חופשית. הנה כמה דוגמאות מומלצות לפי קטגוריות:

    1. בקשות לעיצוב כותרות ופסקאות:
      "הגדל את כל הכותרות הראשיות ב-4 נקודות, וצבע אותן בגוון בורדו כהה."
      "שנה את כותרות המשנה כך שלא יהיה להן רקע אפור, אלא קו תחתון עדין בצבע חום כהה."
      "הוסף רווח של עוד 3 נקודות בין כל פסקה לפסקה בטקסט הרגיל, והגדל מעט את ההזחה של קטעים נכנסים."
    2. בקשות להגדרות הספר והעמודים:
      "שנה את סגנון העמוד ללוגו, שורת הלוגו הראשונה תהיה 'קונטרס' והשנייה 'בית אהרן', ותתחיל את המספור מעמוד ה'."
      "הגדר שהמספור יהיה בספרות במקום באותיות, והוסף עמוד שער עם הכותרת 'שערי תבונה'."
    3. עיצוב ייחודי לעמודי השער והכותרת הרצה:
      "הפוך את הכותרת הרצה בראש כל עמוד לאותיות קטנות יותר בצבע אפור כהה, עם קו מפריד מקווקו."
      "שנה את מדליון השער כך שצבע הרקע שלו יהיה בגוון שמנת עדין עם מסגרת כפולה."
    4. טיפול בתוכן הטקסט (חובה לסמן את התיבה "שלח גם את תוכן הספר"):
      "זהה כל פסקה שמתחילה במילים 'פרק' או 'סימן' והפוך אותה לסגנון פרק."
      "הפוך את כל הפסקאות שמתחילות ב-'שנינו במשנה' או 'איתמר' לסגנון נכנס (ציטוט)."
      "בכל מקום שיש מראה מקום בסוגריים (למשל [ברכות ב ע"א]), שנה אותו לכתב קטן (תגית u)."

    איך משיגים מפתח API של Gemini? (זה חינם לגמרי!)
    נכנסים לכתובת: aistudio.google.com (מתחברים עם חשבון גוגל).
    לוחצים על Get API key ואז Create API key.
    מעתיקים את המפתח מדביקים אותו בתיבה בתוכנה – וזהו, הוא נשמר בדפדפן שלכם ומוכן לפעולה.
    הכלי נבנה מתוך רצון לזכות את הרבים ולאפשר לכל תלמיד חכם, אברך, עורך תורני ומחבר קונטרסים להוציא תחת ידיו פרי יפה ומתוקן לכבודה של תורה – במהירות, בקלות ובמראה מקצועי.
    מוזמנים להתנסות, לחוות דעה ולהציע שיפורים!

    מה מתורגם לאיזה סגנון:
    דהינו כותבים בוורד

    *** כותרת***עורך.TXT
    או כותרת

    541f6d6b-a514-41f8-94a8-b2fb5e942380-image.jpeg

    089dc6bc-2ffd-4dc2-950f-705b049d72f1-image.jpeg

    72ccc5ea-1fc0-428e-945a-083e783f19db-image.jpeg

    עזרה הדדית - מחשבים וטכנולוגיה

  • להורדה | תוכנת עימוד ספרים אוטומטי.... כולל אפשרות בקשות מגמיני לעיצוב!
    ה הידען

    למי שלא מאמין
    f144e32e-a340-477b-8035-f973fa188fdb-image.jpeg
    28606a4d-c072-4509-a2d5-edf84afcdf43-image.jpeg
    אולי בהמשך יעלה העדכון לזה!

    עזרה הדדית - מחשבים וטכנולוגיה

  • להורדה | תוכנת עימוד ספרים אוטומטי.... כולל אפשרות בקשות מגמיני לעיצוב!
    ה הידען

    גירסה חדשה עם עשרות שיפורים

    https://tora-forum.co.il/attachments/book_editor_v23-zip.229970/

    עמוד לדוג'

    7aad4f0d-9f43-46cc-950e-f499050dd1da-image.jpeg

    עזרה הדדית - מחשבים וטכנולוגיה

  • להורדה | להפוך קובץ WORD לקובץ HTML מעוצב
    ה הידען

    למי שזה עוזר להקל לו על הקריאה עשיתי אפשרות להפוך קובץ WORD לקובץ HTML מעוצב.

    https://drive.g**oogle.com/file/d/1uYSkb52zVQ14jTSEQczfyT8u-GpoDH-Z/view?usp=sharing

    להוריד **

    עזרה הדדית - מחשבים וטכנולוגיה

  • המלצה | נמאס לכם כל יום לעבור על כל המתחמים טופ? סקיפט לקבלת התוכנות החדשות והודעות החדשות ועדכוני AI החדשים ממתחמים טופ למייל פעם ביום
    ה הידען

    מכניסים לגוגל סקיפט ומאשרים,
    לא לשכוח להוסיף מייל
    ומפתח API של גמיני

    be9b3e78-8ea9-4bb3-a4fe-705831f72cdd-image.jpeg

    // ============================================================
    // מתמחים טופ - דיגסט יומי: תוכנות חדשות שנוצרו + עדכוני AI
    // גרסה: 2.2 (רוטציית 6 מפתחות + 7 מודלי Gemini + עד 350 מילים בסך הכל!)
    // פועל לצד שלוחה 7 ללא שום התנגשות (קידומת ייחודית: mm_*)
    // ============================================================

    var MM_CONFIG = {
    forumBaseUrl: 'https://mitmachim.top',
    recentApiUrl: 'https://mitmachim.top/api/recent',
    unreadApiUrl: 'https://mitmachim.top/api/unread',

    // מזהה אשכול חדשות ה-AI הרשמי
    aiTopicId: 95167,
    aiTopicUrl: 'https://mitmachim.top/topic/95167/שיתוף-מה-חדש-בבינה-מלאכותית-נספח-עדכוני-פיצ-רים-ודיונים',

    // הגבלה קריטית: סך כל המילים בכל הדיגסט ביחד לא יעלה על 350 מילים!
    maxTotalWords: 350,
    maxSoftwareItems: 8,
    maxAiPostsToScan: 15,

    triggerHour: 22,
    triggerTimeZone: 'Asia/Jerusalem',

    email: {
    senderName: 'מתמחים טופ - עדכונים יומיים',
    subjectPrefix: 'מתמחים טופ: תוכנות חדשות ו-AI - '
    },

    defaultRecipients: 'כאן לרשום מייל',

    // 7 מודלי Gemini לסריקה לפי סדר עדיפות מדויק
    geminiModels: [
    'gemini-3-flash-preview',
    'gemini-2.5-flash',
    'gemini-3.5-flash-lite',
    'gemini-3.1-flash-lite',
    'gemini-2.5-flash-lite'
    ],

    // מאגר 6 מפתחות API - אם אחד נכשל עובר מיידית לבא בתור!
    apiKeys: [
    'כאן לרשום מפתח API',
    '',
    '',
    '',
    '',
    ''
    ],

    maxOutputTokens: 1500,
    disableThinking: true,
    temperature: 0.2,
    retryDelayMs: 600
    };

    // ========== הפונקציה הראשית ==========

    function mm_digestMain() {
    try {
    Logger.log('=== מתמחים טופ - דיגסט יומי מתחיל ===');

    if (mm_alreadySentToday()) {
      Logger.log('כבר נשלח דיגסט מתמחים להיום - מדלג על הרצה חוזרת');
      return;
    }
    
    var recipients = mm_getRecipients();
    if (recipients.length === 0) {
      Logger.log('לא הוגדרו נמענים - מפסיק');
      return;
    }
    
    var days = ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'];
    var todayName = days[new Date().getDay()];
    var hebrewDate = mm_hebrewDate();
    var dateStr = new Date().toLocaleDateString('he-IL');
    
    // 1. שלב א': איתור וסינון תוכנות חדשות בלבד מהפורום (מהיום בלבד!)
    Logger.log('--- שלב 1: חיפוש תוכנות חדשות שנוצרו/פורסמו היום ---');
    var softwareItems = mm_fetchAndFilterNewSoftware();
    Logger.log('נמצאו %s תוכנות חדשות אמיתיות מהיום', softwareItems.length);
    
    // 2. שלב ב': שליפת עדכוני AI מאשכול ה-AI (מהיום בלבד!)
    Logger.log('--- שלב 2: שליפת עדכוני AI מאשכול %s ---', MM_CONFIG.aiTopicId);
    var aiUpdates = mm_fetchTodayAiThreadUpdates();
    Logger.log('נמצאו %s עדכוני AI רלוונטיים מהיום', aiUpdates.length);
    
    if (softwareItems.length === 0 && aiUpdates.length === 0) {
      Logger.log('אין תוכנות חדשות ואין עדכוני AI חדשים מהיום - לא נשלח מייל ריק');
      return;
    }
    
    // 3. הגבלה קשיחה: סך כל המילים בכל הדיגסט כולו ביחד לא יעלה על 350 מילים!
    var limited = mm_enforceTotalWordLimit(softwareItems, aiUpdates, MM_CONFIG.maxTotalWords);
    softwareItems = limited.softwareItems;
    aiUpdates = limited.aiUpdates;
    Logger.log('סך מילים כולל בדיגסט: %s (מקסימום מותר: %s)', limited.totalWords, MM_CONFIG.maxTotalWords);
    
    // 4. עיצוב ושליחת המייל
    var htmlBody = mm_formatDigestEmail(softwareItems, aiUpdates, dateStr, todayName, hebrewDate, limited.totalWords);
    var subject = MM_CONFIG.email.subjectPrefix + dateStr + 
                  ' (' + softwareItems.length + ' תוכנות, ' + aiUpdates.length + ' עדכוני AI)';
    
    for (var r = 0; r < recipients.length; r++) {
      MailApp.sendEmail({
        to: recipients[r],
        subject: subject,
        htmlBody: htmlBody,
        name: MM_CONFIG.email.senderName
      });
      Logger.log('מייל נשלח בהצלחה אל: %s', recipients[r]);
    }
    
    for (var s = 0; s < softwareItems.length; s++) {
      mm_markTopicSent(softwareItems[s].tid || softwareItems[s].url);
    }
    mm_markSentToday();
    
    Logger.log('=== דיגסט מתמחים טופ הסתיים בהצלחה! סך מילים: %s ===', limited.totalWords);
    

    } catch (e) {
    Logger.log('!!! שגיאה בהרצת דיגסט מתמחים: %s', e.stack || e.message);
    }
    }

    // ========== הגבלת מילים קפדנית: עד 350 מילים בסך הכל ==========

    function mm_countWords(str) {
    if (!str) return 0;
    return str.trim().split(/\s+/).filter(function(w) { return w.length > 0; }).length;
    }

    function mm_enforceTotalWordLimit(softwareItems, aiUpdates, maxLimit) {
    var limit = maxLimit || 350;
    var currentWords = 0;

    for (var i = 0; i < softwareItems.length; i++) {
    currentWords += mm_countWords(softwareItems[i].softwareName) + mm_countWords(softwareItems[i].summary);
    }
    for (var j = 0; j < aiUpdates.length; j++) {
    currentWords += mm_countWords(aiUpdates[j].headline) + mm_countWords(aiUpdates[j].bulletSummary);
    }

    if (currentWords <= limit) {
    return { softwareItems: softwareItems, aiUpdates: aiUpdates, totalWords: currentWords };
    }

    Logger.log('חריגת מילים: נמצאו ' + currentWords + ' מילים. מקצץ לעד ' + limit + ' מילים בסך הכל...');

    var totalItems = softwareItems.length + aiUpdates.length;
    var targetWordsPerItem = Math.floor((limit - 20) / Math.max(1, totalItems));

    var trimmedSoftware = [];
    var wordsUsed = 0;

    for (var s = 0; s < softwareItems.length; s++) {
    var item = softwareItems[s];
    var words = (item.summary || '').split(/\s+/).filter(Boolean);
    if (words.length > targetWordsPerItem) {
    item.summary = words.slice(0, targetWordsPerItem).join(' ') + '.';
    }
    wordsUsed += mm_countWords(item.softwareName) + mm_countWords(item.summary);
    trimmedSoftware.push(item);
    }

    var trimmedAi = [];
    for (var a = 0; a < aiUpdates.length; a++) {
    var ai = aiUpdates[a];
    var remaining = limit - wordsUsed;
    if (remaining <= 😎 break;

    var aiWords = (ai.bulletSummary || '').split(/\s+/).filter(Boolean);
    if (aiWords.length > Math.min(targetWordsPerItem, remaining - 5)) {
      ai.bulletSummary = aiWords.slice(0, Math.min(targetWordsPerItem, remaining - 5)).join(' ') + '.';
    }
    wordsUsed += mm_countWords(ai.headline) + mm_countWords(ai.bulletSummary);
    trimmedAi.push(ai);
    

    }

    return { softwareItems: trimmedSoftware, aiUpdates: trimmedAi, totalWords: wordsUsed };
    }

    // ========== שליפת תוכנות חדשות בלבד ==========

    function mm_fetchAndFilterNewSoftware() {
    var qualifiedSoftware = [];
    var rawTopics = mm_fetchRecentTopics();
    var todayStart = mm_getTodayStartTimestamp();

    for (var i = 0; i < rawTopics.length; i++) {
    if (qualifiedSoftware.length >= MM_CONFIG.maxSoftwareItems) break;

    var topic = rawTopics[i];
    var tid = String(topic.tid || topic.slug);
    var topicTimestamp = topic.timestamp || topic.lastposttime || 0;
    
    if (topicTimestamp < todayStart || mm_isTopicSent(tid)) continue;
    
    var title = (topic.title || '').trim();
    if (mm_isObviouslyNotSoftware(title)) continue;
    
    var firstPostContent = mm_fetchTopicFirstPost(topic.tid, topic.slug);
    if (!firstPostContent || firstPostContent.length < 30) continue;
    
    try {
      var evaluation = mm_evaluateSoftwareWithGemini(title, firstPostContent, topic.categoryName || '');
      if (evaluation && evaluation.isNewSoftware) {
        qualifiedSoftware.push({
          tid: tid,
          title: title,
          softwareName: evaluation.softwareName || title,
          summary: evaluation.summary,
          version: evaluation.version || '',
          url: MM_CONFIG.forumBaseUrl + '/topic/' + (topic.slug || topic.tid),
          author: topic.user ? (topic.user.username || topic.user.displayname) : 'חבר פורום'
        });
        Logger.log('✓ אושרה תוכנה חדשה: %s', title);
      } else {
        Logger.log('✗ סונן (אינו תוכנה חדשה): %s', title);
      }
      Utilities.sleep(250);
    } catch (err) {
      Logger.log('שגיאה בניתוח נושא "%s": %s', title, err.message);
    }
    

    }

    return qualifiedSoftware;
    }

    function mm_isObviouslyNotSoftware(title) {
    var lower = title.toLowerCase();
    var skipPhrases = [
    'עזרה', 'איך לעשות', 'מישהו יודע', 'למה לא עובד', 'בעיה ב', 'שגיאה',
    'מחפש תוכנה', 'האם יש', 'בקשה:', 'דחוף', 'שאלה', 'לא מצליח', 'התקנה נכשלה',
    'האם אפשר', 'בירור', 'חוות דעת', 'מחיר', 'קנייה', 'מכירה', 'מחשב נייד'
    ];
    for (var i = 0; i < skipPhrases.length; i++) {
    if (lower.indexOf(skipPhrases[i]) !== -1 && lower.indexOf('הורדה') === -1 && lower.indexOf('תוכנה חדשה') === -1) {
    return true;
    }
    }
    return false;
    }

    function mm_fetchRecentTopics() {
    try {
    var endpoints = [MM_CONFIG.recentApiUrl, MM_CONFIG.unreadApiUrl];
    for (var e = 0; e < endpoints.length; e++) {
    var jsonStr = mm_fetchUrl(endpoints[e]);
    if (jsonStr) {
    var data = JSON.parse(jsonStr);
    if (data.topics && data.topics.length > 0) return data.topics;
    }
    }
    return [];
    } catch (e) {
    Logger.log('שגיאה בשליפת נושאים אחרונים: %s', e.message);
    return [];
    }
    }

    function mm_fetchTopicFirstPost(tid, slug) {
    try {
    var url = MM_CONFIG.forumBaseUrl + '/api/topic/' + (slug || tid);
    var jsonStr = mm_fetchUrl(url);
    if (!jsonStr) return '';
    var data = JSON.parse(jsonStr);
    if (data.posts && data.posts.length > 0) {
    return mm_stripHtml(data.posts[0].content || '').substring(0, 3000);
    }
    return '';
    } catch (e) {
    return '';
    }
    }

    function mm_evaluateSoftwareWithGemini(title, content, category) {
    var prompt = 'אתה מסנן קפדני של עדכוני פורום מחשבים. המטרה: לזהות אך ורק תוכנות, אפליקציות, כלים או תוספים חדשים שנוצרו או פורסמו להורדה.\n'
    + 'כללים מחמירים:\n'
    + '1. אם הפוסט הוא שאלה, בקשת עזרה, בעיה טכנית, שאלת ייעוץ, בקשת תוכנה (למשל "מחפש תוכנה ל..."), או דיון כללי - החזר מיד isNewSoftware: false!\n'
    + '2. רק אם מדובר ביוצר שמשתף כלי/תוכנה שהוא פיתח, או שחרור של תוכנה/כלי חדש להורדה - החזר isNewSoftware: true.\n'
    + '3. ספק סיכום קצרצר ותמציתי ביותר בעברית (משפט אחד או שניים בלבד, עד 25 מילים). המייל כולו מוגבל ל-350 מילים!\n'
    + '4. החזר אך ורק JSON תקין במבנה הבא ללא שום טקסט נוסף:\n'
    + '{\n'
    + ' "isNewSoftware": true/false,\n'
    + ' "softwareName": "שם התוכנה או הכלי",\n'
    + ' "summary": "סיכום תמציתי של משפט עד שניים.",\n'
    + ' "version": "גרסה אם קיימת"\n'
    + '}\n\n'
    + 'כותרת הפוסט: ' + title + '\n'
    + 'תוכן הפוסט:\n' + content.substring(0, 2000);

    var res = mm_callGemini(prompt);
    var cleanJson = res.text.replace(/json/gi, '').replace(//g, '').trim();
    try {
    return JSON.parse(cleanJson);
    } catch (err) {
    var jsonMatch = cleanJson.match(/{[\s\S]*}/);
    if (jsonMatch) return JSON.parse(jsonMatch[0]);
    return null;
    }
    }

    // ========== שליפת עדכוני AI מאשכול 95167 ==========

    function mm_fetchTodayAiThreadUpdates() {
    try {
    var todayStart = mm_getTodayStartTimestamp();
    var topicApiUrl = MM_CONFIG.forumBaseUrl + '/api/topic/' + MM_CONFIG.aiTopicId;
    var jsonStr = mm_fetchUrl(topicApiUrl);
    if (!jsonStr) return [];

    var data = JSON.parse(jsonStr);
    var posts = data.posts || [];
    var postCount = data.postcount || 0;
    
    if (postCount > 20 && data.pagination && data.pagination.pageCount > 1) {
      var lastPageUrl = topicApiUrl + '?page=' + data.pagination.pageCount;
      var lastPageJson = mm_fetchUrl(lastPageUrl);
      if (lastPageJson) {
        var lastPageData = JSON.parse(lastPageJson);
        if (lastPageData.posts && lastPageData.posts.length > 0) {
          posts = lastPageData.posts;
        }
      }
    }
    
    var todayPosts = [];
    for (var i = posts.length - 1; i >= 0 && todayPosts.length < MM_CONFIG.maxAiPostsToScan; i--) {
      var p = posts[i];
      var postTime = p.timestamp || 0;
      if (postTime >= todayStart) {
        var cleanText = mm_stripHtml(p.content || '');
        if (cleanText.length > 40) {
          todayPosts.push({
            pid: p.pid,
            index: p.index,
            user: p.user ? (p.user.username || p.user.displayname) : 'משתמש',
            content: cleanText.substring(0, 2500)
          });
        }
      }
    }
    
    if (todayPosts.length === 0) return [];
    
    var combinedContent = todayPosts.map(function(item, idx) {
      return '[' + (idx + 1) + '] מאת ' + item.user + ':\n' + item.content;
    }).join('\n\n--- פוסט הבא ---\n\n');
    
    var prompt = 'להלן פוסטים חדשים שפורסמו היום בפורום מתמחים טופ באשכול עדכוני בינה מלאכותית (AI).\n'
      + 'משימתך:\n'
      + '1. סנן שיחות סרק, שאלות טכניות פרטיות או תודות.\n'
      + '2. חלץ וסכם את החדשות והפיצ\'רים האמיתיים של בינה מלאכותית שנחשפו היום.\n'
      + '3. מגבלת מילים קריטית: סך כל המילים בכל הדיגסט מוגבל לעד 350 מילים! כתוב סיכום של משפט אחד בלבד (עד 20 מילים לפריט).\n'
      + '4. החזר אך ורק מערך JSON תקין ללא שום טקסט נוסף:\n'
      + '[\n'
      + '  {\n'
      + '    "headline": "כותרת קצרה של החידוש",\n'
      + '    "bulletSummary": "משפט תמציתי ומדויק על מה שהתחדש.",\n'
      + '    "sourceUser": "שם המשתמש ששיתף"\n'
      + '  }\n'
      + ']\n\n'
      + combinedContent;
    
    var res = mm_callGemini(prompt);
    var cleanJson = res.text.replace(/```json/gi, '').replace(/```/g, '').trim();
    var parsedList = [];
    try {
      parsedList = JSON.parse(cleanJson);
    } catch (e) {
      var match = cleanJson.match(/\[[\s\S]*\]/);
      if (match) parsedList = JSON.parse(match[0]);
    }
    
    for (var k = 0; k < parsedList.length; k++) {
      parsedList[k].url = MM_CONFIG.aiTopicUrl;
    }
    
    return parsedList;
    

    } catch (err) {
    Logger.log('שגיאה בשליפת עדכוני אשכול AI: %s', err.message);
    return [];
    }
    }

    // ========== עיצוב המייל (עד 350 מילים) ==========

    function mm_formatDigestEmail(softwareItems, aiUpdates, dateStr, todayName, hebrewDate, totalWords) {
    var softwareHtml = '';
    if (softwareItems.length > 0) {
    softwareHtml += '<div style="margin-bottom:24px;">'
    + '<div style="display:flex; align-items:center; margin-bottom:12px; border-bottom:2px solid #3b82f6; padding-bottom:6px;">'
    + '<span style="background:#3b82f6; color:#ffffff; font-size:11px; font-weight:bold; padding:2px 8px; border-radius:4px; margin-left:6px;">חדש בקהילה</span>'
    + '<h2 style="color:#0f172a; font-size:17px; margin:0; font-weight:800;">🚀 תוכנות וכלים חדשים שפותחו/שוחררו היום (' + softwareItems.length + ')</h2>'
    + '</div>';

    for (var i = 0; i < softwareItems.length; i++) {
      var item = softwareItems[i];
      softwareHtml += '<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; padding:14px 16px; margin-bottom:12px;">'
        + '<div style="display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:4px;">'
        + '<h3 style="color:#1e3a8a; font-size:15px; font-weight:700; margin:0; line-height:1.4;">' + (i + 1) + '. ' + item.softwareName + '</h3>'
        + (item.version ? '<span style="background:#e0e7ff; color:#3730a3; font-size:11px; font-weight:700; padding:2px 6px; border-radius:4px;">' + item.version + '</span>' : '')
        + '</div>'
        + '<p style="color:#334155; font-size:14px; line-height:1.65; margin:0 0 8px;">' + item.summary + '</p>'
        + '<div style="display:flex; justify-content:space-between; align-items:center; font-size:12px; color:#64748b;">'
        + '<span>שותף ע"י: <strong>' + item.author + '</strong></span>'
        + '<a href="' + item.url + '" target="_blank" style="color:#2563eb; text-decoration:none; font-weight:bold;">לפוסט המלא ולהורדה בפורום &larr;</a>'
        + '</div>'
        + '</div>';
    }
    softwareHtml += '</div>';
    

    } else {
    softwareHtml += '<div style="padding:12px; background:#f8fafc; border-radius:8px; border:1px dashed #cbd5e1; color:#64748b; font-size:13px; margin-bottom:20px; text-align:center;">'
    + 'לא פורסמו היום תוכנות חדשות נוספות שפותחו בקהילה.'
    + '</div>';
    }

    var aiHtml = '';
    if (aiUpdates.length > 0) {
    aiHtml += '<div style="margin-bottom:20px;">'
    + '<div style="display:flex; align-items:center; margin-bottom:12px; border-bottom:2px solid #8b5cf6; padding-bottom:6px;">'
    + '<span style="background:#8b5cf6; color:#ffffff; font-size:11px; font-weight:bold; padding:2px 8px; border-radius:4px; margin-left:6px;">אשכול AI</span>'
    + '<h2 style="color:#0f172a; font-size:17px; margin:0; font-weight:800;">🤖 מה חדש בבינה מלאכותית היום (' + aiUpdates.length + ')</h2>'
    + '</div>';

    for (var j = 0; j < aiUpdates.length; j++) {
      var ai = aiUpdates[j];
      aiHtml += '<div style="border-right:3px solid #8b5cf6; background:#faf5ff; padding:10px 14px; margin-bottom:10px; border-radius:0 6px 6px 0;">'
        + '<h4 style="color:#581c87; font-size:14px; font-weight:700; margin:0 0 3px;">' + (j + 1) + '. ' + ai.headline + '</h4>'
        + '<p style="color:#334155; font-size:13.5px; line-height:1.6; margin:0 0 5px;">' + ai.bulletSummary + '</p>'
        + '<div style="font-size:12px; color:#7e22ce;">'
        + (ai.sourceUser ? '<span>משתף: ' + ai.sourceUser + ' &bull; </span>' : '')
        + '<a href="' + ai.url + '" target="_blank" style="color:#7e22ce; font-weight:bold; text-decoration:none;">צפה באשכול ה-AI בפורום &larr;</a>'
        + '</div>'
        + '</div>';
    }
    aiHtml += '</div>';
    

    } else {
    aiHtml += '<div style="padding:12px; background:#f8fafc; border-radius:8px; border:1px dashed #cbd5e1; color:#64748b; font-size:13px; margin-bottom:20px; text-align:center;">'
    + 'לא היו עדכוני AI חדשים היום באשכול הייעודי.'
    + '</div>';
    }

    return '<!DOCTYPE html><html dir="rtl" lang="he"><head><meta charset="UTF-8"></head>'
    + '<body style="font-family:Arial,Helvetica,sans-serif; direction:rtl; text-align:right; max-width:640px; margin:0 auto; padding:16px; background-color:#f1f5f9;">'
    + '<div style="background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 100%); color:#ffffff; padding:24px 20px; border-radius:12px 12px 0 0; text-align:center;">'
    + '<span style="display:inline-block; background:rgba(59,130,246,0.3); color:#93c5fd; font-size:11px; font-weight:bold; padding:3px 10px; border-radius:999px; margin-bottom:8px;">מתמחים טופ • דיגסט יומי תמציתי</span>'
    + '<h1 style="margin:2px 0 5px; font-size:22px; font-weight:800; letter-spacing:-0.5px;">חדשות תוכנה ובינה מלאכותית</h1>'
    + '<p style="margin:0; font-size:13px; opacity:0.85;">יום ' + todayName + ', ' + dateStr + ' • ' + totalWords + ' מילים בדיגסט</p>'
    + '</div>'
    + '<div style="background:#ffffff; padding:22px 20px; border:1px solid #e2e8f0; border-top:none;">'
    + softwareHtml
    + aiHtml
    + '</div>'
    + '<div style="background:#f8fafc; padding:14px 20px; border-radius:0 0 12px 12px; border:1px solid #e2e8f0; border-top:none; text-align:center; font-size:12px; color:#64748b;">'
    + 'נשלח אוטומטית ממתמחים טופ • ' + hebrewDate + ' • דיגסט קצר (עד 350 מילים) מבוסס Gemini'
    + '</div></body></html>';
    }

    // ========== קריאה ל-Gemini עם רוטציית מפתחות ומודלים ==========

    function mm_getAllApiKeys() {
    var props = PropertiesService.getScriptProperties();
    var scriptPropKey = props.getProperty('MM_GEMINI_API_KEY') || props.getProperty('AI7_GEMINI_API_KEY');
    var allKeys = [];
    if (scriptPropKey) allKeys.push(scriptPropKey);
    if (MM_CONFIG.apiKeys && MM_CONFIG.apiKeys.length > 0) {
    for (var i = 0; i < MM_CONFIG.apiKeys.length; i++) {
    var k = MM_CONFIG.apiKeys[i];
    if (k && allKeys.indexOf(k) === -1) allKeys.push(k);
    }
    }
    return allKeys;
    }

    function mm_callGemini(prompt) {
    var models = MM_CONFIG.geminiModels;
    var keys = mm_getAllApiKeys();
    var lastError = null;

    if (keys.length === 0) throw new Error('לא נמצאו מפתחות Gemini מוגדרים');

    for (var m = 0; m < models.length; m++) {
    var model = models[m];

    for (var k = 0; k < keys.length; k++) {
      var apiKey = keys[k];
      try {
        var resultText = mm_geminiApiCall(prompt, model, apiKey);
        Logger.log('MM: הצלחה עם מודל %s באמצעות מפתח #%s', model, (k + 1));
        return { text: resultText, model: model, keyIndex: k };
      } catch (err) {
        lastError = err;
        Logger.log('MM: מפתח #%s נכשל עם מודל %s (%s). מנסה מפתח חלופי...', (k + 1), model, err.message);
        if (k < keys.length - 1) Utilities.sleep(MM_CONFIG.retryDelayMs);
      }
    }
    
    Logger.log('MM: כל %s המפתחות נכשלו עבור מודל %s. עובר למודל הבא ברשימה...', keys.length, model);
    

    }

    throw new Error('כל המודלים וכל המפתחות נכשלו. שגיאה אחרונה: ' + (lastError ? lastError.message : 'לא ידועה'));
    }

    function mm_geminiApiCall(prompt, model, apiKey) {
    if (!apiKey) throw new Error('מפתח API ריק');

    var url = 'https://generativelanguage.googleapis.com/v1beta/models/' + model + ':generateContent?key=' + apiKey;

    var generationConfig = {
    temperature: MM_CONFIG.temperature || 0.2,
    maxOutputTokens: MM_CONFIG.maxOutputTokens || 1500
    };

    if (MM_CONFIG.disableThinking) {
    generationConfig.thinkingConfig = { thinkingBudget: 0 };
    }

    var body = {
    contents: [{ parts: [{ text: prompt }] }],
    generationConfig: generationConfig
    };

    var headers = {
    'Content-Type': 'application/json',
    'x-goog-api-key': apiKey
    };

    if (apiKey.indexOf('AQ.') === 0 || apiKey.indexOf('ya29.') === 0) {
    headers['Authorization'] = 'Bearer ' + apiKey;
    }

    var options = {
    method: 'post',
    contentType: 'application/json',
    headers: headers,
    payload: JSON.stringify(body),
    muteHttpExceptions: true
    };

    var r = UrlFetchApp.fetch(url, options);
    var code = r.getResponseCode();

    if (code >= 300) {
    throw new Error('Gemini API HTTP ' + code + ': ' + r.getContentText().substring(0, 200));
    }

    var data = JSON.parse(r.getContentText());
    var candidate = data.candidates && data.candidates[0];

    if (!candidate || !candidate.content || !candidate.content.parts) {
    throw new Error('התקבלה תשובה ריקה מ-Gemini');
    }

    var textParts = [];
    for (var p = 0; p < candidate.content.parts.length; p++) {
    var part = candidate.content.parts[p];
    if (part.text && !part.thought) textParts.push(part.text);
    }

    var out = textParts.join('').trim();
    if (!out && candidate.content.parts[0] && candidate.content.parts[0].text) {
    out = candidate.content.parts[0].text.trim();
    }

    if (!out) throw new Error('התקבל טקסט ריק מ-Gemini');
    return out;
    }

    // ========== עזרים, זמנים ונעילת יום ==========

    function mm_getTodayStartTimestamp() {
    var now = new Date();
    var start = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0);
    return start.getTime();
    }

    function mm_todayKey() {
    return Utilities.formatDate(new Date(), MM_CONFIG.triggerTimeZone, 'yyyy-MM-dd');
    }

    function mm_alreadySentToday() {
    var props = PropertiesService.getScriptProperties();
    return props.getProperty('MM_LAST_SENT_DATE') === mm_todayKey();
    }

    function mm_markSentToday() {
    PropertiesService.getScriptProperties().setProperty('MM_LAST_SENT_DATE', mm_todayKey());
    }

    function mm_getRecipients() {
    var props = PropertiesService.getScriptProperties();
    var raw = props.getProperty('MM_RECIPIENTS') || MM_CONFIG.defaultRecipients;
    return raw.split(',').map(function(s) { return s.trim(); }).filter(function(s) { return s.length > 0; });
    }

    function mm_getSentTopics() {
    var raw = PropertiesService.getScriptProperties().getProperty('MM_SENT_TOPICS');
    if (!raw) return {};
    try { return JSON.parse(raw); } catch (e) { return {}; }
    }

    function mm_markTopicSent(key) {
    var sent = mm_getSentTopics();
    sent[key] = new Date().getTime();
    var cutoff = new Date().getTime() - (14 * 24 * 60 * 60 * 1000);
    for (var k in sent) {
    if (sent[k] < cutoff) delete sent[k];
    }
    PropertiesService.getScriptProperties().setProperty('MM_SENT_TOPICS', JSON.stringify(sent));
    }

    function mm_isTopicSent(key) {
    return !!mm_getSentTopics()[key];
    }

    function mm_clearHistory() {
    PropertiesService.getScriptProperties().deleteProperty('MM_SENT_TOPICS');
    PropertiesService.getScriptProperties().deleteProperty('MM_LAST_SENT_DATE');
    Logger.log('היסטוריית מתמחים טופ אופסה בהצלחה');
    }

    function mm_fetchUrl(url) {
    try {
    var r = UrlFetchApp.fetch(url, {
    method: 'get',
    muteHttpExceptions: true,
    headers: {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
    'Accept': 'application/json, text/html;q=0.9,/;q=0.8',
    'Accept-Language': 'he-IL,he;q=0.9,en-US;q=0.8,en;q=0.7'
    }
    });
    if (r.getResponseCode() >= 300) return null;
    return r.getContentText('UTF-8');
    } catch (e) {
    return null;
    }
    }

    function mm_stripHtml(s) {
    if (!s) return '';
    return s.replace(/<[^>]+>/g, ' ')
    .replace(/ /g, ' ')
    .replace(/&/g, '&')
    .replace(/"/g, '"')
    .replace(/'/g, "'")
    .replace(/&#(\d+);/g, function(_, n) { return String.fromCharCode(parseInt(n)); })
    .replace(/\s+/g, ' ')
    .trim();
    }

    function mm_hebrewDate() {
    try {
    var now = new Date();
    var month = now.getMonth() + 1;
    var hebrewMonths = ['שבט','אדר','ניסן','אייר','סיוון','תמוז','אב','אלול','תשרי','חשוון','כסלו','טבת'];
    return now.getDate() + ' ב' + hebrewMonths[month - 1] + ' ' + (now.getFullYear() + 3760);
    } catch (e) {
    return new Date().toLocaleDateString('he-IL');
    }
    }

    // ========== פונקציות הפעלה ידנית (ללא התנגשות) ==========

    function בדיקת_דיגסט_מתמחים() {
    PropertiesService.getScriptProperties().deleteProperty('MM_LAST_SENT_DATE');
    Logger.log('מתחיל בדיקה ידנית של דיגסט מתמחים טופ...');
    mm_digestMain();
    return 'בדיקת מתמחים הושלמה - בדוק את לוג הביצוע ואת תיבת המייל שלך!';
    }

    function איפוס_נעילת_מתמחים() {
    mm_clearHistory();
    return 'נעילת מתמחים טופ והיסטוריית הפוסטים אופסו בהצלחה';
    }

    function הגדרת_טריגר_מתמחים() {
    var triggers = ScriptApp.getProjectTriggers();
    for (var i = 0; i < triggers.length; i++) {
    if (triggers[i].getHandlerFunction() === 'mm_digestMain') {
    ScriptApp.deleteTrigger(triggers[i]);
    }
    }

    ScriptApp.newTrigger('mm_digestMain')
    .timeBased()
    .everyDays(1)
    .atHour(MM_CONFIG.triggerHour)
    .inTimezone(MM_CONFIG.triggerTimeZone)
    .create();

    Logger.log('נוצר טריגר יומי ייעודי למתמחים טופ לשעה %s:00', MM_CONFIG.triggerHour);
    return 'טריגר יומי נוצר בהצלחה לשעה ' + MM_CONFIG.triggerHour + ':00';
    }

    עזרה הדדית - מחשבים וטכנולוגיה

  • המלצה | מערכת תמלול אישית - קוד מלא כולל קובץ WORD
    ה הידען

    ‏‏מסמך טקסט חדש.txt

    בעזרת ה' בהמשך אני יעלה יותר הסבר:
    לא לשכוח לכתוב את המייל שלך ואת API שלכם של גמיני.

    בקצרה:
    כל מייל שנשלח עם המילה "תמלול" בכותרת. או מימות המשיח הוא עושה.

    הרעיון הוא אדיר ככה אתה יכול להקליט בימות המשיח את כל החדושי תורה וישר לקבל למייל תמלול!!!

    1. מה המערכת עושה בפועל? (פונקציונליות)
    המערכת היא רובוט תמלול אוטומטי מבוסס ענן (Google Apps Script) המחובר לתיבת ה-Gmail שלך ומבצע את הפעולות הבאות:

    סריקה אוטומטית (כל 5 דקות): המערכת סורקת את תיבת הדואר הנכנס ומחפשת מיילים חדשים ("לא נקראו") העונים על תנאי הסף.
    תמיכה בקבצים גדולים וקטנים:
    קבצים קטנים (עד 19MB): נשלחים ישירות לקבלת תמלול מיידי (Inline).
    קבצים גדולים (מעל 19MB): מועלים בצורה מאובטחת לשרת זמני של Google (באמצעות Gemini Files API), מתומללים, ונמחקים מיד מהענן של גוגל בסיום התהליך.
    זיהוי והרצה של מודל הבינה המלאכותית: המערכת פונה למודלי ה-TTS של Gemini המוגדרים בקוד ומבצעת את התמלול בהתאם להנחיות המיוחדות.
    יצירת קובץ Word (.docx) אוטומטי: המערכת לא רק מחזירה טקסט במייל, אלא יוצרת מסמך Word מעוצב עם כותרות, הדגשות וחלוקה לפסקאות, ומצרפת אותו כקובץ להורדה במייל החוזר.
    עיצוב HTML עשיר במייל: גוף המייל החוזר מעוצב כדף אינטרנט נקי ונוח לקריאה, עם חלוקה ברורה לכותרות וטקסט קריא (כולל יישור לימין RTL).
    סדר וניהול תיבה: המערכת מסמנת את המיילים שטופלו כ"נקראו" (Read) ומחילה עליהם את התווית (Label) "תמלול" כדי שלא יעובדו מחדש.
    2. תנאי הפעלה: לאיזה כותרות ושולחים המערכת מגיבה?
    המערכת פועלת בשני ערוצים נפרדים לחלוטין:

    ערוץ א': תמלול אישי (שליחה עצמית)
    מיועד למקרים בהם אתה שולח קובץ קול מעצמך אל עצמך כדי לקבל תמלול.

    השולח (From): חייב להיות כתובת המייל האישית שלך
    הכותרת (Subject): חייבת להכיל את המילה "תמלול" (למשל: "תמלול שיעור חול המועד" או רק "תמלול").
    הקובץ המצורף: קובץ אודיו בפורמט נתמך (mp3, wav, aac, flac, ogg, m4a, amr, 3gp).
    תגובת המערכת: שולחת אליך מייל חוזר ("Reply") המכיל את הטקסט המתומלל בגוף המייל ובנוסף מצרפת קובץ Word (.docx).
    ערוץ ב': תמלול אוטומטי ממערכת טלפונית (IVR)
    מיועד לקבלת הקלטות אוטומטיות ממערכות תוכן טלפוניות (כמו ימות המשיח וכדומה).

    השולח (From): חייב להיות בדיוק הכתובת: ivr@yml.li
    הכותרת (Subject): אין חשיבות למילים בכותרת. המערכת תעבד כל מייל שמגיע מכתובת זו.
    תוכן ההודעה (Body): המערכת מחפשת את המונח "תיקייה" או "תיקיה" ואחריו מספר (למשל: תיקייה 12) כדי לדעת לשייך את התמלול לתיקייה הנכונה.
    תגובת המערכת: אוספת את כל הקבצים, מתמללת אותם, יוצרת קובץ Word לכל קובץ, ושולחת אליך (למייל האישי שלך) מייל ריכוז מיוחד עם כל התמלולים והקבצים המצורפים תחת הכותרת "תמלול תיקייה X".

    3. פקודות קוליות מיוחדות (עריכה תוך כדי דיבור)
    המערכת מצוידת ב"אינטליגנציה" תמלולית מיוחדת. אם בזמן ההקלטה הדובר אומר את אחד מהביטויים הבאים, המערכת תבצע את הפעולה העריכתית ולא תכתוב את המילים עצמן בטקסט:

    הפקודה הקולית הפעולה שהמערכת מבצעת בפועל
    "נקודה" מכניסה סימן נקודה (.) וממשיכה
    "פסיק" מכניסה סימן פסיק (,) וממשיכה
    "סימן שאלה" מכניסה סימן שאלה (?)
    "מקף" מכניסה מקף ארוך (—)
    "שורה חדשה" יורדת שורה אחת למטה
    "פסקה חדשה" פותחת פסקה חדשה (ירידת שורות כפולה)
    "פתח כותרת" מתחילה כותרת ביניים מסוג Heading 2
    "סגור כותרת" מסיימת את כותרת הביניים וחוזרת לטקסט רגיל
    "פתח סוגריים" פותחת סוגריים עגולים (
    "סגור סוגריים" סוגרת סוגריים עגולים )
    "פתח הדגשה" מתחילה לכתוב טקסט מודגש (במסמך זה יופיע כטקסט מודגש)
    "סגור הדגשה" מסיימת את כתיבת הטקסט המודגש
    "פתח ציטוט" מעצבת את הטקסט הבא כציטוט מוזח (Blockquote)
    "סגור ציטוט" מחזירה את העיצוב לטקסט רגיל
    "מחק משפט אחרון" מוחקת את המשפט האחרון שהוקלט לפני פקודה זו
    "מחק X משפטים" מוחקת את מספר המשפטים שביקשת (למשל: "מחק 3 משפטים")
    "פתח אותיות" מתחילה לכתוב באיות אות-אחר-אות (שימושי לשמות או מילים בלועזית)
    "סגור אותיות" חוזרת לתמלול מילים שלמות רגיל

    עזרה הדדית - בינה מלאכותית

  • להורדה | גירסה חדשה **🎵 תמלול שיעורים — אוטומטי ובחינם** עם אפשרות להקליט דרך הטלפון ולקבל למייל או לעלות לאתר אישי אוטומטי בחינם
    ה הידען

    שימו לב בגירסה זאת יש כמה שידרוגים:

    1. נכנס מודל חדש של תמלול מאוד משוכלל שיצא לא מזמן
    2. אפשרות לעלות כל דבר לגיטב, אני לא ניסתי את זה עדין ולכן אין לי הוראות מידי מדויקות.
      לא לשכוח בהגדרות מי שרוצה לעדכן שם את הכול, מי שמעונין בקובץ WORD גם לסמן שם

    זה הגירסה הישנה שעכשיו מי שיכנס עליה יראה את השדרוגים בה...

    https://mitmachim.top/topic/99552/המלצה-תמלול-שיעורים-אוטומטי-ובחינם-עכשיו-בקלות-להתקנה/55?_=1791104296672

    עזרה הדדית - מחשבים וטכנולוגיה

  • להורדה | סוכן AI ג'מיני לווינדוס בקובץ HTML!!!!
    ה הידען

    פצצצה!!!!! כל הכבוד!!!! ממש עוזר חבל שעד עכשיו לא היה!!!

    עזרה הדדית - בינה מלאכותית

  • המלצה | **🎵 תמלול שיעורים — אוטומטי ובחינם** עכשיו בקלות להתקנה
    ה הידען

    האם למישהו זה מבוקש עדין שאני יתן גירסה חדשה?

    עזרה הדדית - בינה מלאכותית

  • בקשת מידע | ריכוז AI דרך המייל - אשמח למי שיצרף עוד
    ה הידען

    ריכוז AI דרך המייל - מיועד למי שבמסלול מייל בלבד או לחדרי מחשבים!!!
    לכולם יש בחינם חלקית
    ‫ai@mehadrinai.com‬
    thekosherbot@gmail.com
    ‫timlul@ketertorah.co.il‬
    bina.cshera@gmail.com
    ‫binata@mail.binata-ai.com‬
    bina.ai.mh@gmail.com

    https://mitmachim.top/topic/100199/המלצה-בינה-במייל-לתמלול-יצירת-תמונות-התכתבות-וכו

    עזרה הדדית - מחשבים וטכנולוגיה

  • להורדה | תוכנת עימוד ספרים אוטומטי.... כולל אפשרות בקשות מגמיני לעיצוב!
    ה הידען

    מהדורה חדשה עם אפשרות מרובות, וגם שמירה בWORD עם כל העיצוב

    https://tora-forum.co.il/attachments/book_editor_v17-1-zip.227690/

    עזרה הדדית - מחשבים וטכנולוגיה

  • המלצה | נמאס לכם כל יום לעבור על כל המתחמים טופ? סקיפט לקבלת התוכנות החדשות והודעות החדשות ועדכוני AI החדשים ממתחמים טופ למייל פעם ביום
    ה הידען

    לכמה אנשים זה רלוונטי בשביל שאני יתעסק בזה?

    עזרה הדדית - מחשבים וטכנולוגיה

  • המלצה | AI לתכנות בלבד (מבוסס על גמיני ושאר החברות)
    ה הידען

    @ztcebuck שלחתי, אתה יכול גם לשלוח לזירוז

    עזרה הדדית - בינה מלאכותית

  • המלצה | **🎵 תמלול שיעורים — אוטומטי ובחינם** עכשיו בקלות להתקנה
    ה הידען

    נפתח לציבור הרחב לא צריך לבקש הרשאה:

    https://docs.google.com/spreadsheets/d/1ODvDBSYMz1r5eiuwPVCdOch_Fx21CFbhs2nDHyyTUSo/copy

    עזרה הדדית - בינה מלאכותית

  • באג | Gemini השתגע !!! (ולא בפעם הראשונה)
    ה הידען

    @החכם-השלם אני עשיתי שאם המודל מידי עמוס או תפוס הוא עובר למודל אחר!

    עזרה הדדית - בינה מלאכותית

  • תגובות על בינה במייל !
    ה הידען

    כככככככככככל הכבוד. בטח עבודה של שעות!!!!!!!!!!!!!!!!!!!!!!!!!

    לדעתי, בשביל שיהיה שימושי גם לנטרפי תכניס אפשרות עריכה לשונית לדברים תורנים בלי שיביא תוכן נוסף (שלא יהיה בעיות רוחניות).

    עזרה הדדית - בינה מלאכותית

  • שיתוף | ההרשמה לעויזר צ'אט נפתחה - עוזר AI במערכת IVR
    ה הידען

    יש אפשרות להכניס את מהערכת לקו אישי פרטי שלי עפ API שלי בלי צורך להזדקק לחסדים שבאותו זמן יהיה מענה?

    עזרה הדדית - בינה מלאכותית

  • המלצה | **🎵 תמלול שיעורים — אוטומטי ובחינם** עכשיו בקלות להתקנה
    ה הידען

    @מוטל-2 זה כבר נטפרי

    עזרה הדדית - בינה מלאכותית
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר