• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    1. דף הבית
    2. ישראללוי
    י
    • פרופיל
    • עוקב אחרי 0
    • עוקבים 0
    • נושאים 9
    • פוסטים 42
    • הגבוה ביותר 1
    • שנוי במחלוקת 1
    • קבוצות 0

    ישראללוי

    @ישראללוי

    0
    מוניטין
    5
    צפיות בפרופיל
    42
    פוסטים
    0
    עוקבים
    0
    עוקב אחרי
    הצטרף ב- התחבר לאחרונה

    ישראללוי הפסק לעקוב עקוב

    הפוסטים הטובים ביותר שנוצרו על ידי ישראללוי

    • RE: פקודת login ב postman

      @אופיר כתב בפקודת login ב postman:

      @ישראללוי תנסה Login במקום login

      תודה רבה עובד

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • RE: החזרת שרת api של כמה קבצי שמע שישמע ככמה קבצים בשלוחת השמעת קבצים

      @אביי-ורבא לא מצאתי, אפשר קישורים לתיעוד?

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי

    פוסטים אחרונים שנוצרו על ידי ישראללוי

    • RE: בדיקת קוד פייתון

      @CUBASE כתב בבדיקת קוד פייתון:

      @ישראללוי ה-path שוב לא תקין, תחליף ל-ivr/8/a.wav

      זה המעודכן

              with open(local_wav_path, 'rb') as f:
                  # שם הקובץ בהעלאה צריך להיות עם סיומת .wav
                  files = {'file': (f'{remote_filename}.wav', f, 'audio/wav')}
                  response = session.post(f"{YEMOT_API_URL}/UploadFile",
                      params={
                          "token": f"{YEMOT_API_USERNAME}:{YEMOT_API_PASSWORD}",
                          "path":"ivr/8/a.wav"
                      },
                      headers={
                          "files": files
                      }
                  , timeout=90)
      
      

      תקין?

      עריכה זה המעודכן

              with open(local_wav_path, 'rb') as f:
                  # שם הקובץ בהעלאה צריך להיות עם סיומת .wav
                  files = {'file': (f'{remote_filename}.wav', f, 'audio/wav')}
                  response = session.post(f"{YEMOT_API_URL}/UploadFile",
                      params={
                          "token": f"{YEMOT_API_USERNAME}:{YEMOT_API_PASSWORD}",
                          "path":"ivr/8/a.wav"
                      },
                      files=files,
                      headers={
                          "Content-Type": "multipart/form-data"
                      },
                      timeout=90
                  )
      
      
      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • RE: בדיקת קוד פייתון

      @פיסטוק-פרווה כתב בבדיקת קוד פייתון:

      @ישראללוי
      נראה לי שאפשר גם וגם אבל עדיף בפרמס

      זה המעודכן

              with open(local_wav_path, 'rb') as f:
                  # שם הקובץ בהעלאה צריך להיות עם סיומת .wav
                  response = session.post(f"{YEMOT_API_URL}/UploadFile",
                      params={
                          "token": f"{YEMOT_API_USERNAME}:{YEMOT_API_PASSWORD}",
                          "path":"IVR2/8/a.wav"
                      },
                      headers={
                          "files": files
                      }
                  , timeout=90)
      
      

      תקין?

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • RE: בדיקת קוד פייתון

      @פיסטוק-פרווה כתב בבדיקת קוד פייתון:

      @ישראללוי כתב בבדיקת קוד פייתון:

      YEMOT_API_USERNAME

      תוסיף פרינט של היוזר והסיסמה בהפעלת הקוד אחרי שזה נמשך מה env

      הדפסתי והערכים תקינים

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • RE: בדיקת קוד פייתון

      @פיסטוק-פרווה
      YEMOT_USERNAME=************
      YEMOT_PASSWORD=*********
      הטוקן והנתיב צריכים להיות בעדר או בפרמס?

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • RE: בדיקת קוד פייתון

      @פיסטוק-פרווה זה הקריאה המועדכנת
      זה תקין?

                  response = session.post(f"{YEMOT_API_URL}/UploadFile", headers={
                      "token": f"{YEMOT_API_USERNAME}:{YEMOT_API_PASSWORD}",
                      "path": "IVR2/8/a.wav"
                      }, files={'file': (f'{remote_filename}.wav', f, 'audio/wav')}
                  , timeout=90) # Timeout ארוך יותר להעלאה
                  response.raise_for_status()
      

      זה תקין?

                      "token": f"{YEMOT_API_USERNAME}:{YEMOT_API_PASSWORD}",
      
      

      זה מחזיר שגיאה
      שגיאת העלאת קובץ: IllegalStateException(session token is required)

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • RE: בדיקת קוד פייתון

      @צדיק-תמים כתב בבדיקת קוד פייתון:

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

      תקנתי כעצתך תודה רבה

      @האדם-החושב כתב בבדיקת קוד פייתון:

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

      קוד מתוקן

      import os
      import shutil
      import requests
      import json  # <-- ייבוא חיוני לפיענוח תגובות API
      from dotenv import load_dotenv
      
      # --- טעינת משתני סביבה מקובץ .env ---
      load_dotenv()
      
      # הגדרת תיקיית הורדות
      # DOWNLOAD_FOLDER = 'downloads'
      # os.makedirs(DOWNLOAD_FOLDER, exist_ok=True)
      
      # --- משתנים גלובליים עבור ה-API ---
      YEMOT_API_USERNAME = os.getenv("YEMOT_USERNAME")
      YEMOT_API_PASSWORD = os.getenv("YEMOT_PASSWORD")
      YEMOT_API_URL = "https://www.call2all.co.il/ym/api"
      
      # -------------------------------------------------------------------
      # בדיקת תלות - האם FFmpeg מותקן?
      # -------------------------------------------------------------------
      if not shutil.which('ffmpeg'):
          print("--------------------------------------------------")
          print("אזהרה: FFmpeg לא נמצא במערכת שלך.")
          print("המרת קבצים ל-WAV לא תעבוד ללא FFmpeg.")
          print("אנא התקן אותו והוסף אותו ל-PATH של המערכת.")
          print("--------------------------------------------------")
      
      # -------------------------------------------------------------------
      # חלק 1: פונקציית עזר מתוקנת לתקשורת עם ימות המשיח
      # -------------------------------------------------------------------
      
      def process_yemot_api(local_wav_path, remote_filename):
          """
          Handles the entire Yemot API process: Login, Upload, and Logout.
          Uses JSON parsing for modern API responses and robust error handling.
          """
          if not YEMOT_API_USERNAME or not YEMOT_API_PASSWORD:
              print("שגיאה: שם משתמש או סיסמה של ימות המשיח לא הוגדרו בקובץ .env")
              return False
      
          session = requests.Session()
          print(f"שלב 1: מעלה את הקובץ '{local_wav_path}' אל '{remote_filename}.wav'...")
          
          # הנתיב צריך להיות רק התיקייה, שם הקובץ מועבר בנפרד
          target_path_folder = "IVR2/8"
          
          upload_params = {
              "token": f"{YEMOT_API_USERNAME}:{YEMOT_API_PASSWORD}",  # שימוש בטוקן הנכון שחולץ מה-JSON
              "what": "ivr_sync",
              "path": target_path_folder,
          }
          
          try:
              with open(local_wav_path, 'rb') as f:
                  # שם הקובץ בהעלאה צריך להיות עם סיומת .wav
                  files = {'file': (f'{remote_filename}.wav', f, 'audio/wav')}
                  response = session.post(f"{YEMOT_API_URL}/UploadFile", params=upload_params, files=files, timeout=90) # Timeout ארוך יותר להעלאה
                  response.raise_for_status()
      
              data = response.json()
              if data.get("responseStatus") == "OK":
                  print(f"העלאת הקובץ '{remote_filename}.wav' לשלוחה 8 הצליחה!")
                  return True
              else:
                  error_message = data.get("message", "שגיאה לא ידועה מה-API")
                  print(f"שגיאת העלאת קובץ: {error_message}")
                  return False
      
          except requests.exceptions.RequestException as e:
              print(f"שגיאת רשת בעת העלאת קובץ: {e}")
              return False
          except FileNotFoundError:
              print(f"שגיאה קריטית: לא נמצא קובץ מקומי להעלאה בנתיב {local_wav_path}")
              return False
          except json.JSONDecodeError:
              print(f"שגיאה בפענוח תגובת ה-API בעת העלאה. תגובה גולמית: {response.text}")
              return False
      
      if __name__ == "__main__":
          print("\n--- מתחיל הרצת בדיקה מקומית ---")
          
          # ודא שיש לך קובץ בשם 'a.wav' באותה תיקייה
          local_file = "a.wav"
          remote_name = "aaa_test" # שם הקובץ כפי שיופיע במערכת
          
          if os.path.exists(local_file):
              success = process_yemot_api(local_file, remote_name)
              if success:
                  print(f"\nהתהליך הושלם בהצלחה. הקובץ '{remote_name}.wav' אמור להיות בשלוחה 8.")
              else:
                  print("\nהתהליך נכשל. בדוק את הודעות השגיאה למעלה.")
          else:
              print(f"שגיאת בדיקה: הקובץ '{local_file}' לא נמצא. צור קובץ זה כדי להריץ את הבדיקה.")
          
          print("--- סיום הרצת בדיקה ---\n")
      

      מה לא נכון? תודה רבה

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • בדיקת קוד פייתון

      הקוד (ai) אמור לעשות login, להעלות קובץ מהמחשב, logout
      אשמח עם משהו שמבין יעבור על זה תודה רבה

      DOWNLOAD_FOLDER = 'downloads'
      os.makedirs(DOWNLOAD_FOLDER, exist_ok=True)
      
      # --- משתנים גלובליים עבור ה-API ---
      YEMOT_API_USERNAME = os.getenv("YEMOT_USERNAME")
      YEMOT_API_PASSWORD = os.getenv("YEMOT_PASSWORD")
      YEMOT_API_URL = "https://www.call2all.co.il/ym/api"
      
      # -------------------------------------------------------------------
      # בדיקת תלות - האם FFmpeg מותקן?
      # -------------------------------------------------------------------
      if not shutil.which('ffmpeg'):
          print("--------------------------------------------------")
          print("אזהרה: FFmpeg לא נמצא במערכת שלך.")
          print("המרת קבצים ל-WAV לא תעבוד ללא FFmpeg.")
          print("אנא התקнן אותו והוסף אותו ל-PATH של המערכת.")
          print("--------------------------------------------------")
      
      # -------------------------------------------------------------------
      # חלק 1: פונקציות עזר (כולל פונקציית API חדשה)
      # -------------------------------------------------------------------
      
      def process_yemot_api(local_wav_path, remote_filename_url):
          """
          Handles the entire Yemot API process: Login, Upload, and Logout.
          """
          if not YEMOT_API_USERNAME or not YEMOT_API_PASSWORD:
              print("שגיאה: שם משתמש או סיסמה של ימות המשיח לא הוגדרו בקובץ .env")
              return False
      
          session = requests.Session() # שימוש ב-Session כדי לשמור על ה-cookies בין הבקשות
          
          # --- שלב 1: Login ---
          print("שלב 1: מתחבר ל-API של ימות המשיח...")
          try:
              login_params = {"username": YEMOT_API_USERNAME, "password": YEMOT_API_PASSWORD}
              response = session.get(f"{YEMOT_API_URL}/Login", params=login_params, timeout=15)
              response.raise_for_status()
              
              response_text = response.text
              if "err=" in response_text:
                  print(f"שגיאת התחברות ל-API: {response_text.split('=')[1]}")
                  return False
              
              token = response_text.split("=")[1]
              print(f"התחברות הצליחה. טוקן: {token}")
              
          except requests.exceptions.RequestException as e:
              print(f"שגיאת רשת בעת התחברות: {e}")
              return False
      
          # --- שלב 2: Upload File ---
          print(f"שלב 2: מעלה את הקובץ '{local_wav_path}'...")
          
          # ימות המשיח דורשת שם קובץ ללא סיומת, וללא תווים מיוחדים.
          # ה-URL יכול להכיל תווים כמו ':', '/', '?', '='. נחליף אותם בתו בטוח.
          safe_remote_name = remote_filename_url.replace("https://", "").replace("/", "_").replace("?", "_").replace("=", "_").replace(".","_")
          
          # הגדרת נתיב היעד במערכת: IVR2/8/שם_הקובץ
          target_path = f"IVR2:8/{safe_remote_name}"
      
          upload_params = {
              "token": token,
              "what": "ivr_sync",
              "path": target_path,
              "file_name": safe_remote_name
          }
          
          try:
              with open(local_wav_path, 'rb') as f:
                  files = {'file': (f'{safe_remote_name}.wav', f, 'audio/wav')}
                  response = session.post(f"{YEMOT_API_URL}/UploadFile", params=upload_params, files=files, timeout=60) # Timeout ארוך יותר להעלאה
                  response.raise_for_status()
      
              response_text = response.text
              if "err=" in response_text:
                  print(f"שגיאת העלאת קובץ: {response_text.split('=')[1]}")
                  # נמשיך ל-logout גם אם ההעלאה נכשלה
              elif "ok" in response_text:
                  print(f"העלאת הקובץ '{safe_remote_name}.wav' לשלוחה 8 הצליחה!")
              else:
                  print(f"תגובה לא צפויה מה-API בעת העלאה: {response_text}")
      
          except requests.exceptions.RequestException as e:
              print(f"שגיאת רשת בעת העלאת קובץ: {e}")
          except FileNotFoundError:
              print(f"שגיאה קריטית: לא נמצא קובץ מקומי להעלאה בנתיב {local_wav_path}")
          finally:
              # --- שלב 3: Logout (תמיד יתבצע, גם אם ההעלאה נכשלה) ---
              print("שלב 3: מתנתק מה-API...")
              try:
                  logout_params = {"token": token}
                  response = session.get(f"{YEMOT_API_URL}/Logout", params=logout_params, timeout=10)
                  if "ok" in response.text:
                      print("התנתקות מה-API בוצעה בהצלחה.")
                  else:
                      print(f"תגובה לא צפויה בעת התנתקות: {response.text}")
              except requests.exceptions.RequestException as e:
                  print(f"שגיאת רשת בעת התנתקות: {e}")
      
          return "ok" in response_text # החזר True אם ההעלאה הצליחה
      
      

      תודה רבה

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • RE: השמעת קבצים בלי להעלות למערכת

      @אופיר איך אני מעלה קובץ דרך שרת פייתון?

      פורסם בפורום מפתחים API
      י
      ישראללוי
    • RE: פקודת login ב postman

      @אופיר כתב בפקודת login ב postman:

      @ישראללוי תנסה Login במקום login

      תודה רבה עובד

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      ישראללוי
    • השמעת קבצים בלי להעלות למערכת

      יש דרל להשמעת קבצים בלי להעלות למערכת?
      הזרמה או משהו כזה?

      פורסם בפורום מפתחים API
      י
      ישראללוי