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

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

    מתוזמן נעוץ נעול הועבר הסברים מסודרים ממשתמשים
    1 פוסטים 1 כותבים 17 צפיות 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 התייחס לנושא זה
      • פוסט ראשון
        פוסט אחרון