• דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    • הרשמה
    • התחברות

    תגובה לקבצי HTML לשימוש במערכות ימות המשיח

    מתוזמן נעוץ נעול הועבר עזרה הדדית למשתמשים מתקדמים
    51 פוסטים 9 כותבים 1.3k צפיות 5 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • א מנותק
      אA @מוזר
      נערך לאחרונה על ידי

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

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • א אA התייחס לנושא זה
      • א אA התייחס לנושא זה
      • א מנותק
        אA
        נערך לאחרונה על ידי

        @haiims

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

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

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

        ( אני יכול להוסיף בקוד את הטוקן שלי ? ואז זה יהיה קבוע ?)

        יש שם ניהול טוקנים?
        אז כן.
        אם לא, אני אוסיף.

        H תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • H מנותק
          haiims @אA
          נערך לאחרונה על ידי

          @אA נכון. אבל אני מתכוון שיהיה בנוסף אפשרות להקליט הודעה השיעור עלה לשלוחה 1 ואז שהמאזינים ידעו לאן עליה הקובץ .

          א תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • א מנותק
            אA @haiims
            נערך לאחרונה על ידי

            @haiims
            אתה רוצה שאוטומטית כשאתה מעלה קובץ לשלוחה מסויימת הוא יעדכן שעלה קובץ שלוחה זו בשלוחה הראשית?

            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • א מנותק
              אA
              נערך לאחרונה על ידי אA

              עידכון: אני מעלה את הקבצים גם כתוכנות ניידות.
              ניתן להוריד כאן

              תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • א אA התייחס לנושא זה
              • א מנותק
                אA
                נערך לאחרונה על ידי

                שימו לב!
                השירשור הקודם ננעל, וכעת השירשור של הקבצים נמצא בקישור הבא
                https://f2.freeivr.co.il/topic/20552/קבצים-ותוכנות-לשימוש-במערכות-ימות-המשיח?_=1776284093577

                שירשור התגובות ממשיך כאן

                בהצלחה!

                R ע 3 תגובות תגובה אחרונה תגובה ציטוט 0
                • R מנותק
                  R.E.T מערכות @אA
                  נערך לאחרונה על ידי R.E.T מערכות

                  פוסט זה נמחק!
                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • R מנותק
                    R.E.T מערכות @אA
                    נערך לאחרונה על ידי

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

                    תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • ע מחובר
                      עובד את השם @אA
                      נערך לאחרונה על ידי

                      @אA למה זה עושה לי ככה abeeae31-8fc2-4462-93d6-0a314f1d87e8-image.png

                      א תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • א מנותק
                        אופיר @עובד את השם
                        נערך לאחרונה על ידי

                        @עובד-את-השם יכול להיות שהעתקת את הקוד כשהמקלדת שלך על אנגלית?
                        תחליף מקלדת לעברית ותנסה שוב

                        ע 2 תגובות תגובה אחרונה תגובה ציטוט 0
                        • ע מחובר
                          עובד את השם @אופיר
                          נערך לאחרונה על ידי

                          @אופיר עשיתי בעברית

                          תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • ע מחובר
                            עובד את השם @אופיר
                            נערך לאחרונה על ידי

                            @אופיר יש מצב אתה מעלה את זה כקובץ בזיפ.
                            כי כשאA העלה את זה להורדה זה עבד, רק הוא לא העלה את הכל.

                            א תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • א מנותק
                              אופיר @עובד את השם
                              נערך לאחרונה על ידי

                              @עובד-את-השם איזה קובץ זה?

                              ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • ע מחובר
                                עובד את השם @אופיר
                                נערך לאחרונה על ידי

                                @אופיר כמו זה

                                א תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • א מנותק
                                  אופיר @עובד את השם
                                  נערך לאחרונה על ידי

                                  @עובד-את-השם קישור שגוי

                                  ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                  • ע מחובר
                                    עובד את השם @אופיר
                                    נערך לאחרונה על ידי

                                    @אופיר תראה בזה

                                    א תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                    • א מנותק
                                      אופיר @עובד את השם
                                      נערך לאחרונה על ידי

                                      @עובד-את-השם קובץ להעברת קבצים בין מערכות?

                                      ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                      • ע מחובר
                                        עובד את השם @אופיר
                                        נערך לאחרונה על ידי

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

                                        <!DOCTYPE html>
                                        <html lang="he" dir="rtl">
                                        <head>
                                           <meta charset="UTF-8">
                                           <title>הורדת שלוחות למחשב</title>
                                           <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
                                           <style>
                                               body { font-family: 'Segoe UI', Tahoma, sans-serif; margin: 20px; background-color: #f4f7f6; text-align: right; direction: rtl; }
                                               .container { max-width: 1100px; margin: auto; background: white; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
                                               .section { border: 1px solid #e0e0e0; padding: 15px; margin-bottom: 15px; border-radius: 8px; background: #fafafa; }
                                               #logArea { 
                                                   background: #1e1e1e; color: #d4d4d4; padding: 15px; border-radius: 5px; 
                                                   height: 250px; overflow-y: auto; font-family: 'Consolas', monospace; font-size: 13px; margin-top: 10px;
                                               }
                                               .log-info { color: #4fc3f7; }
                                               .log-success { color: #00ff00; font-weight: bold; }
                                               .log-error { color: #ff5252; }
                                               button { padding: 10px 20px; background: #3498db; color: white; border: none; cursor: pointer; border-radius: 5px; font-weight: bold; transition: background 0.3s; }
                                               button:hover { background: #2980b9; }
                                               button:disabled { background: #bdc3c7; }
                                               input { padding: 10px; margin: 5px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; }
                                               .token-input { width: 350px; }
                                               .config-input { width: 60px; text-align: center; }
                                               table { width: 100%; border-collapse: collapse; margin-top: 15px; }
                                               th, td { border: 1px solid #ddd; padding: 12px; text-align: right; }
                                               .progress-container { background: #e0e0e0; border-radius: 20px; height: 25px; margin: 15px 0; overflow: hidden; display: none; }
                                               .progress-bar { width: 0%; height: 100%; background: linear-gradient(90deg, #2ecc71, #27ae60); transition: width 0.3s; color: white; text-align: center; line-height: 25px; font-weight: bold; }
                                           </style>
                                        </head>
                                        <body>
                                        
                                        <div class="container">
                                           <h2>הורדת מבנה שלוחות למחשב (ZIP)</h2>
                                           
                                           <div class="section">
                                               <strong>⚙️ הגדרות:</strong>
                                               סרוק שלוחות בעלות <input type="number" id="digitCount" class="config-input" value="2" min="1" max="4"> ספרות.
                                               שם קובץ לשמירה: <input type="text" id="fileNameInput" placeholder="backup_ivr" value="backup_ivr">
                                           </div>
                                        
                                           <div class="section">
                                               <strong>1. פרטי המערכת</strong><br>
                                               <input type="text" id="srcToken" class="token-input" placeholder="הכנס טוקן מקור...">
                                               <input type="text" id="srcPath" class="path-input" placeholder="נתיב (למשל /)" value="/">
                                               <button onclick="loadFolder(document.getElementById('srcPath').value)">טען רשימת קבצים</button>
                                           </div>
                                        
                                           <div class="section">
                                               <strong>2. ביצוע הורדה</strong><br>
                                               <button id="downloadBtn" onclick="startDownload()" disabled style="background:#27ae60;">בחר מיקום והורד ZIP</button>
                                               
                                               <div class="progress-container" id="progContainer">
                                                   <div id="progBar" class="progress-bar">0%</div>
                                               </div>
                                               <div id="logArea">מוכן...</div>
                                           </div>
                                        
                                           <div id="fileArea" style="display:none;">
                                               <table id="fileTable">
                                                   <thead>
                                                       <tr>
                                                           <th style="width: 40px;"><input type="checkbox" id="masterCheck" checked onclick="toggleAll(this)"></th>
                                                           <th>סוג</th>
                                                           <th>שם</th>
                                                       </tr>
                                                   </thead>
                                                   <tbody id="fileTableBody"></tbody>
                                               </table>
                                           </div>
                                        </div>
                                        
                                        <script>
                                        let currentViewPath = "/";
                                        let zip = new JSZip();
                                        
                                        function addLog(msg, type = '') {
                                           const logArea = document.getElementById('logArea');
                                           const div = document.createElement('div');
                                           div.className = `log-${type}`;
                                           div.innerHTML = `[${new Date().toLocaleTimeString()}] ${msg}`;
                                           logArea.appendChild(div);
                                           logArea.scrollTop = logArea.scrollHeight;
                                        }
                                        
                                        async function loadFolder(path) {
                                           const token = document.getElementById('srcToken').value;
                                           const digits = parseInt(document.getElementById('digitCount').value) || 2;
                                           const maxRange = Math.pow(10, digits) - 1;
                                           if (!token) { alert("נא להזין טוקן"); return; }
                                        
                                           currentViewPath = path;
                                           const tbody = document.getElementById('fileTableBody');
                                           tbody.innerHTML = '<tr><td colspan="3">סורק...</td></tr>';
                                        
                                           try {
                                               const res = await fetch(`https://www.call2all.co.il/ym/api/GetIVR2Dir?token=${token}&path=${path}`);
                                               const data = await res.json();
                                               let filesMap = new Map();
                                        
                                               if (data.files) data.files.forEach(f => filesMap.set(f.name, f));
                                        
                                               const scanPromises = [];
                                               for (let i = 0; i <= maxRange; i++) {
                                                   const n = i.toString();
                                                   if (filesMap.has(n)) continue;
                                                   scanPromises.push(
                                                       fetch(`https://www.call2all.co.il/ym/api/GetTextFile?token=${token}&what=ivr2:${path}/${n}/ext.ini`)
                                                       .then(r => r.json())
                                                       .then(d => { if (d.contents !== undefined) filesMap.set(n, { name: n, fileType: "DIR" }); })
                                                       .catch(() => {})
                                                   );
                                               }
                                               await Promise.all(scanPromises);
                                        
                                               tbody.innerHTML = '';
                                               filesMap.forEach(f => {
                                                   tbody.insertAdjacentHTML('beforeend', `
                                                       <tr>
                                                           <td><input type="checkbox" class="file-check" data-name="${f.name}" data-type="${f.fileType}" checked></td>
                                                           <td>${f.fileType === "DIR" || !isNaN(f.name) ? "שלוחה" : "קובץ"}</td>
                                                           <td>${f.name}</td>
                                                       </tr>`);
                                               });
                                        
                                               document.getElementById('fileArea').style.display = 'block';
                                               document.getElementById('downloadBtn').disabled = false;
                                               addLog("סריקה הושלמה.", "info");
                                           } catch (e) { addLog("שגיאה בסריקה", "error"); }
                                        }
                                        
                                        async function downloadRecursive(token, path, name, type, zipFolder) {
                                           const sPath = `${path}/${name}`.replace(/\/+/g, '/');
                                           const digits = parseInt(document.getElementById('digitCount').value) || 2;
                                        
                                           if (type === "DIR" || !isNaN(name)) {
                                               addLog(`מוריד שלוחה: ${sPath}`, "info");
                                               const newFolder = zipFolder.folder(name);
                                               
                                               try {
                                                   const iniRes = await fetch(`https://www.call2all.co.il/ym/api/GetTextFile?token=${token}&what=ivr2:${sPath}/ext.ini`);
                                                   const iniData = await iniRes.json();
                                                   if (iniData.contents !== undefined) newFolder.file("ext.ini.txt", iniData.contents);
                                               } catch(e) {}
                                        
                                               const res = await fetch(`https://www.call2all.co.il/ym/api/GetIVR2Dir?token=${token}&path=${sPath}`);
                                               const data = await res.json();
                                               let children = data.files || [];
                                        
                                               const subScan = [];
                                               for(let i=0; i <= Math.pow(10, digits)-1; i++) {
                                                   const n = i.toString();
                                                   if(!children.find(c => c.name === n)) {
                                                       subScan.push(
                                                           fetch(`https://www.call2all.co.il/ym/api/GetTextFile?token=${token}&what=ivr2:${sPath}/${n}/ext.ini`)
                                                           .then(r => r.json())
                                                           .then(d => { if(d.contents !== undefined) children.push({name: n, fileType: "DIR"}); })
                                                       );
                                                   }
                                               }
                                               await Promise.all(subScan);
                                        
                                               for (const f of children) {
                                                   if (f.name === "ext.ini") continue;
                                                   await downloadRecursive(token, sPath, f.name, f.fileType, newFolder);
                                               }
                                           } else {
                                               try {
                                                   addLog(`מוריד קובץ: ${sPath}`, "info");
                                                   let finalName = name;
                                                   const lowerName = name.toLowerCase();
                                                   const isAudio = lowerName.endsWith('.mp3') || lowerName.endsWith('.wav');
                                                   
                                                   if (!isAudio && !lowerName.endsWith('.txt')) {
                                                       finalName = name + ".txt";
                                                   }
                                        
                                                   const dl = await fetch(`https://www.call2all.co.il/ym/api/DownloadFile?token=${token}&path=ivr2:${sPath}`);
                                                   const blob = await dl.blob();
                                                   zipFolder.file(finalName, blob);
                                               } catch(e) { addLog(`שגיאה בהורדת קובץ ${sPath}`, "error"); }
                                           }
                                        }
                                        
                                        async function startDownload() {
                                           const token = document.getElementById('srcToken').value;
                                           const userFileName = document.getElementById('fileNameInput').value || 'backup_ivr';
                                           const selected = Array.from(document.querySelectorAll('.file-check:checked'));
                                           
                                           if (selected.length === 0) { alert("לא נבחרו קבצים להורדה"); return; }
                                        
                                           // בקשת מיקום שמירה מהמשתמש לפני תחילת העבודה (בדפדפנים תומכים)
                                           let fileHandle = null;
                                           try {
                                               if ('showSaveFilePicker' in window) {
                                                   fileHandle = await window.showSaveFilePicker({
                                                       suggestedName: `${userFileName}.zip`,
                                                       types: [{
                                                           description: 'ZIP Archive',
                                                           accept: {'application/zip': ['.zip']},
                                                       }],
                                                   });
                                               }
                                           } catch (err) {
                                               if (err.name === 'AbortError') return; // המשתמש ביטל את חלונית השמירה
                                               addLog("דפדפן לא תומך בבחירת מיקום מראש, ההורדה תתבצע כרגיל בסיום.", "info");
                                           }
                                        
                                           zip = new JSZip(); 
                                           document.getElementById('downloadBtn').disabled = true;
                                           document.getElementById('progContainer').style.display = 'block';
                                        
                                           for (let i = 0; i < selected.length; i++) {
                                               const name = selected[i].getAttribute('data-name');
                                               const type = selected[i].getAttribute('data-type');
                                               await downloadRecursive(token, currentViewPath, name, type, zip);
                                               let p = Math.round(((i + 1) / selected.length) * 100);
                                               document.getElementById('progBar').style.width = p + '%';
                                               document.getElementById('progBar').innerText = p + '%';
                                           }
                                        
                                           addLog("מכין קובץ ZIP סופי...", "info");
                                           const content = await zip.generateAsync({type:"blob"});
                                        
                                           if (fileHandle) {
                                               // שמירה למיקום שהמשתמש בחר מראש
                                               const writable = await fileHandle.createWritable();
                                               await writable.write(content);
                                               await writable.close();
                                           } else {
                                               // הורדה רגילה לתיקיית ההורדות
                                               const link = document.createElement('a');
                                               link.href = URL.createObjectURL(content);
                                               link.download = `${userFileName}.zip`;
                                               link.click();
                                           }
                                           
                                           addLog("✅ ההורדה והשמירה הסתיימו בהצלחה!", "success");
                                           document.getElementById('downloadBtn').disabled = false;
                                        }
                                        
                                        function toggleAll(source) {
                                           document.querySelectorAll('.file-check').forEach(cb => cb.checked = source.checked);
                                        }
                                        </script>
                                        </body>
                                        </html>
                                        
                                        תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                        • פוסט ראשון
                                          פוסט אחרון