בדיקת קוד פייתון
-
@ישראללוי כתב בבדיקת קוד פייתון:
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"