• דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    • הרשמה
    • התחברות

    השמעת זמני תפילות מגוגל שיטס

    מתוזמן נעוץ נעול הועבר הסברים מסודרים ממשתמשים
    1 פוסטים 1 כותבים 110 צפיות 1 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • B מנותק
      BEN ZION
      נערך לאחרונה על ידי

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

      18/01/2026
      יום ראשון
      בא
      
      שחרית
      בשעה 6:15, בהיכל גדול. בשעה 6:55, בהיכל קטן. בשעה 8:10, בהיכל גדול.
      
      מנחה
      בשעה 12:45, בהיכל קטן. בשעה 13:00, בהיכל גדול. בשעה 16:50, בהיכל גדול.
      
      מעריב
      בשעה 17:30, בהיכל גדול. בשעה 19:00, בהיכל קטן. בשעה 21:00, בהיכל גדול. בשעה 22:15, בהיכל גדול.
      

      זה הסקריפט

      function uploadTtsBySmartLogic() {
        const ss = SpreadsheetApp.getActiveSpreadsheet();
        const targetSheet = ss.getSheetByName("מעובד");
        const configSheet = ss.getSheetByName("זמני התפילות");
        
        // יצירת גיליון לוג אם לא קיים
        let logSheet = ss.getSheetByName("לוג העלאה");
        if (!logSheet) {
          logSheet = ss.insertSheet("לוג העלאה");
          logSheet.appendRow(["זמן הרצה", "שלוחה", "תאריך יעד", "סטטוס"]);
        }
        
        if (!targetSheet) return;
      
        const token = configSheet ? configSheet.getRange("J2").getValue() : "";
        const baseUrl = "https://www.call2all.co.il/ym/api/UploadFile";
        if (!token) return;
      
        const today = new Date();
        const dayOfWeek = today.getDay(); // 0=ראשון... 6=שבת
        const dateRow = targetSheet.getRange(1, 1, 1, 100).getValues()[0];
      
        function getColumnDataByOffset(daysToAdd) {
          let targetDate = new Date(today);
          targetDate.setDate(today.getDate() + daysToAdd);
          let targetStr = Utilities.formatDate(targetDate, "GMT+2", "dd/MM/yyyy");
      
          for (let i = 0; i < dateRow.length; i++) {
            let cellValue = dateRow[i];
            let cellStr = "";
            if (cellValue instanceof Date) {
              cellStr = Utilities.formatDate(cellValue, "GMT+2", "dd/MM/yyyy");
            } else if (cellValue) {
              cellStr = cellValue.toString();
            }
            
            if (cellStr == targetStr) {
              return {
                data: targetSheet.getRange(1, i + 1, 15, 1).getValues(),
                dateText: targetStr
              };
            }
          }
          return null;
        }
      
        function getNextOccurrenceOffset(targetDay) {
          let diff = (targetDay - dayOfWeek + 7) % 7;
          return diff === 0 ? 7 : diff;
        }
      
        const logicMap = [
          { folder: "18/1/1", offset: 0 }, 
          { folder: "18/1/2", offset: 1 }, 
          { folder: "18/1/3", offset: getNextOccurrenceOffset(5) }, 
          { folder: "18/1/4", offset: getNextOccurrenceOffset(6) }, 
          { folder: "18/1/5", offset: getNextOccurrenceOffset(0) }, 
          { folder: "18/1/6", offset: getNextOccurrenceOffset(1) }, 
          { folder: "18/1/7", offset: getNextOccurrenceOffset(2) }, 
          { folder: "18/1/8", offset: getNextOccurrenceOffset(3) }, 
          { folder: "18/1/9", offset: getNextOccurrenceOffset(4) }
        ];
      
        logSheet.appendRow([new Date(), "--- תחילת הרצה ---", "", ""]);
      
        logicMap.forEach(item => {
          let result = getColumnDataByOffset(item.offset);
          if (!result) {
            logSheet.appendRow([new Date(), item.folder, "לא נמצא תאריך מתאים", "שגיאה"]);
            return;
          }
      
          let columnData = result.data;
          let shacharit = columnData[5][0] ? "שחרית. " + columnData[5][0] : "";
          let mincha = columnData[8][0] ? "מנחה. " + columnData[8][0] : "";
          let arvit = columnData[11][0] ? "מעריב. " + columnData[11][0] : "";
          let all = [shacharit, mincha, arvit].filter(t => t.length > 0).join(" ");
      
          let files = [
            { name: "001.tts", content: shacharit },
            { name: "002.tts", content: mincha },
            { name: "003.tts", content: arvit },
            { name: "004.tts", content: all }
          ];
      
          files.forEach(file => {
            if (file.content && file.content.length > 5) {
              uploadSingleFile(baseUrl, token, item.folder, file.name, file.content);
            }
          });
      
          // כתיבה ללוג
          logSheet.appendRow([new Date(), item.folder, result.dateText, "עודכן בהצלחה"]);
        });
      }
      
      function uploadSingleFile(baseUrl, token, folder, fileName, content) {
        let path = 'ivr2:' + folder + '/' + fileName;
        try {
          UrlFetchApp.fetch(baseUrl, {
            'method': 'post',
            'payload': {
              'token': token,
              'path': path,
              'file': Utilities.newBlob(content, 'text/plain', fileName)
            },
            'muteHttpExceptions': true
          });
        } catch (e) {
          console.error("שגיאה בהעלאה: " + e.message);
        }
      }
      

      שלוחת תפריט בתוכה 9 שלוחות מצורף תמונה של מבנה השלוחות 38791181-32e6-4c3e-8a9c-c6b35f89cb3f-image.png
      הקבצים עולים 001,002,003,004 הגדרות השלוחות הם השמעת קבצים אם תפריט לבחירה התפריט הוא
      לתפילת שחרית הקש 1 לתפילת מנחה 2 לתפילת ערבית 3 לכל התפילות 4
      ניתן לשנות את הקוד כמובן לצרכים שלכם הוא מוגבל בסריקת העמודות והשורות לחיסכון במשאבים

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • B BEN ZION התייחס לנושא זה
      • B BEN ZION התייחס לנושא זה
      • B BEN ZION התייחס לנושא זה
      • ש שלוחה-404 התייחס לנושא זה

      שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

      בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

      הרשמה התחברות
      • פוסט ראשון
        פוסט אחרון