• פילטר פעם אחת

    שאלות ועזרה הדדית
    1
    1
    0 הצבעות
    1 פוסטים
    5 צפיות
    אין תגובות
  • בשלוחת קבלת נתונים, הגבלת סוג נתון

    שאלות ועזרה הדדית
    2
    0 הצבעות
    2 פוסטים
    15 צפיות
    ז
    ????????????
  • שליפת נתונים משלוחת סקר..

    נפתר שאלות ועזרה הדדית
    48
    0 הצבעות
    48 פוסטים
    213 צפיות
    ש
    @פתרון-AI העיצוב טוב, יפה הרעיון! אבל באג קטן החלוניות ריקות.. [image: 1788147083682-%D7%A6%D7%99%D7%9C%D7%95%D7%9D-%D7%9E%D7%A1%D7%9A-3-_li.jpg]
  • ניתוב למשאיר ההודעה בחינם

    טיפים עצות והדגמות מהמשתמשים
    139
    14 הצבעות
    139 פוסטים
    8k צפיות
    י
    @איל-משולש אם אני מגדיר את הניתוב מחדש - והפעם דרך הממשק, אמור להיות שאני אוכל להשתמש בAPI אחר באותה שלוחה? או שזה לא קשור?
  • 3 הצבעות
    58 פוסטים
    2k צפיות
    י
    Spoiler > @לימוד-בתורת-מרן כתב: ולפני כמה ימים המודול שבק חיים אולי כי התחיל אלול... יש לי בשלוחת השמעת קבצים "ניתוב למשאיר ההודעה בחינם" של @איל-משולש . זה לא יכול לעבוד ביחד, נכון?
  • מישהו השתמש בsip החינמי הזה לאחרונה?

    שאלות ועזרה הדדית
    1
    0 הצבעות
    1 פוסטים
    9 צפיות
    אין תגובות
  • 1 הצבעות
    11 פוסטים
    129 צפיות
    י
    @איל-משולש כתב: שימו לב! הקבצים יעלו עם השם המדוייק שיש להם בדרייב, ולא עם מספר סידורי! אפשר להוסיף בפונקציה processUpload הגדרה של מונה כדי שהקבצים יעלו ממוספרים (000, 001 וכו'), הנה הקוד המלא עם המונה: // ========================================== // הגדרות קבועות בקוד // ========================================== const FOLDER_ID = 'הכנס_כאן_את_מזהה_התיקייה_שלך'; // אם המשתנה מוגדר (למשל '1/2') - ישתמש בו תמיד ולא יבקש בממשק. // אם נשאיר אותו ריק ('') - ישתמש בפרמטר הנתיב מ-URL או יבקש אותו בממשק. const DEFAULT_PATH = ''; function doGet(e) { var params = e ? e.parameter : {}; var token = params.token; // קביעת הנתיב בפועל: // אם DEFAULT_PATH לא ריק -> משתמשים בו תמיד. // אם הוא ריק -> משתמשים בפרמטר path שנשלח ב-URL. var effectivePath = (DEFAULT_PATH && DEFAULT_PATH.trim() !== '') ? DEFAULT_PATH : params.path; // אם חסר טוקן, או שחסר נתיב (במקרה ש-DEFAULT_PATH ריק ולא נשלח path ב-URL) -> מציגים UI if (!token || !effectivePath) { return createUI(effectivePath); } // ביצוע ההעלאה return processUpload(token, effectivePath); } /** * יצירת ממשק המשתמש (דינמי לפי מצב ה-DEFAULT_PATH) */ function createUI(currentPath) { // בדיקה האם יש נתיב מוגדר מראש var hasFixedPath = DEFAULT_PATH && DEFAULT_PATH.trim() !== ''; var htmlContent = ` <!DOCTYPE html> <html dir="rtl" lang="he"> <head> <meta charset="UTF-8"> <title>העלאת קבצים לימות המשיח</title> <style> body { font-family: Arial, sans-serif; background-color: #f4f6f9; margin: 0; padding: 40px; display: flex; justify-content: center; } .card { background: white; padding: 30px; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); width: 100%; max-width: 400px; } h2 { text-align: center; color: #333; margin-top: 0; } .info-path { background-color: #e9ecef; padding: 10px; border-radius: 4px; font-size: 14px; color: #495057; margin-bottom: 20px; text-align: center; } .form-group { margin-bottom: 15px; } label { display: block; margin-bottom: 5px; font-weight: bold; color: #555; } input[type="text"] { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; } button { width: 100%; padding: 12px; background-color: #007bff; color: white; border: none; border-radius: 4px; font-size: 16px; cursor: pointer; } button:hover { background-color: #0056b3; } #status { margin-top: 15px; font-weight: bold; text-align: center; } </style> </head> <body> <div class="card"> <h2>העלאת קבצים לימות</h2> ${hasFixedPath ? ` <div class="info-path"> הקבצים יעלו אוטומטית לנתיב: <strong>ivr2:${DEFAULT_PATH}</strong> </div> ` : ''} <form id="uploadForm"> <div class="form-group"> <label for="token">טוקן (Token):</label> <input type="text" id="token" name="token" required placeholder="הכנס טוקן..."> </div> ${!hasFixedPath ? ` <div class="form-group"> <label for="path">נתיב (Path):</label> <input type="text" id="path" name="path" required placeholder="לדוגמה: 1/2"> </div> ` : ''} <button type="submit">התחל העלאה</button> </form> <div id="status"></div> </div> <script> var hasFixedPath = ${hasFixedPath}; document.getElementById('uploadForm').addEventListener('submit', function(e) { e.preventDefault(); var token = document.getElementById('token').value.trim(); var statusDiv = document.getElementById('status'); statusDiv.style.color = '#333'; statusDiv.innerText = 'מעלה קבצים, אנא המתן...'; var targetUrl = window.location.href.split('?')[0] + '?token=' + encodeURIComponent(token); // אם אין נתיב קבוע, מוסיפים את הנתיב מהשדה בטופס if (!hasFixedPath) { var inputPath = document.getElementById('path').value.trim(); targetUrl += '&path=' + encodeURIComponent(inputPath); } fetch(targetUrl) .then(response => response.text()) .then(data => { if (data.includes('OK:')) { statusDiv.style.color = 'green'; } else { statusDiv.style.color = 'red'; } statusDiv.innerText = data; }) .catch(err => { statusDiv.style.color = 'red'; statusDiv.innerText = 'שגיאה בחיבור: ' + err; }); }); </script> </body> </html> `; return HtmlService.createHtmlOutput(htmlContent) .setTitle('העלאת קבצים לימות המשיח') .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); } /** * פונקציית העלאת הקבצים */ function processUpload(token, ivrPath) { if (ivrPath.endsWith('/')) { ivrPath = ivrPath.slice(0, -1); } if (!ivrPath.startsWith('ivr2:')) { ivrPath = 'ivr2:' + ivrPath; } try { var folder = DriveApp.getFolderById(FOLDER_ID); var files = folder.getFiles(); var uploadedCount = 0; var errorsCount = 0; // מונה למספור הקבצים (0, 1, 2...) var counter = 0; while (files.hasNext()) { var file = files.next(); var mimeType = file.getMimeType(); var fileName = file.getName().toLowerCase(); var isAudio = mimeType.startsWith('audio/') || fileName.endsWith('.wav') || fileName.endsWith('.mp3') || fileName.endsWith('.ogg') || fileName.endsWith('.wma'); if (!isAudio) { continue; } // יצירת שם קובץ חדש במספור סידורי עם סיומת .wav var newFileName = String(counter).padStart(3, '0') + '.wav'; var fileBlob = file.getBlob(); var fullPath = ivrPath + '/' + newFileName; var yemotUrl = 'https://www.call2all.co.il/ym/api/UploadFile' + '?token=' + encodeURIComponent(token) + '&path=' + encodeURIComponent(fullPath) + '&convertAudio=1'; var options = { 'method': 'post', 'payload': { 'file': fileBlob }, 'muteHttpExceptions': true }; var response = UrlFetchApp.fetch(yemotUrl, options); var responseText = response.getContentText(); if (responseText.includes('OK')) { uploadedCount++; counter++; // קידום המונה לקובץ הבא } else { errorsCount++; } } return ContentService.createTextOutput("OK: Uploaded " + uploadedCount + " files. Errors: " + errorsCount); } catch (error) { return ContentService.createTextOutput("EXCEPTION: " + error.toString()); } }
  • ספר טלפונים עם זיהוי דיבור

    טיפים עצות והדגמות מהמשתמשים
    237
    2 הצבעות
    237 פוסטים
    14k צפיות
    י
    @אברהם-בן-שמעון-0 עיין כאן
  • העברה לשלוחה אחרת לפי שעות

    שאלות ועזרה הדדית
    6
    0 הצבעות
    6 פוסטים
    80 צפיות
    י
    @sh0548534047 עכשיו הייתי צריך את זה למשהו אחר וזה אכן עובד.
  • 3 הצבעות
    58 פוסטים
    1k צפיות
    פ
    @פיתה בגלל זה שאלתי אם מישהו הכין ומרשה להשתמש שיכתוב שזה ממנו אבל לא שלקחו מאיזה אתר ויש תנאי שימוש ואחר כך מפיצים כאן בלי שנדע ונוכל להסתבך
  • 10 הצבעות
    195 פוסטים
    5k צפיות
    פ
    לאחר בקשתו של @אריה-ai נוסף אפשרות במערכת להכניס כמה מפתחות של גמיני ככה שגם אם נגמר אחד עובר לשני וכן על זה הדרך
  • מספרי 1-700 - הפרטים שידועים לנו!

    שאלות ועזרה הדדית
    63
    0 הצבעות
    63 פוסטים
    2k צפיות
    י
    @המומחה זה אומר שזה עם/ללא פרסומות?
  • 0 הצבעות
    17 פוסטים
    41 צפיות
    ה
    @מסובך-מאוד אם יש שגיאה אולי צריך להכין בשלוחת ההודעות קובץ בשם TitleVoice.ini
  • כמה צינתוקים באמת נשלחו?

    שאלות ועזרה הדדית
    1
    0 הצבעות
    1 פוסטים
    11 צפיות
    אין תגובות
  • קו עבודות מטורף "קול הדרושים"

    שאלות ועזרה הדדית
    16
    1 הצבעות
    16 פוסטים
    84 צפיות
    מ
    @המתכנת-הראשי קו העבודות לוקחים כסף מחברי VIP ששומעים את המשרות לפני כולם וגם יכולים לחייג למעסיק מיד לעומת מי שלא משלם ששומע רק לאחר אישור מנהל ויכול לחייג רק לאחר שעה. וגם לוקחים על מי שרוצה שהמשרה תאושר מיד. ועבודה בקליק לקחים 15 שח בחודש למי שרוצה לשמוע את מספרי הטלפון של המעסיקים. Spoiler נראה שאתה לא מעודכן
  • 0 הצבעות
    8 פוסטים
    13 צפיות
    ש
    @הללוהו כתב: @שלוחה-404 שאל אותו כשאני מקבל דרך שרת טקסט מקודד כURIENCODE איך אני ממיר את זה חזרה לעברית תקינה בגוגל סקריפט שכחתי מזה ואין לי התראות בפורום אם הטקסט מגיע ל־Google Apps Script כשהוא מקודד ב־URIENCODE, אפשר להמיר אותו חזרה לעברית באמצעות: const decodedText = decodeURIComponent(encodedText); לדוגמה, אם השרת מחזיר: %D7%A9%D7%9C%D7%95%D7%9D%20%D7%A2%D7%95%D7%9C%D7%9D אז: function test() { const encodedText = "%D7%A9%D7%9C%D7%95%D7%9D%20%D7%A2%D7%95%D7%9C%D7%9D"; const decodedText = decodeURIComponent(encodedText); Logger.log(decodedText); } התוצאה תהיה: שלום עולם אם אתה מקבל את הנתון מתוך e.parameter, למשל: function doGet(e) { const text = e.parameter.text; Logger.log(text); } ייתכן ש־Apps Script כבר מפענח את ה־URL encoding אוטומטית. אם אתה רוצה, שלח לי דוגמה מדויקת למה שהשרת מחזיר (לפני ואחרי), ואוכל לתת לך את השורה המדויקת שצריך לשים בקוד שלך.
  • הודעה לפני הקובץ. שהקובץ כבר לא רלוונטי

    לא נפתר שאלות ועזרה הדדית
    4
    0 הצבעות
    4 פוסטים
    29 צפיות
    מ
    @CUBASE מה אפשר לעשות
  • דחוף! כניסה רק למאזין פעיל דחוף!

    לא נפתר שאלות ועזרה הדדית
    4
    0 הצבעות
    4 פוסטים
    15 צפיות
    ה
    טיפה מסובך לי להסביר...
  • להגדיר שהמקליט יבחר אם לצנתק או לא

    שאלות ועזרה הדדית
    4
    0 הצבעות
    4 פוסטים
    13 צפיות
    S
    @אורות-הצפון באלו menu_record_options_*= תשנה את ההגדרות אם צינתוק זה record_ok_end_run_tzintuk בלי צינתוק זה record_ok
  • מודל הזמנות מיטות להכנסת אורחים

    שאלות ועזרה הדדית
    15
    0 הצבעות
    15 פוסטים
    77 צפיות
    S
    מה האופציות ?