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

    הקראת זמני התפילות מגוגל שיטס

    מתוזמן נעוץ נעול הועבר עזרה הדדית למשתמשים מתקדמים
    11 פוסטים 2 כותבים 126 צפיות 2 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • א מנותק
      אA @BEN ZION
      נערך לאחרונה על ידי

      @BEN-ZION

      תנסה את הקוד הבא בסקריפט, כשבתא J1 הטוקן, ובJ2 נתיב השלוחה

      function uploadTextByDay() {
        const ss = SpreadsheetApp.getActiveSpreadsheet();
        const sheet = ss.getActiveSheet();
        
        // כתובת ה-API
        const apiUrl = "https://www.call2all.co.il/ym/api/UploadTextFile";
      
        // שליפת הטוקן מתא J1 ונתיב השלוחה מתא J2
        const token = sheet.getRange("J1").getValue();
        const extensionPath = sheet.getRange("J2").getValue();
        
        if (!token) {
          SpreadsheetApp.getUi().alert("נא להזין טוקן בתא J1");
          return;
        }
        
        if (extensionPath === "") {
          SpreadsheetApp.getUi().alert("נא להזין נתיב שלוחה בתא J2");
          return;
        }
      
        // בניית שם הקובץ עם הנתיב הדינמי
        const fileName = "ivr2:" + extensionPath + "/000.tts"; 
      
        // זיהוי היום בשבוע (0=ראשון, 1=שני... 6=שבת)
        const now = new Date();
        const dayOfWeek = now.getDay(); 
        const column = dayOfWeek + 1; 
        
        const lastRow = sheet.getLastRow();
        if (lastRow < 1) return; 
      
        const range = sheet.getRange(1, column, lastRow, 1);
        const valuesArray = range.getValues();
        
        // איחוד התאים - כל תא בשורה חדשה
        const contents = valuesArray
          .map(row => row[0])
          .filter(cell => cell !== "" && cell !== null)
          .join("\n");
      
        if (!contents) {
          Logger.log("אין תוכן בעמודה של היום הנוכחי");
          return;
        }
      
        const payload = {
          'token': token,
          'what': fileName,
          'contents': contents
        };
      
        const options = {
          'method': 'post',
          'payload': payload,
          'muteHttpExceptions': true
        };
      
        try {
          const response = UrlFetchApp.fetch(apiUrl, options);
          const responseText = response.getContentText();
          Logger.log("תגובת השרת: " + responseText);
          
          ss.toast("הקובץ הועלה בהצלחה לנתיב: " + fileName);
        } catch (e) {
          Logger.log("שגיאה בחיבור לשרת: " + e.message);
        }
      }
      
      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • א מנותק
        אA @BEN ZION
        נערך לאחרונה על ידי

        @BEN-ZION
        זה ערוך שכל עמודה היא יום, ובכל יום לוקח את הטקסט של אותו היום, ומעלה לשלוחה בתור קובץ טקסט בשם 000 וכך בכל יום ישמיע את היום שלו.
        בנוסף תגדיר טריגר שיריץ את הסקריפט בכל יום בשעה שתרצה וכך יחליף את הטקסט.

        B תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • B מחובר
          BEN ZION @אA
          נערך לאחרונה על ידי

          @אA לא הבנתי את המבנה של העמודות ואיך יעבוד ההשמעה
          זה יחליף מתי שאני יגדיר בסקריפט?
          אם אני ירצה לשמוע מחר את זמני התפילות של היום?

          א תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • א מנותק
            אA @BEN ZION
            נערך לאחרונה על ידי

            @BEN-ZION
            אתה תגדיר את הטריגר לפי הזמנים שתרצה שיעדכן.
            כרגע, מוגדר בקוד שיבדוק את היום ובכל יום יקריא את העמודה של אותו היום.
            תוכל לפתוח סקריפט נוסף שיקריא את כל עמודה מהשלוחה ממנה נשלחה כך שתוכל לעשות תפריט לשמיעת הזמנים לפי ימים.

            B תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • B מחובר
              BEN ZION @אA
              נערך לאחרונה על ידי

              @אA מה ההגדרות בשלוחה?

              א תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • א מנותק
                אA @BEN ZION
                נערך לאחרונה על ידי

                @BEN-ZION
                שלוחת API
                ובכתובת השלוחה את הפריסה שקיבלת בסקריפט

                B תגובה 1 תגובה אחרונה תגובה ציטוט 1
                • B מחובר
                  BEN ZION @אA
                  נערך לאחרונה על ידי

                  @אA רק היום התפניתי לעבוד על זה דרך איפה זה משמיע את הטקסט? לאן זה שולח את הקובץ
                  אני רוצה לעשות שאלה ב API לשמיעת תפילות של היום הקש 1 לתפילות מחר 2 לשיש הקרוב 3 לשבת הקרובה 4
                  ואז אני יעשה 4 שלוחות שבתוך כל אחת יהיה ההגדרות האלו
                  לתפילות שחרית 1
                  תפילות מנחה 2
                  תפילת ערבית 3
                  כל התפילות 4

                  B תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • B מחובר
                    BEN ZION @BEN ZION
                    נערך לאחרונה על ידי

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

                    א תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • א מנותק
                      אA @BEN ZION
                      נערך לאחרונה על ידי

                      @BEN-ZION
                      אני בנטפרי אז אני לא יכול לבדוק האם הסקריפט עובד.
                      אם אתה יכול אז תיכנס ללשונית תוספים > Apps Script
                      בחלון שיפתח תמחק את כל מה שכתוב בשורות ותדביק את זה

                      function uploadAllColumnsSequentially() {
                        var ss = SpreadsheetApp.getActiveSpreadsheet();
                        var sheet = ss.getActiveSheet();
                        var baseUrl = "https://www.call2all.co.il/ym/api/UploadTextFile";
                        
                        // משיכת הטוקן מתא J1
                        var token = sheet.getRange("J1").getValue();
                        if (!token) {
                          Browser.msgBox("נא להזין טוקן בתא J1");
                          return;
                        }
                      
                        var lastColumn = sheet.getLastColumn();
                        var lastRow = sheet.getLastRow();
                        var successCount = 0;
                      
                        // לולאה שעוברת על העמודות אחת אחרי השנייה
                        for (var col = 1; col <= lastColumn; col++) {
                          
                          // דילוג על עמודה J (הטוקן)
                          if (col == 10) continue; 
                      
                          // קריאת נתיב השלוחה מהתא הראשון (שורה 1)
                          var extensionPath = sheet.getRange(1, col).getValue();
                          
                          // אם התא הראשון בעמודה ריק - עוברים לעמודה הבאה
                          if (!extensionPath || extensionPath === "") continue;
                      
                          // בניית הנתיב המלא לקובץ
                          var fullPath = "ivr2:1/" + extensionPath + "/000.txt";
                          
                          // איסוף הנתונים מהעמודה (משורה 2 ומטה)
                          var range = sheet.getRange(2, col, lastRow, 1);
                          var values = range.getValues();
                          
                          // חיבור הטקסט - כל תא בשורה חדשה
                          var contents = values.map(function(row) {
                            return row[0];
                          }).filter(function(cell) {
                            return cell !== "" && cell !== null;
                          }).join('\n');
                      
                          // אם העמודה ריקה מתוכן (מתחת לכותרת), מדלגים
                          if (contents.length === 0) continue;
                      
                          // הגדרת השליחה ל-API
                          var payload = {
                            "token": token,
                            "what": fullPath,
                            "contents": contents
                          };
                      
                          var options = {
                            "method": "post",
                            "payload": payload,
                            "muteHttpExceptions": true
                          };
                      
                          // ביצוע השליחה והמתנה לתשובה (סינכרוני)
                          try {
                            var response = UrlFetchApp.fetch(baseUrl, options);
                            var result = JSON.parse(response.getContentText());
                            
                            if (result.responseStatus === "OK") {
                              console.log("הצלחה: עמודה " + col + " (נתיב " + fullPath + ") הועלתה.");
                              successCount++;
                            } else {
                              console.log("שגיאה בעמודה " + col + ": " + result.message);
                            }
                            
                            // השהייה קלה של חצי שנייה בין שליחה לשליחה לביטחון (אופציונלי)
                            Utilities.sleep(500); 
                            
                          } catch (e) {
                            console.log("שגיאה חריגה בעמודה " + col + ": " + e.toString());
                          }
                        }
                        
                        Browser.msgBox("התהליך הסתיים.\nמספר עמודות שעלו בהצלחה: " + successCount);
                      }
                      

                      ואז תחזור לשיטס ותכניס את הנתונים בעמודות.
                      כל עמודה היא שלוחה שונה.
                      בתא הראשון בעמודה תכניס את הנתיב של השלוחה אליה יעלה.
                      בנוסף בתא j1 תכניס את הטוקן של המערכת.
                      בסיום תחזור לסקריפט ופשוט תפעיל את הסקריפט בלחיצה על כפתור ההפעלה.
                      ההודעות יעלו לשלוחות בתור קובץ טקסט בשם 000 וכך המאזינים ישמעו את הנתונים.

                      אני לא יכול לבדוק את זה אז או שתנסה לבד או שתפתח את זה בנטפרי ואני אנסה לעזור לך.

                      B תגובה 1 תגובה אחרונה תגובה ציטוט 1
                      • B מחובר
                        BEN ZION @אA
                        נערך לאחרונה על ידי

                        @אA בינתיים אין לי איך לבדוק ביקשתי מנטפרי שיפתחו
                        אני רוצה לעשות שזה יעלה 4 קבצים לכל שלוחה 000,001,002,003 אני יעשה שלוחה שבוחרים מה לשמוע ואז
                        1 שחרית
                        2 מנחה
                        3 ערבית
                        4 כל התפילות
                        אתה יכול לראות את המבנה בגיליון זמני התפילות
                        תודה רבה על כל העזרה

                        תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • פוסט ראשון
                          פוסט אחרון