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

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

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

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

      א 2 תגובות תגובה אחרונה תגובה ציטוט 0
      • א מחובר
        א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 וכך המאזינים ישמעו את הנתונים.

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

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