השמעת זמני תפילות מגוגל שיטס
-
יש לי קוד שמעלה לשלוחה את זמני התפילות לפי המבנה הזה
זה הנתונים בגוגל שיטס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 שלוחות מצורף תמונה של מבנה השלוחות

הקבצים עולים 001,002,003,004 הגדרות השלוחות הם השמעת קבצים אם תפריט לבחירה התפריט הוא
לתפילת שחרית הקש 1 לתפילת מנחה 2 לתפילת ערבית 3 לכל התפילות 4
ניתן לשנות את הקוד כמובן לצרכים שלכם הוא מוגבל בסריקת העמודות והשורות לחיסכון במשאבים -
B BEN ZION התייחס לנושא זה