דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
יאנג בויי

יאנג בוי

@יאנג בוי
מדריכים
אודות
פוסטים
951
נושאים
42
שיתופים
0
קבוצות
2
עוקבים
16
עוקב אחרי
8

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • שיתוף | שירשיר: משחק ניחוש שירים
    יאנג בויי יאנג בוי

    מגניב מאוד!
    61b0f150-4155-4fff-8bec-cd62de0946de-image.png
    התקדמות:
    84a40f43-3b77-4614-8f7c-d11cc5ca8451-image.png

    למה זה מוגבל ל15 שירים?
    הנה הגעתי לקצה...
    8ad15280-a3fa-4c1a-a504-8d00d29a9648-image.png
    מה עכשיו?


    אפשר לשפר את האלגוריתם של בחירת השירים? היו שירים שהיו לי בכל סשן, והיו שלא שמעתי בכלל. לדוגמה רק שיר אחד של ישי ריבו בשלושת הסשנים, ואמנם רק שיר אחד של מרדכי בן דוד (די) אבל הוא היה בכל שלושת הסשנים.
    היו עוד כמה כאלו.


    וגם גיליתי דרך לרמות את המערכת... 🤫


    אבל מגניב מאוד!

    כללי - עזרה הדדית

  • בקשה | תוסף לתרגום גוגל בוורד
    יאנג בויי יאנג בוי

    @106
    שמעתי לאחרונה שגוגל חסמו את הAPI הפנימי של טרנסלייט מפני זיוף יוזראג'נט.
    אפשר להתחיל עם הוספת גוגל טרנסלייט לדרך האתרים של @pcinfogmach

    עזרה הדדית - וורד

  • להורדה | תוסף נקדן דיקטה - ניקוד אוטומטי לוורד
    יאנג בויי יאנג בוי

    @יש-שדה
    מעולה, אבדוק.

    כלומר אין סיכוי שללא ידע בתכנות נגיע לכזו רמה עם AI

    לא מדוייק. הידע עזר לי בעיקר בעבודה עם הAPI. ובדיבוג פנימי מדוייק ("הפונקצייה X שכתבת לא נכונה" במקום "קורס לי") אבל לא חושב שזה חובה.
    זכור לי שהיו פה הרבה דיונים בפורום על זה. תנסה לחפש, ואדרבה, תנסה בעצמך לפתח ותשתף בתוצאות.

    עזרה הדדית - וורד

  • להורדה | תוסף נקדן דיקטה - ניקוד אוטומטי לוורד
    יאנג בויי יאנג בוי

    @יש-שדה כתב בלהורדה | תוסף נקדן דיקטה - ניקוד אוטומטי לוורד:

    קודם כל תודה ענקית.

    בכיף! שמח לשמוע.

    אני מבין שזאת התנדבות. על כן אשאל, ולא כל כך אצפה לתשובה

    לשאול תמיד אפשר...

    זה לא מנקד לי הכל בבת אחת. בדיקטה הוא בעצם רץ קודם ומנקד הכל.

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

    עשיתי עריכה ידנית למילה אחת. במילה הבאה הוא הביא לי מילה על מילה. כלומר שלא יכלו להבין מה כתוב שם.

    לא בדיוק הבנתי, אשמח לצילומי מסך.

    האם היה לך ידע מוקדם לפני שהתחלת להכין את התוסף הזה?

    היה לי ידע רב בAPI, סקרייפינג ופיתוח ווב (ריאקט וכו').
    לא היה לי לא בוורד, וכמעט שלא בC#.

    עזרה הדדית - וורד

  • שיתוף | SmartBlock PRO| תוסף לחסימת פרסומות מוחלטת באתרי חדשות כולל פרוג.
    יאנג בויי יאנג בוי

    גרסת סקריפט טמפרמונקי למעוניינים:

    // ==UserScript==
    // @name         SmartBlock PRO - Tampermonkey Edition
    // @namespace    http://tampermonkey.net/
    // @version      1.7.1
    // @description  חסימת פרסומות באתרי חדשות ישראלים עם ממשק שליטה מותאם לטמפרמונקי
    // @author       SmartBlock PRO (Ported)
    // @match        *://*.prog.co.il/*
    // @match        *://*.kore.co.il/*
    // @match        *://*.emess.co.il/*
    // @match        *://*.jdn.co.il/*
    // @match        *://*.93fm.co.il/*
    // @match        *://*.kcm.fm/*
    // @match        *://*.hm-news.co.il/*
    // @match        *://*.babli.co.il/*
    // @run-at       document-start
    // @grant        GM_getValue
    // @grant        GM_setValue
    // @grant        GM_registerMenuCommand
    // @grant        GM_addStyle
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        // ==========================================
        // זיהוי האתר הנוכחי והגדרות מפתח
        // ==========================================
        const currentHost = window.location.hostname || '';
        const BLOCK_RULES_API_URL = 'https://next-js-chrome-exten-30q4.bolt.host/api/block-rules';
    
        let siteKey = '';
        let siteName = '';
    
        if (currentHost.includes('prog.co.il'))       { siteKey = 'prog'; siteName = 'פרוג'; }
        else if (currentHost.includes('jdn.co.il'))   { siteKey = 'jdn'; siteName = 'JDN'; }
        else if (currentHost.includes('kore.co.il'))  { siteKey = 'kore'; siteName = 'כל רגע'; }
        else if (currentHost.includes('emess.co.il')) { siteKey = 'emess'; siteName = 'קול חי'; }
        else if (currentHost.includes('kcm.fm'))      { siteKey = 'kcm'; siteName = 'KCM'; }
        else if (currentHost.includes('hm-news'))     { siteKey = 'hm-news'; siteName = 'המחדש'; }
        else if (currentHost.includes('babli.co.il')) { siteKey = 'babli'; siteName = 'בבלי'; }
        else if (currentHost.includes('93fm.co.il'))  { siteKey = 'jdn'; siteName = '93FM'; } // fallback
    
        // ==========================================
        // מערכת הגדרות (מחליף את ה-Popup)
        // ==========================================
        const masterProtection = GM_getValue('master_protection', true);
        const siteProtection = siteKey ? GM_getValue(siteKey, true) : true;
    
        // רישום תפריטים לטמפרמונקי
        GM_registerMenuCommand(`הגנה כללית (Master): ${masterProtection ? 'פעילה 🟢' : 'כבויה 🔴'}`, () => {
            GM_setValue('master_protection', !masterProtection);
            location.reload();
        });
    
        if (siteKey) {
            GM_registerMenuCommand(`הגנה באתר זה (${siteName}): ${siteProtection ? 'פעילה 🟢' : 'כבויה 🔴'}`, () => {
                GM_setValue(siteKey, !siteProtection);
                location.reload();
            });
        }
    
        // עצירת הסקריפט אם ההגנה כבויה
        if (!masterProtection || !siteProtection) {
            return;
        }
    
        // ==========================================
        // המרת חוקי חסימת רשת (rules.json) ל-CSS
        // ==========================================
        const NETWORK_BLOCK_CSS = `
            iframe[src*="advertising.jdn.co.il"], img[src*="advertising.jdn.co.il"],
            iframe[src*="clicka1.co.il"], img[src*="clicka1.co.il"],
            iframe[src*="ultra.clicka1.co.il"], img[src*="ultra.clicka1.co.il"],
            iframe[src*="jobik.co.il"], img[src*="jobik.co.il"],
            iframe[src*="a.kikar.co.il"], img[src*="a.kikar.co.il"],
            iframe[src*="video_ad"], video[src*="video_ad"]
            { display: none !important; height: 0 !important; visibility: hidden !important; width: 0 !important; }
        `;
    
        // ==========================================
        // CSS מיידי מובנה (HARDCODED_CSS)
        // ==========================================
        const HARDCODED_CSS = {
            prog: `
                .samUnitWrapper, .samCodeUnit, .samItem, .samBannerUnit2, .samUnitContent,
                [data-xf-init="sam-unit"], [data-position*="post_below"],
                .prog-classifieds-banner-container, ins.adsbygoogle,
                iframe[src*="googleads"], iframe[src*="doubleclick"],
                div[data-widget-key*="ad_"] {
                    display: none !important; height: 0 !important; visibility: hidden !important;
                }
                article.message[data-author="פרוגבוט"],
                article.message:has(a[username="פרוגבוט"]) {
                    display: none !important; height: 0 !important;
                    pointer-events: none !important; margin: 0 !important; padding: 0 !important;
                }
            `,
            jdn: `
                [id^="div-gpt-ad"], .ad-slot, .jdn-ad, iframe[src*="ads"],
                .ad-manager-slot, .maavaron, div.banner[role="banner"],
                #v-0-0, #v-0-1-0, div[id^="v-0-"],
                aside iframe, aside div[id^="v-0-"],
                div[ads="true"], .videoadplayer,
                .ultracap, .ucapc, .uc1,
                div:has(> div > img[src*="clicka1.co.il"]),
                div:has(> div > a > img[src*="clicka1.co.il"]),
                div:has(> div > .ubtn),
                div:has(> div > iframe[src*="jobik.co.il"]),
                div[style*="max-width: 1200px"]:has(img[src*="clicka1"]),
                figure:has(a > video),
                .article-content-inside a > video,
                a:has(video[autoplay]),
                iframe[src*="advertising.jdn.co.il"] {
                    display: none !important;
                }
                .video-js.vjs-ad-playing .vjs-tech,
                .video-js.vjs-ad-loading .vjs-tech,
                .video-js.vjs-ad-playing .vjs-poster,
                .video-js.vjs-ad-loading .vjs-poster {
                    opacity: 0 !important;
                }
                .video-js.vjs-ad-playing .preroll-blocker,
                .video-js.vjs-ad-playing [class*="preroll"],
                .video-js.vjs-ad-playing [class*="skip"] {
                    opacity: 0 !important;
                    pointer-events: none !important;
                }
            `,
            babli: `
                iframe[src*="a.kikar.co.il"],
                iframe[src*="kikar.co.il"],
                div:has(> iframe[src*="kikar.co.il"]),
                div:has(> iframe[src*="a.kikar.co.il"]),
                [class*="kikar-ad"], [id*="kikar-ad"],
                .sidebar-ad, .top-ad, .bottom-ad
                { display: none !important; }
            `,
            'hm-news': `
                #top_banner_div, #top_banner_btn,
                div[class*="aid-"][class*="zid-"],
                [id^="_4q"], [id^="_d6q"],
                #NewsItem > div.Scroll > div.video > div > div > div > a:has(video),
                a[href*="track.hm-news.co.il"],
                img[src*="media.aso1.net"],
                iframe[src*="media.hm-news.co.il"] {
                    display: none !important; height: 0 !important; visibility: hidden !important;
                    pointer-events: none !important; margin: 0 !important; padding: 0 !important;
                }
            `
        };
    
        // הזרקת CSS מובנה ו-CSS שמבוסס על rules.json
        let cssGroupKey = siteKey;
        if (['kore', 'jdn', 'emess', 'kcm'].includes(siteKey)) cssGroupKey = 'jdn'; // קיבוץ אתרי JDN
    
        if (cssGroupKey && HARDCODED_CSS[cssGroupKey]) {
            GM_addStyle(NETWORK_BLOCK_CSS + "\n" + HARDCODED_CSS[cssGroupKey]);
        }
    
        // ==========================================
        // חוקי ענן (משיכה משרת מרוחק)
        // ==========================================
        function applyRemoteRules() {
            const ctrl = new AbortController();
            const tid = setTimeout(() => ctrl.abort(), 3000);
            fetch(BLOCK_RULES_API_URL, { headers: { Accept: 'application/json' }, signal: ctrl.signal })
                .then(res => { clearTimeout(tid); return res.ok ? res.json() : null; })
                .then(rules => {
                    if (!Array.isArray(rules)) return;
                    rules.filter(r => Array.isArray(r.domains) && r.domains.some(d => currentHost.includes(d)))
                        .forEach(rule => {
                            if (!rule.site_key || !rule.css_selectors) return;
                            // בטמפרמונקי אנחנו כבר יודעים שההגנה דולקת (אחרת חזרנו מוקדם)
                            if (document.getElementById(`sb-dyn-${rule.site_key}`)) return;
                            GM_addStyle(rule.css_selectors);
                        });
                })
                .catch(() => {});
        }
        setTimeout(applyRemoteRules, 2000);
    
        // ==========================================
        // לוגיקת JS לפי אתרים (MutationObservers)
        // ==========================================
    
        // ---- PROG ----
        if (siteKey === 'prog') {
            const obs = new MutationObserver((mutations) => {
                for (const { addedNodes } of mutations) {
                    for (const node of addedNodes) {
                        if (node.nodeType !== 1) continue;
                        try {
                            if (node.classList?.contains('overlay') && node.querySelector('.samItem')) { node.remove(); continue; }
                            if (node.tagName === 'ARTICLE' && node.innerText?.includes('פרוגבוט')) { node.remove(); continue; }
                            node.querySelectorAll?.('article.message[data-author="פרוגבוט"]').forEach(b => b.remove());
                        } catch (_) {}
                    }
                }
            });
            document.addEventListener("DOMContentLoaded", () => {
                obs.observe(document.documentElement, { childList: true, subtree: true });
            });
        }
    
        // ---- BABLI ----
        else if (siteKey === 'babli') {
            const AD_SELECTOR = 'iframe[src*="kikar.co.il"], iframe[src*="a.kikar.co.il"]';
    
            function removeBabliAd(iframe) {
                try {
                    let parent = iframe.parentElement;
                    while (parent && parent !== document.body) {
                        const children = Array.from(parent.children).filter(c => c.offsetHeight > 0 || c.offsetWidth > 0);
                        if (children.length === 1 && children[0] === iframe) {
                            parent.remove();
                            return;
                        }
                        break;
                    }
                    iframe.remove();
                } catch (_) {}
            }
    
            const babliObs = new MutationObserver((mutations) => {
                for (const { addedNodes } of mutations) {
                    for (const node of addedNodes) {
                        if (node.nodeType !== 1) continue;
                        try {
                            if (node.matches?.('iframe') && node.src?.includes('kikar.co.il')) {
                                removeBabliAd(node); continue;
                            }
                            node.querySelectorAll?.(AD_SELECTOR).forEach(removeBabliAd);
                        } catch (_) {}
                    }
                }
            });
    
            document.addEventListener("DOMContentLoaded", () => {
                babliObs.observe(document.documentElement, { childList: true, subtree: true });
                const cleanBabli = () => { try { document.querySelectorAll(AD_SELECTOR).forEach(removeBabliAd); } catch (_) {} };
                setTimeout(cleanBabli, 400);
                setTimeout(cleanBabli, 1200);
                window.addEventListener('popstate', () => setTimeout(cleanBabli, 250));
            });
        }
    
        // ---- JDN / KORE / EMESS / 93FM / KCM ----
        else if (['kore', 'jdn', 'emess', 'kcm'].includes(siteKey)) {
            setInterval(() => {
                try {
                    // VideoJS preroll detection
                    document.querySelectorAll('.video-js').forEach(player => {
                        try {
                            const isAd = player.classList.contains('vjs-ad-playing') || player.classList.contains('vjs-ad-loading');
                            const video = player.querySelector('video');
    
                            if (!isAd) {
                                delete player.dataset.adSrc;
                                if (video && video.playbackRate > 4) video.playbackRate = 1;
                                return;
                            }
    
                            if (!video) return;
                            if (!video.muted) video.muted = true;
    
                            if (!player.dataset.adSrc && video.src) {
                                player.dataset.adSrc = video.src;
                            }
    
                            if (player.dataset.adSrc && video.src && video.src !== player.dataset.adSrc) return;
    
                            if (video.duration && isFinite(video.duration) && video.duration > 0) video.currentTime = video.duration;
                            if (video.playbackRate < 16) video.playbackRate = 16;
    
                            const skipBtn = player.querySelector('[class*="skip" i], [class*="Skip"]');
                            if (skipBtn) { try { skipBtn.click(); } catch (_) {} }
                        } catch (_) {}
                    });
    
                    // Flowplayer detection
                    document.querySelectorAll('.flowplayer').forEach(fpContainer => {
                        try {
                            if (fpContainer.classList.contains('is-cva') ||
                                fpContainer.querySelector('.fv-cva-skip') ||
                                (fpContainer.querySelector('video') && fpContainer.querySelector('video').src && fpContainer.querySelector('video').src.includes('video_ad'))) {
    
                                const nextVideoBtn = fpContainer.parentElement ? fpContainer.parentElement.querySelector('.fp-playlist-external a:nth-child(2)') : null;
                                if (nextVideoBtn && !nextVideoBtn.classList.contains('is-active')) {
                                    nextVideoBtn.click();
                                } else {
                                    const v = fpContainer.querySelector('video');
                                    if (v) { v.muted = true; if (v.duration) v.currentTime = v.duration; }
                                }
                            }
                        } catch (_) {}
                    });
                } catch (_) {}
            }, 50);
    
            const msObs = new MutationObserver((mutations) => {
                for (const { addedNodes } of mutations) {
                    for (const node of addedNodes) {
                        if (node.nodeType !== 1) continue;
                        try {
                            if (node.className && typeof node.className === 'string' && node.className.toLowerCase().includes('skip')) {
                                try { setTimeout(() => { if (node.offsetParent !== null) node.click(); }, 100); } catch (_) {}
                            }
    
                            const adVideos = node.querySelectorAll ? node.querySelectorAll('.videoadplayer, div[ads="true"] video') : [];
                            adVideos.forEach(adVideo => {
                                try {
                                    adVideo.muted = true;
                                    adVideo.style.display = 'none';
                                    adVideo.dispatchEvent(new Event('ended', { bubbles: true }));
                                    const skipBtn = document.querySelector('.skip-button');
                                    if (skipBtn) skipBtn.click();
                                } catch (_) {}
                            });
    
                            node.querySelectorAll?.('iframe[src*="advertising.jdn.co.il"], iframe[src*="clicka1.co.il"], div[id^="div-gpt-ad"], .ultracap, .ucapc, .uc1').forEach(el => { try { el.remove(); } catch (_) {} });
                        } catch (_) {}
                    }
                }
            });
            document.addEventListener("DOMContentLoaded", () => {
                msObs.observe(document.documentElement, { childList: true, subtree: true });
            });
        }
    
        // ---- HM-NEWS ----
        else if (siteKey === 'hm-news') {
            const hmObs = new MutationObserver(() => {
                try {
                    document.querySelectorAll('.video a video, a[href*="track.hm-news.co.il"] video').forEach(vid => {
                        try {
                            vid.muted = true;
                            vid.style.display = 'none';
                            if (vid.parentElement) vid.parentElement.style.display = 'none';
                        } catch (_) {}
                    });
                } catch (_) {}
            });
            document.addEventListener("DOMContentLoaded", () => {
                hmObs.observe(document.documentElement, { childList: true, subtree: true });
            });
        }
    
    })();
    

    בהצלחה, ותודה ל @פראירי על העבודה החשובה.

    כללי - עזרה הדדית

  • שיתוף | SmartBlock PRO| תוסף לחסימת פרסומות מוחלטת באתרי חדשות כולל פרוג.
    יאנג בויי יאנג בוי

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

    כללי - עזרה הדדית

  • להורדה | תוסף נקדן דיקטה - ניקוד אוטומטי לוורד
    יאנג בויי יאנג בוי

    @מניין @106
    עד שאעלה על הבעיה למה המתקין של INNO לא מצליח לארוז את זה, קחו בנתיים מכאן.
    יש לחלץ ולהפעיל את קובץ הSETUP.

    עזרה הדדית - וורד

  • להורדה | תוסף נקדן דיקטה - ניקוד אוטומטי לוורד
    יאנג בויי יאנג בוי

    @מניין
    סגרת את וורד ופתחת לגמרי מחדש?
    איזו גרסה של וורד?
    פתח אפשרויות > תוכניות עזר וצלם מסך.

    יש פה מישהו שזה כן עובד לו? צריך לדעת אם זאת בעיה רוחבית או נקודתית.

    עזרה הדדית - וורד

  • להורדה | תוסף נקדן דיקטה - ניקוד אוטומטי לוורד
    יאנג בויי יאנג בוי

    @106
    רעיון.
    אוסיף בהמשך בל"נ.

    עזרה הדדית - וורד

  • להורדה | תוסף נקדן דיקטה - ניקוד אוטומטי לוורד
    יאנג בויי יאנג בוי

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

    בהצלחה לכולם.

    עזרה הדדית - וורד

  • להורדה | תוסף נקדן דיקטה - ניקוד אוטומטי לוורד
    יאנג בויי יאנג בוי

    הצהרה:

    הצהרה משפטית / הבהרה:
    פרויקט זה פותח למטרות לימודיות, מחקריות ולא-מסחריות בלבד. מטרתו היא הדגמה טכנולוגית ולמידה אישית של פיתוח תוספים לסביבת Office ושילוב ממשקי פיתוח (API).
    אין בפרויקט זה כל כוונה להפר זכויות יוצרים, קניין רוחני או תנאי שימוש של צד שלישי כלשהו, לרבות עמותת "דיקטה". כל הזכויות על אלגוריתם הניקוד, ממשק ה-API והשירותים המקוריים שייכות באופן בלעדי לבעליהן החוקיים. השימוש בתוסף זה הינו באחריות המשתמש בלבד.

    Legal Disclaimer:
    This project was created strictly for educational, research, and non-commercial purposes. Its sole intention is personal learning and the technological demonstration of developing Office Add-ins and API integration.
    There is no intention whatsoever to infringe upon any copyrights, intellectual property, or terms of service of any third party, including "Dicta". All rights to the underlying punctuation algorithms, APIs, and original services belong exclusively to their respective, rightful owners. The use of this add-in is at the user's own risk.

    בעזרתו יתברך עלה בי רעיון, ובזכות הAI (אכשר דרא) הוא פותח די מהר.
    השימוש בתוסף פשוט מאוד ולא נראה לי צריך מדריך.
    קחו בכל זאת GIF קטן להמחשה:
    word_masked_fixed.gif
    word_masked_fixed.webm

    התוסף משתמש עם הAPI הפנימי של דיקטה - מהאתרים nakdanlive.dicta.org.il ו nakdanpro.dicta.org.il.


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


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

    אז מחקתי את הנושא ורתמתי שוב את הAI לעניין, וכתבנו מחדש את כל התוסף בC#. אז זה אמנם נראה משמעותית פחות יפה, כי אני לא יודע לעצב בC# (בניגוד ל'כלי קודש' של @pcinfogmach שכתוב בC# אבל מעוצב מדהים) אבל הוא עובד, וזה מה שחשוב, לא?
    בכל מקרה זה נמצא בגיטהאב ואתם יותר ממוזמנים לערוך ולשפר.

    מי שרוצה בכל זאת את הגירסה הישנה (לדעתי היא נוחה יותר לשימוש מלבד העניין שצריך שלוש קליקים כדי להפעיל, וזה לא בסרגל הכלים בברירת המחדל), הנה כמה הוראות - בספויילר.

    את הגרסה הישנה מורידים בקישור הקבוע מהגיטהאב.
    המתקין דורש רשת, וההתקנה צריכה להתבצע על וורד סגור לגמרי.


    לאחר ההתקנה פותחים את וורד, בכרטיסית הבית לוחצים על תוספות, ואז יופיע 'תוספות למפתחים' ובפנים נקדן דיקטה. לוחצים עליו פעם אחת בכל פתיחה של וורד והוא נוסף לכרטיסיית הבית.
    761cf4eb-bfb2-4f84-8f70-1aeabc23ab8b-image.png
    בפתיחה הראשונה בכל חלון של וורד יקפוץ פופאפ של בדיקת באגים, יש ללחוץ 'ביטול' פעם אחת, ובעז"ה הוא לא יופיע שוב בחלון זה.
    9ac47255-4f34-4d82-acf9-532f34b68d44-image.png


    זה הגיטהאב של הגרסה הישנה.


    @pcinfogmach זה בהשראתך לגמרי. גם עצם הרעיון (עלה לי תוכ"ד שימוש בנקדן של דיקטה ב'דרך האתרים') וגם צורת הפיתוח והתוסף.
    זו גם הזדמנות לומר לך שה'כלי קודש' פשוט וואו! שימושי מאוד, מעוצב להפליא (עכשיו אני כבר יודע עד כמה זה לא מובן מאליו) ועם כל הדברים הנצרכים - בלי לצאת מהוורד. ממליץ לכולם!
    מה דעתך?

    עזרה הדדית - וורד

  • בירור | מהירות שרת שמתקשר עם ימות המשיח
    יאנג בויי יאנג בוי

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

    בהצלחה.

    עזרה הדדית - מחשבים וטכנולוגיה

  • בירור | מהירות שרת שמתקשר עם ימות המשיח
    יאנג בויי יאנג בוי

    @מענין-לשמוע כתב בבירור | מהירות שרת שמתקשר עם ימות המשיח:

    צריך לחשוב איך להעיר אותו יותר מוקדם...

    אפשר להשתמש עם שירות כמו cron-job.org שישלח וובהוק לworker כל דקה.
    כך הוא ישאר ער.

    עזרה הדדית - מחשבים וטכנולוגיה

  • בירור | מהירות שרת שמתקשר עם ימות המשיח
    יאנג בויי יאנג בוי

    @מענין-לשמוע
    זה בCloudflare Worker? הוא סוג של 'נרדם' ואז מתעורר כשיש קריאה למשך כמה דקות, אבל הגיוני שהקריאה הראשונה תיקח יותר זמן. ככה זה בשירותים חינמיים...

    עזרה הדדית - מחשבים וטכנולוגיה

  • בירור | מהירות שרת שמתקשר עם ימות המשיח
    יאנג בויי יאנג בוי

    @מענין-לשמוע
    בכיף.
    הבעיה במהירות לא הייתה בשרת, אלא בקריאות המיותרות לימות המשיח.
    ברגע שהורדנו אותם זה הסתדר.

    בהצלחה!

    עזרה הדדית - מחשבים וטכנולוגיה

  • בירור | מהירות שרת שמתקשר עם ימות המשיח
    יאנג בויי יאנג בוי

    @מענין-לשמוע
    ודאי!
    אתה קובע את מבנה הנתיב להעברה בשרת, ואז מחזיר למשתמש פקודה להעברתו לנתיב X.
    ביקשתי מהAI לעשות לך לפי המבנה של הקוד הקודם, תוכל להחליף את הקוד שם ולוודא שזה אכן עושה את הפעולה הנכונה.

    function extractPath(what) {
        if (!what) return '';
        
        // ניקוי ראשוני של המבנה
        let clean = what.replace(/^ivr\d+:\/?/, '').replace(/\.wav$/, '');
        let parts = clean.split('/').filter(p => p !== '');
    
        // אם יש לפחות 2 איברים, נסיר את האיבר שנמצא במקום השני (index 1)
        if (parts.length >= 2) {
            parts.splice(1, 1);
        }
    
        return parts.join('/');
    }
    
    export default {
        async fetch(request) {
            const url = new URL(request.url);
            const what = url.searchParams.get('what');
    
            // בדיקה שהפרמטר what קיים
            if (!what) {
                return new Response('Error: Missing "what" parameter', { 
                    status: 400,
                    headers: { 'Content-Type': 'text/plain' }
                });
            }
    
            const path = extractPath(what);
    
            // החזרת התשובה ב-Plain Text עם סטטוס 200
            return new Response(`go_to_folder=/${path}`, { 
                status: 200, 
                headers: { 'Content-Type': 'text/plain; charset=utf-8' } 
            });
        }
    };
    

    אני מניח שהשלוחה קיימת לפנ"כ, בכל מקרה לא מצאתי לזה התייחסות בקוד שלך.

    עזרה הדדית - מחשבים וטכנולוגיה

  • בירור | מהירות שרת שמתקשר עם ימות המשיח
    יאנג בויי יאנג בוי

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

    עזרה הדדית - מחשבים וטכנולוגיה

  • בירור | מהירות שרת שמתקשר עם ימות המשיח
    יאנג בויי יאנג בוי

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

    תרצה לפרט קצת יותר מה בדיוק מתבצע?

    עזרה הדדית - מחשבים וטכנולוגיה

  • בקשת מידע | איך עושים בהודעת ווצאפ 'להמשך קריאה'
    יאנג בויי יאנג בוי

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

    עזרה הדדית - מחשבים וטכנולוגיה
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר