בדיקת קוד פייתון
-
@ישראללוי כתב בבדיקת קוד פייתון:
target_path_folder = "IVR2/8"
יש לך כמה שגיאות קודם כל בשורה 46:
target_path_folder = "IVR2/8"תשנה ל:
target_path_folder = "ivr/8/"תוסיף בפרמס: autoNumbering: true
כדי שזה יעלה במספור אוטומטי או שתשנה את הנתיב שיהיה את שם הקובץ + סיומת
לדוגמאtarget_path_folder = "ivr/8/000.wav" -
פוסט זה נמחק! -
@פיסטוק-פרווה זה הקריאה המועדכנת
זה תקין?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) -
@ישראללוי
זה לא קורא טוב את הערכים מה .env
איך רשמת ב ENV. (בלי סיסמה) -
@פיסטוק-פרווה
YEMOT_USERNAME=************
YEMOT_PASSWORD=*********
הטוקן והנתיב צריכים להיות בעדר או בפרמס? -
@ישראללוי
נראה לי שאפשר גם וגם אבל עדיף בפרמס -
@ישראללוי כתב בבדיקת קוד פייתון:
YEMOT_API_USERNAME
תוסיף פרינט של היוזר והסיסמה בהפעלת הקוד אחרי שזה נמשך מה env
-
@פיסטוק-פרווה כתב בבדיקת קוד פייתון:
@ישראללוי כתב בבדיקת קוד פייתון:
YEMOT_API_USERNAME
תוסיף פרינט של היוזר והסיסמה בהפעלת הקוד אחרי שזה נמשך מה env
הדפסתי והערכים תקינים
-
לא הבנתי למה צריך ffmpeg?, המערכת ממירה לבד את הקובץ
-
@פיסטוק-פרווה כתב בבדיקת קוד פייתון:
@ישראללוי
נראה לי שאפשר גם וגם אבל עדיף בפרמסזה המעודכן
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)תקין?
-
@ישראללוי ה-path שוב לא תקין, תחליף ל-
ivr/8/a.wav -
@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 ) -
@ישראללוי כתב בבדיקת קוד פייתון:
@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 )זה תקין?
-
from uuid import uuid4 import requests class Yemot: BASE_URL = "https://www.call2all.co.il/ym/api/" def __init__( self, user_name: str, password: str | int, ) -> None: self.token = f"{user_name}:{password}" self.params = { "token": self.token } def upload_file(self, path: str, blob: bytes, file_name: str, base_path: str = "ivr2:/") -> bool: total_size = len(blob) chunk_size = 49 * 1024 * 1024 chunks = [blob[offset:offset + chunk_size] for offset in range(0, total_size, chunk_size)] if len(chunks) == 1: return self._upload_small_file(path, blob, file_name, base_path) else: return self._upload_large_file(path, chunks, file_name, total_size, base_path) def _upload_small_file(self, path: str, blob: bytes, file_name: str, base_path: str) -> bool: data = { "path": f"{base_path}{path}", "convertAudio": "1", "autoNumbering": "true", } data.update(self.params) files = {"file": (file_name, blob)} url = f"{self.BASE_URL}UploadFile" response = requests.post(url, files=files, data=data).json() return response["responseStatus"] == "OK" def _upload_large_file(self, path: str, chunks: list[bytes], file_name: str, content_size: int, base_path: str) -> bool: qquuid = str(uuid4()) offset = 0 for index, chunk in enumerate(chunks): data = { "path": f"{base_path}{path}", "qquuid": qquuid, "convertAudio": "1", "autoNumbering": "true", "uploader": "yemot-admin", "qqfilename": file_name, "qqtotalfilesize": content_size, "qqtotalparts": len(chunks), "qqchunksize": len(chunk), "qqpartbyteoffset": offset, "qqpartindex": index, } data.update(self.params) files = { "qqfile": chunk, } url = f"{self.BASE_URL}UploadFile" response = requests.post(url, data=data, files=files).json() if not response["success"]: print(f"Error uploading chunk {index}: {response}") return False offset += len(chunk) data = { "path": f"{base_path}{path}", "uploader": "yemot-admin", "convertAudio": "1", "autoNumbering": "true", "qquuid": qquuid, "qqfilename": file_name, "qqtotalfilesize": content_size, "qqtotalparts": len(chunks), } data.update(self.params) response = requests.post(f"{self.BASE_URL}UploadFile?done", data=data).json() return response["responseStatus"] == "OK"
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות