דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. רשתות
  4. פיתוח ועיצוב אתרים
  5. Full Stack
  6. צד שרת
  7. NodeJS
  8. עזרה הדדית - NodeJS
  9. בקשת מידע | פעולה אחרי id_listוכו' בימות ראוטר

בקשת מידע | פעולה אחרי id_listוכו' בימות ראוטר

מתוזמן נעוץ נעול הועבר עזרה הדדית - NodeJS
55 פוסטים 4 כותבים 241 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • צדיק תמיםצ צדיק תמים

    @עידו300 אם מגדירים prependToNextAction: true זה לא יוצא מהשלוחה אלא רק מוסיף את ההודעה לתור פנימי ואז פעם הבאה שהקוד יעשה read או id_list_message בלי prependToNextAction ההודעה שבתור תושמע ג"כ ותימחק מהתור

    למעשה זה די מבלבל ו "magic", היום הייתי עושה את זה אחרת

    שמואל ש.ש מנותק
    שמואל ש.ש מנותק
    שמואל ש.
    כתב נערך לאחרונה על ידי
    #13

    @צדיק-תמים כתב בבקשת מידע | פעולה אחרי id_listוכו' בימות ראוטר:

    ואז פעם הבאה שהקוד יעשה read או id_list_message בלי prependToNextAction ההודעה שבתור תושמע ג"כ ותימחק מהתור

    לא הבנתי, הוא לא משמיע את זה מיד אלא רק בהשמעה הבאה - ע"י read או id_list_message?

    הקמת מערכות טלפוניות בימות המשיח! 19smuel@gmail.com
    כל לקוחותי מרוצים ויהיו מרוצים בעז"ה!

    צדיק תמיםצ תגובה 1 תגובה אחרונה
    0
    • שמואל ש.ש שמואל ש.

      @צדיק-תמים כתב בבקשת מידע | פעולה אחרי id_listוכו' בימות ראוטר:

      ואז פעם הבאה שהקוד יעשה read או id_list_message בלי prependToNextAction ההודעה שבתור תושמע ג"כ ותימחק מהתור

      לא הבנתי, הוא לא משמיע את זה מיד אלא רק בהשמעה הבאה - ע"י read או id_list_message?

      צדיק תמיםצ מנותק
      צדיק תמיםצ מנותק
      צדיק תמים
      מדריכים
      כתב נערך לאחרונה על ידי צדיק תמים
      #14

      @שמואל-ש. בדיוק
      prepend to next action = הוסף לפני הפעולה הבאה

      רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

      ע תגובה 1 תגובה אחרונה
      0
      • צדיק תמיםצ צדיק תמים

        @שמואל-ש. בדיוק
        prepend to next action = הוסף לפני הפעולה הבאה

        ע מנותק
        ע מנותק
        עידו300
        כתב נערך לאחרונה על ידי
        #15

        @צדיק-תמים אם אני רוצה לבצע עוד פעולות אבל הן לא קשורות למאזין, אני צריך שיפעלו גם אם הוא ינתק ובכל מקרה לא יפריעו לו כלל. הוא לא אמור להיות אפילו מודע להן.
        איך עושים את זה?

        צדיק תמיםצ תגובה 1 תגובה אחרונה
        0
        • ע עידו300

          @צדיק-תמים אם אני רוצה לבצע עוד פעולות אבל הן לא קשורות למאזין, אני צריך שיפעלו גם אם הוא ינתק ובכל מקרה לא יפריעו לו כלל. הוא לא אמור להיות אפילו מודע להן.
          איך עושים את זה?

          צדיק תמיםצ מנותק
          צדיק תמיםצ מנותק
          צדיק תמים
          מדריכים
          כתב נערך לאחרונה על ידי צדיק תמים
          #16

          @עידו300 עיין בתיעוד בסוף, יש פירוט

          רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

          ע 2 תגובות תגובה אחרונה
          0
          • צדיק תמיםצ צדיק תמים

            @עידו300 עיין בתיעוד בסוף, יש פירוט

            ע מנותק
            ע מנותק
            עידו300
            כתב נערך לאחרונה על ידי עידו300
            #17

            @צדיק-תמים תודה בודק

            תגובה 1 תגובה אחרונה
            1
            • צדיק תמיםצ צדיק תמים

              @עידו300 עיין בתיעוד בסוף, יש פירוט

              ע מנותק
              ע מנותק
              עידו300
              כתב נערך לאחרונה על ידי
              #18

              @צדיק-תמים אני מניח שזה

              (() => {
                  await doBigJob();
              })();
              call.id_list_message(...);
              

              הפתרון הפשוט, נכון?
              למה אגב, צריך את הawait? זה לא אומר לחכות שהבקשה תסתיים? ואז בעצם לא הרווחנו כלום...

              צדיק תמיםצ תגובה 1 תגובה אחרונה
              0
              • ע עידו300

                @צדיק-תמים אני מניח שזה

                (() => {
                    await doBigJob();
                })();
                call.id_list_message(...);
                

                הפתרון הפשוט, נכון?
                למה אגב, צריך את הawait? זה לא אומר לחכות שהבקשה תסתיים? ואז בעצם לא הרווחנו כלום...

                צדיק תמיםצ מנותק
                צדיק תמיםצ מנותק
                צדיק תמים
                מדריכים
                כתב נערך לאחרונה על ידי צדיק תמים
                #19

                @עידו300 כבר כתבתי לך פעם ללמוד איך אסינכרוניות עובדת...
                await רק מעכב את השורות הבאות, לא תוקע את התוכנה, וכיוון שזה בפונקציה אנונימית זה לא יעכב את המעבר לשורה הבאה
                תכלס הawait פה הוא רק לסמן שזה משהו ארוך, למעיישה חסר גם async בהגדרה של הפונקציית חץ

                רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                ע 2 תגובות תגובה אחרונה
                0
                • צדיק תמיםצ צדיק תמים

                  @עידו300 כבר כתבתי לך פעם ללמוד איך אסינכרוניות עובדת...
                  await רק מעכב את השורות הבאות, לא תוקע את התוכנה, וכיוון שזה בפונקציה אנונימית זה לא יעכב את המעבר לשורה הבאה
                  תכלס הawait פה הוא רק לסמן שזה משהו ארוך, למעיישה חסר גם async בהגדרה של הפונקציית חץ

                  ע מנותק
                  ע מנותק
                  עידו300
                  כתב נערך לאחרונה על ידי
                  #20

                  @צדיק-תמים כתב בבקשת מידע | פעולה אחרי id_listוכו' בימות ראוטר:

                  כבר כתבתי לך פעם ללמוד איך אסינכרוניות עובדת...

                  אל תדאג אני באמצע... אבל לא ראיתי לזה התייסות.

                  מה זה מעכב ולא תוקע? זה ממשיך או לא?

                  אבל למה לעכב אם כל המטרה היא להמשיך בשקט?

                  צדיק תמיםצ תגובה 1 תגובה אחרונה
                  0
                  • ע עידו300

                    @צדיק-תמים כתב בבקשת מידע | פעולה אחרי id_listוכו' בימות ראוטר:

                    כבר כתבתי לך פעם ללמוד איך אסינכרוניות עובדת...

                    אל תדאג אני באמצע... אבל לא ראיתי לזה התייסות.

                    מה זה מעכב ולא תוקע? זה ממשיך או לא?

                    אבל למה לעכב אם כל המטרה היא להמשיך בשקט?

                    צדיק תמיםצ מנותק
                    צדיק תמיםצ מנותק
                    צדיק תמים
                    מדריכים
                    כתב נערך לאחרונה על ידי צדיק תמים
                    #21

                    @עידו300 כשתבין איך async await עובד לא תהיה לך שום שאלה. לצערי אין לי זמן ללמד פה איך זה עובד.

                    רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                    ע 2 תגובות תגובה אחרונה
                    0
                    • צדיק תמיםצ צדיק תמים

                      @עידו300 כשתבין איך async await עובד לא תהיה לך שום שאלה. לצערי אין לי זמן ללמד פה איך זה עובד.

                      ע מנותק
                      ע מנותק
                      עידו300
                      כתב נערך לאחרונה על ידי עידו300
                      #22

                      @צדיק-תמים
                      😕
                      בכל מקרה, תודה!

                      תגובה 1 תגובה אחרונה
                      0
                      • צדיק תמיםצ צדיק תמים

                        @עידו300 כשתבין איך async await עובד לא תהיה לך שום שאלה. לצערי אין לי זמן ללמד פה איך זה עובד.

                        ע מנותק
                        ע מנותק
                        עידו300
                        כתב נערך לאחרונה על ידי
                        #23

                        @צדיק-תמים קרה משהו מוזר
                        אני מתחיל לקבל שגיאות:

                        rror [ERR_MODULE_NOT_FOUND]: Cannot find package '/home/node.stamandsefer.co.il/public_html/node_modules/yemot-router2/' imported from /home/node.stamandsefer.co.il/public_html/src/routes/adAddRoute.js
                            at new NodeError (node:internal/errors:405:5)
                            at legacyMainResolve (node:internal/modules/esm/resolve:218:9)
                            at packageResolve (node:internal/modules/esm/resolve:903:14)
                            at moduleResolve (node:internal/modules/esm/resolve:973:20)
                            at defaultResolve (node:internal/modules/esm/resolve:1206:11)
                            at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:404:12)
                            at ModuleLoader.resolve (node:internal/modules/esm/loader:373:25)
                            at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:250:38)
                            at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:39)
                            at link (node:internal/modules/esm/module_job:75:36) {
                          code: 'ERR_MODULE_NOT_FOUND'
                        }
                        

                        שזה אומר שהוא לא מוצא את התיקיה של הספריה של ימות, וכשאני נכנס לבדוק ידנית אני מגלה שהיא הפכה לקיצור דרך, וגם כשאני מתקין שוב מהNPM, היא מותקנת ישר בתור קיצור דרך מה שגורם לזה שא"א להפעיל את הקוד כמובן...
                        מכיר משהו כזה?

                        צדיק תמיםצ תגובה 1 תגובה אחרונה
                        0
                        • ע עידו300

                          @צדיק-תמים קרה משהו מוזר
                          אני מתחיל לקבל שגיאות:

                          rror [ERR_MODULE_NOT_FOUND]: Cannot find package '/home/node.stamandsefer.co.il/public_html/node_modules/yemot-router2/' imported from /home/node.stamandsefer.co.il/public_html/src/routes/adAddRoute.js
                              at new NodeError (node:internal/errors:405:5)
                              at legacyMainResolve (node:internal/modules/esm/resolve:218:9)
                              at packageResolve (node:internal/modules/esm/resolve:903:14)
                              at moduleResolve (node:internal/modules/esm/resolve:973:20)
                              at defaultResolve (node:internal/modules/esm/resolve:1206:11)
                              at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:404:12)
                              at ModuleLoader.resolve (node:internal/modules/esm/loader:373:25)
                              at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:250:38)
                              at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:39)
                              at link (node:internal/modules/esm/module_job:75:36) {
                            code: 'ERR_MODULE_NOT_FOUND'
                          }
                          

                          שזה אומר שהוא לא מוצא את התיקיה של הספריה של ימות, וכשאני נכנס לבדוק ידנית אני מגלה שהיא הפכה לקיצור דרך, וגם כשאני מתקין שוב מהNPM, היא מותקנת ישר בתור קיצור דרך מה שגורם לזה שא"א להפעיל את הקוד כמובן...
                          מכיר משהו כזה?

                          צדיק תמיםצ מנותק
                          צדיק תמיםצ מנותק
                          צדיק תמים
                          מדריכים
                          כתב נערך לאחרונה על ידי
                          #24

                          @עידו300 לא
                          תנסה למחוק את תיקיית node_modules

                          רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                          ע תגובה 1 תגובה אחרונה
                          0
                          • צדיק תמיםצ צדיק תמים

                            @עידו300 לא
                            תנסה למחוק את תיקיית node_modules

                            ע מנותק
                            ע מנותק
                            עידו300
                            כתב נערך לאחרונה על ידי
                            #25

                            @צדיק-תמים מחקתי והתקנתי שוב
                            ועוד פעם אותו הדבר
                            27582abc-35cc-4e25-b673-68c9eb1905ff-image.png

                            צדיק תמיםצ תגובה 1 תגובה אחרונה
                            0
                            • ע עידו300

                              @צדיק-תמים מחקתי והתקנתי שוב
                              ועוד פעם אותו הדבר
                              27582abc-35cc-4e25-b673-68c9eb1905ff-image.png

                              צדיק תמיםצ מנותק
                              צדיק תמיםצ מנותק
                              צדיק תמים
                              מדריכים
                              כתב נערך לאחרונה על ידי
                              #26

                              @עידו300 תעלה את הקובץ package.json

                              רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                              ע 3 תגובות תגובה אחרונה
                              0
                              • צדיק תמיםצ צדיק תמים

                                @עידו300 תעלה את הקובץ package.json

                                ע מנותק
                                ע מנותק
                                עידו300
                                כתב נערך לאחרונה על ידי עידו300
                                #27

                                @צדיק-תמים
                                {
                                "name": "real-estate-brokerage-platform",
                                "version": "0.0.1",
                                "main": "app.js",
                                "private": "true",
                                "scripts": {
                                "start": "node app.js"
                                },
                                "keywords": [],
                                "author": "eido taib",
                                "license": "UNLICENSED",
                                "type": "module",
                                "dependencies": {
                                "express": "^4.21.2",
                                "yemot-router2": "file:.."
                                }
                                }

                                node_modules]# ls -l yemot-router2
                                lrwxrwxrwx. 1 root root 5 Oct 30 16:44 yemot-router2 -> ../..

                                צדיק תמיםצ תגובה 1 תגובה אחרונה
                                0
                                • צדיק תמיםצ צדיק תמים

                                  @עידו300 תעלה את הקובץ package.json

                                  ע מנותק
                                  ע מנותק
                                  עידו300
                                  כתב נערך לאחרונה על ידי עידו300
                                  #28

                                  @צדיק-תמים כאילו זה מותקן בתיקיית root
                                  בלאגן שלם פתאום נהיה שם

                                  סידרתי את זה, לא יודע ממה זה קרה

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • צדיק תמיםצ צדיק תמים

                                    @עידו300 תעלה את הקובץ package.json

                                    ע מנותק
                                    ע מנותק
                                    עידו300
                                    כתב נערך לאחרונה על ידי עידו300
                                    #29

                                    @צדיק-תמים מישהו יודע מה הסיפור של השגיאה הזו?

                                    else if (toDo == 9)
                                         {
                                           let ans = await call.read([{type: 'text', data: "אנא הקלט משהו"}], "record");
                                           console.log(ans);
                                          execFile("python3", ["/public_html/recognize.py",ans], (error, stdout, stderr) => {
                                           console.log(stdout);
                                           console.log(error);
                                            if (error) {
                                              console.error(error);
                                            call.id_list_message([{type:'text', data: "Error processing audio" }]);
                                                  return;
                                            }
                                            console.log("הבעיה כאן! בפלט");
                                            call.id_list_message([{type:'text', data: stdout}]);
                                            console.log("הבעיה כאן! בפלט");
                                          });
                                        }
                                    

                                    זה הקובץ פייתון (מתמלל מצוין, אגב)

                                    from pydub import AudioSegment
                                    import speech_recognition as sr
                                    from rapidfuzz import process, fuzz
                                    import sys, json, tempfile, requests
                                    
                                    token = ""
                                    BASE_URL = f"https://www.call2all.co.il/ym/api/DownloadFile?token={token}&path=ivr2:/"
                                    
                                    def add_silence(audio_segment):
                                        silence = AudioSegment.silent(duration=1000)
                                        return silence + audio_segment + silence
                                    
                                    def recognize_speech(audio_segment):
                                        recognizer = sr.Recognizer()
                                        with tempfile.NamedTemporaryFile(suffix=".wav", delete=True) as temp_wav:
                                            audio_segment.export(temp_wav.name, format="wav")
                                            with sr.AudioFile(temp_wav.name) as source:
                                                data = recognizer.record(source)
                                                try:
                                                    return recognizer.recognize_google(data, language="he-IL")
                                                except sr.UnknownValueError:
                                                    return ""  # לא זוהה דיבור
                                                except sr.RequestError as e:
                                                    return f"Error: {e}"  # בעיה עם ה‑API
                                    
                                    
                                    if __name__ == "__main__":
                                        # argv[1] = שם הקובץ בתוך ivr2:/  (למשל "1/003.wav")
                                        file_name = sys.argv[1]
                                        file_url = f"{BASE_URL}{file_name}"
                                    
                                        # 1️⃣ הורדת הקובץ מהאינטרנט
                                        response = requests.get(file_url)
                                        if response.status_code != 200:
                                            print("Error downloading audio file")
                                            sys.exit(1)
                                    
                                        # 2️⃣ שמירתו זמנית וטעינה עם pydub
                                        with tempfile.NamedTemporaryFile(suffix=".wav", delete=True) as temp_audio:
                                            temp_audio.write(response.content)
                                            temp_audio.flush()
                                            audio = AudioSegment.from_file(temp_audio.name, format="wav")
                                    
                                            # 3️⃣ הוספת שנייה שקט
                                            audio = add_silence(audio)
                                    
                                            # 4️⃣ זיהוי דיבור
                                            recognized_text = recognize_speech(audio)
                                    
                                    
                                            # ✅ הדפסת התוצאה
                                            print(recognized_text)
                                    
                                    

                                    השגיאה שאני מקבל:

                                    [716b56ab1a7cfd79b974fa0d55f5cbbd65915674]: Cannot send id_list_message after sending response (probably done from uncaughtErrorHandler due to error in asynchronous code after returning response)

                                    אני לא מוצא על איזה id_list_message הוא מתכוון... הוא לא משמיע כלום. גם לא את הid_list_message של השגיאה, בוודאות!

                                    הקטע שהוא רושם ללוג את 2 הטקסטים גם שלפני הid_list_message וגם שאחרי, ז"א שהריצה לא מסתיימת.

                                    צדיק תמיםצ תגובה 1 תגובה אחרונה
                                    0
                                    • ע מנותק
                                      ע מנותק
                                      עידו300
                                      כתב נערך לאחרונה על ידי
                                      #30

                                      מישהו?

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • ע מנותק
                                        ע מנותק
                                        עידו300
                                        כתב נערך לאחרונה על ידי
                                        #31

                                        מצרף את הקוד המלא אם זה יעזור למישהו לעזור לי...

                                        import { YemotRouter } from 'yemot-router2';
                                        import {sendRequest, mainextPath} from '../utils/utils_func.js';
                                        import '../utils/type.js'; 
                                        import {execFile} from 'child_process';
                                        
                                        
                                        /** @param {import('yemot-router2').Call} call */
                                        export async function callHandler (call) {
                                                console.log("מכין בקשה");
                                            
                                            // מקבל את כל ההעדפות של המאזין
                                            const params = new URLSearchParams({ phone: call.ApiPhone.replace("+972","0") });
                                            const url = `https://stamandsefer.co.il/appart/new/getTzintukSubcrib.php?${params}`;
                                        
                                            /** @type {AdResponse} */
                                            let responseSubscribe = await sendRequest(call ,url, "אירעה שגיאה בעת מציאת רישום להתראה");
                                            console.log("responseSubscribe: ", responseSubscribe);
                                        
                                            // יוצר פרמטרים לשליחה לקבלת כל המודעות שלא נקראו על פי ההעדפות הנ"ל
                                            let sumAds = 0;
                                        
                                         for (let element of makeAdsParams(responseSubscribe, call)) {
                                            //console.log("נכנס ללולאה");
                                            if(element.betShemesh == null) {element.betShemesh = ""};
                                            // מכל שורת פרמטרים מקבל את המודעות
                                                /** @type {AdResponse} */
                                              let responseAds = await sendRequest(call ,`https://stamandsefer.co.il/appart/new/getBuyerAds.php?${new URLSearchParams(element)}`, "אירעה שגיאה בעת מציאת מודעות");
                                              //console.log("responseAds: ", responseAds);  
                                              sumAds = sumAds + responseAds.count;
                                            };
                                        
                                            // אם אין מודעות בכלל עובר לשלוחה ראשית
                                            if (sumAds==0)
                                            {
                                                call.go_to_folder("/1/1");
                                            }
                                            
                                        for (let index = 0; index < 3; index++) {
                                            
                                            let toDo = await call.read([{type:"text", data:`יש ${sumAds} התראות חדשות למעבר לשמיעת ההתראות הקש 1 למעבר לשאר השלוחות 2`}], 
                                                'tap',
                                            {min_digits: 1, digits_allowed: [1,2, 9, "*0"], typing_playback_mode: 'No'});
                                        
                                             if (toDo == 1) {
                                                call.go_to_folder("/1/1/3");
                                             } else if (toDo == 2 || toDo == "*0") {
                                                call.go_to_folder(mainextPath);
                                             }
                                                else if (toDo == 9)
                                             {
                                               let ans = await call.read([{type: 'text', data: "אנא הקלט משהו"}], "record");
                                               console.log(ans);
                                              execFile("python3", ["/home/node.stamandsefer.co.il/public_html/recognize.py",ans], (error, stdout, stderr) => {
                                               console.log(stdout);
                                                if (error) {
                                                  console.error(error);
                                                call.id_list_message([{type:'text', data: "Error processing audio" }]);
                                                return;
                                                }
                                                console.log("הבעיה כאן! בפלט");
                                                call.id_list_message([{type:'text', data: ` התוצאה היא ${stdout}`}]);
                                                console.log("הבעיה כאן! בפלט");
                                              });
                                            }
                                        }
                                        
                                        call.go_to_folder("/1/1");
                                        }
                                        
                                        
                                        /***************************************** */
                                        /** @param {AdResponse} res @param {import('yemot-router2').Call} call */
                                        function makeAdsParams(res, call) {
                                            if (!res || !Array.isArray(res.data)) return [];
                                            let ads = [];
                                            /** @type {AdData[]} */
                                            for (const adBase of res.data) {
                                                    // עיבוד מודעה
                                            let paramsOfAd = {};
                                                // מוסיף לכל שדה קיים את הערך לאובייקט
                                            const allowedFields = ['buyorrent', 'city', 'betShemesh', 'region', 'room'];
                                            for (const key of allowedFields) {
                                                if (adBase[key] !== undefined && adBase[key] !== null) {
                                                    paramsOfAd[key] = adBase[key];
                                                }
                                            }
                                        
                                            paramsOfAd.phone =  call.ApiPhone.replace("+972", "0");
                                            if (paramsOfAd.room)
                                            {
                                                paramsOfAd.room = paramsOfAd.room.toString().replace(".0","");
                                            }
                                            ads.push(paramsOfAd);
                                            }
                                        
                                            return ads;
                                        }
                                        
                                        /***************************************** */
                                        /** @param {AdResponse} res*/
                                        function makeAds(res)
                                        {
                                            const adsData = res?.data ?? res?.results;
                                            if (!Array.isArray(adsData)) return [];
                                        
                                            let ad = [], tempAd;
                                                for (const adBase of adsData) {
                                                tempAd = `המודעה היא דירה ל${adBase.buyorrent} ב${adBase.city} `;
                                                if (adBase.city === "בית שמש") tempAd += `ה${adBase.betShemesh} `;
                                                tempAd += `${adBase.room} חדרים  בשכונה ${adBase.region} ברחוב ${adBase.street} מספר ${adBase.number} קומה ${adBase.floor} במחיר ${adBase.price} טלפון ליצירת קשר ${adBase.phone} `;
                                                if (adBase.phone2) tempAd += ` טלפון נוסף ${adBase.phone2}`;
                                                tempAd = tempAd.replace(".0","").replace(".5"," וחצי").replace("-","מינוס ");
                                                console.log(tempAd);   
                                                ad.push({ad: tempAd, adId: adBase.id});
                                            }
                                            return ad;
                                        }
                                        
                                        
                                        תגובה 1 תגובה אחרונה
                                        0
                                        • ע עידו300

                                          @צדיק-תמים מישהו יודע מה הסיפור של השגיאה הזו?

                                          else if (toDo == 9)
                                               {
                                                 let ans = await call.read([{type: 'text', data: "אנא הקלט משהו"}], "record");
                                                 console.log(ans);
                                                execFile("python3", ["/public_html/recognize.py",ans], (error, stdout, stderr) => {
                                                 console.log(stdout);
                                                 console.log(error);
                                                  if (error) {
                                                    console.error(error);
                                                  call.id_list_message([{type:'text', data: "Error processing audio" }]);
                                                        return;
                                                  }
                                                  console.log("הבעיה כאן! בפלט");
                                                  call.id_list_message([{type:'text', data: stdout}]);
                                                  console.log("הבעיה כאן! בפלט");
                                                });
                                              }
                                          

                                          זה הקובץ פייתון (מתמלל מצוין, אגב)

                                          from pydub import AudioSegment
                                          import speech_recognition as sr
                                          from rapidfuzz import process, fuzz
                                          import sys, json, tempfile, requests
                                          
                                          token = ""
                                          BASE_URL = f"https://www.call2all.co.il/ym/api/DownloadFile?token={token}&path=ivr2:/"
                                          
                                          def add_silence(audio_segment):
                                              silence = AudioSegment.silent(duration=1000)
                                              return silence + audio_segment + silence
                                          
                                          def recognize_speech(audio_segment):
                                              recognizer = sr.Recognizer()
                                              with tempfile.NamedTemporaryFile(suffix=".wav", delete=True) as temp_wav:
                                                  audio_segment.export(temp_wav.name, format="wav")
                                                  with sr.AudioFile(temp_wav.name) as source:
                                                      data = recognizer.record(source)
                                                      try:
                                                          return recognizer.recognize_google(data, language="he-IL")
                                                      except sr.UnknownValueError:
                                                          return ""  # לא זוהה דיבור
                                                      except sr.RequestError as e:
                                                          return f"Error: {e}"  # בעיה עם ה‑API
                                          
                                          
                                          if __name__ == "__main__":
                                              # argv[1] = שם הקובץ בתוך ivr2:/  (למשל "1/003.wav")
                                              file_name = sys.argv[1]
                                              file_url = f"{BASE_URL}{file_name}"
                                          
                                              # 1️⃣ הורדת הקובץ מהאינטרנט
                                              response = requests.get(file_url)
                                              if response.status_code != 200:
                                                  print("Error downloading audio file")
                                                  sys.exit(1)
                                          
                                              # 2️⃣ שמירתו זמנית וטעינה עם pydub
                                              with tempfile.NamedTemporaryFile(suffix=".wav", delete=True) as temp_audio:
                                                  temp_audio.write(response.content)
                                                  temp_audio.flush()
                                                  audio = AudioSegment.from_file(temp_audio.name, format="wav")
                                          
                                                  # 3️⃣ הוספת שנייה שקט
                                                  audio = add_silence(audio)
                                          
                                                  # 4️⃣ זיהוי דיבור
                                                  recognized_text = recognize_speech(audio)
                                          
                                          
                                                  # ✅ הדפסת התוצאה
                                                  print(recognized_text)
                                          
                                          

                                          השגיאה שאני מקבל:

                                          [716b56ab1a7cfd79b974fa0d55f5cbbd65915674]: Cannot send id_list_message after sending response (probably done from uncaughtErrorHandler due to error in asynchronous code after returning response)

                                          אני לא מוצא על איזה id_list_message הוא מתכוון... הוא לא משמיע כלום. גם לא את הid_list_message של השגיאה, בוודאות!

                                          הקטע שהוא רושם ללוג את 2 הטקסטים גם שלפני הid_list_message וגם שאחרי, ז"א שהריצה לא מסתיימת.

                                          צדיק תמיםצ מנותק
                                          צדיק תמיםצ מנותק
                                          צדיק תמים
                                          מדריכים
                                          כתב נערך לאחרונה על ידי
                                          #32

                                          @עידו300 כתב בבקשת מידע | פעולה אחרי id_listוכו' בימות ראוטר:

                                          זה הקובץ פייתון (מתמלל מצוין, אגב)

                                          @עידו300 כתב בבקשת מידע | פעולה אחרי id_listוכו' בימות ראוטר:

                                                      return recognizer.recognize_google(data, language="he-IL")
                                          

                                          ברור שזה מזהה מצוין, כי זה STT של גוגל והשרת עושה 0 עגול של עבודה

                                          רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                                          ע תגובה 1 תגובה אחרונה
                                          1

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • פופולרי
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר