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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
צדיק תמיםצ

צדיק תמים

@צדיק תמים
אודות
פוסטים
1.5k
נושאים
132
קבוצות
0
עוקבים
3
עוקב אחרי
1

פוסטים

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

  • עזרה - שרשור פרומיסים מותנה וביצוע פעולה רק בסיום כולם (JS)
    צדיק תמיםצ צדיק תמים

    המטרה - לקבל מערך של מזהי סרטונים בערוץ מסוים ביוטיוב (לפי מזהה ערוץ) דרך הAPI של גוגל.
    גוגל מאפשרת לקבל בכל פעם עד 50 תוצאות.
    אם יש יותר - הAPI מחזיר ערך nextPageToken, שאותו מעבירים בפרמטר pageToken בשאילתה החדשה, וכן הלאה עד שלא חוזר nextPageToken ואז זה אומר שאין עוד תוצאות.
    בעצם מה שניסיתי לממש זה את המדריך הזה:
    http://truelogic.org/wordpress/2017/06/20/7-youtube-data-api-paging-maxresults


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

    let arryYT = []
    async function lulaa(ChannelID) {
      console.log("run")
      let a1 = await fetch(`https://www.googleapis.com/youtube/v3/search?key=` + TokenAPI() + `&channelId=${ChannelID}&part=id&order=date&maxResults=50`)
      a1 = await a1.json()
     console.log(Math.ceil(a1.pageInfo.totalResults / 50))
      a1.items.forEach((parit, index) => {
        if (parit.id.kind === "youtube#video") {
          arryYT.push(parit.id.videoId)
        }
      })
      if (a1.nextPageToken) {
        getNextPage(a1.nextPageToken)
      }
        if (a1.nextPageToken) {
          getNextPage(a1.nextPageToken)
        }
        async function getNextPage(nextPageToken) {
          console.log("run")
          let a1 = await fetch(`https://www.googleapis.com/youtube/v3/search?key=` + TokenAPI() + `&channelId=${ChannelID}&part=id&order=date&maxResults=50&pageToken=${nextPageToken}`)
          a1 = await a1.json()
          a1.items.forEach((parit, index) => {
            if (parit.id.kind === "youtube#video") {
              arryYT.push(parit.id.videoId)
            }
          })
        }
        if (a1.nextPageToken) {
          getNextPage(a1.nextPageToken)
        }
    }
    
    function TokenAPI() {
      return "AIzaSyBUtCAp82VCsH5z3XmTMy1KMnLQ1g3Cqm0"
    }
    

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

    lulaa("UCzlw5vTVVMPwBKElMt3gYQw")
    

    שיש 399 פריטים שבשביל לקבל אותם צריך 8 דפי מידע (בשורה 6 מודפס לקונסול המידע הזה), אבל בפועל הקונסולוגים שהכנסתי בשורות 19 ו3 מראים שזה רץ רק 4 פעמים, והתקבל מערך עם 195 פריטים בלבד (המספר בניקוי הפלייליסטים (שורה 8/23), ועדיין...).
    גם כשחיכיתי עוד קצת, והדפסתי את המערך, לא היו בו את כל תוצאות נוספות...
    הפונקציה TokenAPI במקור מחזירה מפתח API לפי מה שהמשתמש הגדיר (נשמר בlocalStroage) וכו', בשביל הדוגמה עשיתי שהיא תחזיר מפתח קבוע...
    אשמח לעזרה.

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

  • תיעוד קוד בJavaScript
    צדיק תמיםצ צדיק תמים

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


  • עזרה - ביטול פיצול שורות מציק בPrettier
    צדיק תמיםצ צדיק תמים

    @dovid אכן עזר, תודה.
    יש לך אולי איזה טריק שגם ההערות לא יזוזו לתוך הפונקציה?


  • תיעוד קוד בJavaScript
    צדיק תמיםצ צדיק תמים

    @www ממה שהבנתי מהקישור שנתת זה בעצם כלי לייצר תיעוד באופן אוטומטי..
    אני צריך סה"כ משהו פנימי שיופיע לי כשאני עורך את הקוד בVSC


  • עזרה - ביטול פיצול שורות מציק בPrettier
    צדיק תמיםצ צדיק תמים

    @www אמר בעזרה - ביטול פיצול שורות מציק בPrettier:

    יש מוסכמה מסויימת על אורך השורות, אא"כ יש לך עכבר אנכי...

    העניין הוא שזה מחלק את זה עוד הרבה קודם...
    לדוגמה כזו שורה
    783dc5cb-8f2d-42a9-9b49-b6b9cead2819-image.png
    וגם זה לא ממש עוזר, שבמקום שורה כזו:

    alert("aaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa")
    

    יהיה כזה:

    alert(
      "aaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa"
    )
    

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


  • API לתרגום לעברית
    צדיק תמיםצ צדיק תמים

    @אנא פעם הגעתי לAPI הזה: https://libretranslate.com/docs וחשבתי להשתמש בזה אז שלחתי לנטפרי, למעשה לא יצא לי להשתמש/לחקור את זה, תוכל לנסות
    לפי מה שזכור לי הגעתי לזה מרשימה כלשהיא של API חינמיים


  • עזרה - ביטול פיצול שורות מציק בPrettier
    צדיק תמיםצ צדיק תמים

    @יוסף-בן-שמעון אמר בעזרה - ביטול פיצול שורות מציק בPrettier:

    חפש בהגדרות של התוסף את ההגדרה proseWrap, ותנסה להגדיר את זה never

    הגדרתי:
    90050f89-e811-4091-a34b-10cf97097d24-image.png
    וסגרתי ופתחתי שוב את הVSC, ולא עזר.


  • עזרה - ביטול פיצול שורות מציק בPrettier
    צדיק תמיםצ צדיק תמים

    אני משתמש בתוכנת VSC כדי לכתוב קוד, בעיקר JS.
    לאחרונה גיליתי את הפורמטר Prettier ואני נהנה ממנו מאוד, חוץ מ2 דברים...
    הראשון:
    הוא מפצל שורות בלי קשר, לדוגמה שורה כזו:

      let idC = url.match(/^(?:(http|https):\/\/[a-zA-Z-]*\.{0,1}[a-zA-Z-]{3,}\.[a-z]{2,})\/channel\/([a-zA-Z0-9_]{3,})$/)
    

    נהפכת ל3 שורות:

      let idC = url.match(
        /^(?:(http|https):\/\/[a-zA-Z-]*\.{0,1}[a-zA-Z-]{3,}\.[a-z]{2,})\/channel\/([a-zA-Z0-9_]{3,})$/
      )
    

    כנ"ל בalert עם תוכן קצת ארוך, וכן הלאה... וזה ממש מבלבל.
    בנוסף, הערות שנכתבות בשורה של הגדרת הפונקציה - כזה:

    function Channel_ID_Extract(url) { //הערה על הפונקציה
    }
    

    יורדות לתוך הפונקציה:

    function Channel_ID_Extract(url) {
      //הערה על הפונקציה
    }
    

    וזה מפריע, כיוון שאני אוהב לכווץ את הפונקציות ואז רואים את ההסבר שאני כותב לעצמי על תפקיד הפונקציה...
    דוגמה:
    1c4f0c5a-3799-45b7-8ecd-846123fbb865-image.png
    ואחרי הפורמטר שההסבר ירד שורה אל תוך הפונקציה - לא רואים...:
    1b4af91d-bb39-4963-8293-2000077db804-image.png
    ניסיתי לבדוק בהגדרות של ההרחבה, וכן לחפש בגוגל על ההגדרות שלה, אבל לא מצאתי משהו רלוונטי לבעיות הנ"ל.
    אשמח לעזרה...


  • ממיר אוטומטי של קוד jQuery לJS Vanila
    צדיק תמיםצ צדיק תמים

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


  • חשיבת מפתחים לטווח רחוק..
    צדיק תמיםצ צדיק תמים

    @ארכיטקט לכן כתבתי שאפשר לחלוק, כדי שאף אחד לא ירגיש צורך להתנגד... 🙂


  • ממיר אוטומטי של קוד jQuery לJS Vanila
    צדיק תמיםצ צדיק תמים

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

        $(".textareaDemo").css({ "position": "absolute", "right": "-99999px" });
    

    הכלי הראשון שהבאתי פשוט משנה את צורת הסלקטור, וזהו... 😀

    document.getElementByClassName("textareaDemo").css({ "position": "absolute", "right": "-99999px" });
    

    והכלי הזה כן מנסה להתמודד עם זה באמצעות לולאה (שזה לפי מה שהבנתי הדרך לעשות כזה דבר בJS ונילה):

    Array.from(document.getElementsByClassName("textareaDemo")).forEach(e => e.style.{ position: absolute =  "right": "-99999px" })
    

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


  • ממיר אוטומטי של קוד jQuery לJS Vanila
    צדיק תמיםצ צדיק תמים

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


  • ממיר אוטומטי של קוד jQuery לJS Vanila
    צדיק תמיםצ צדיק תמים

    היום גיליתי כלי קטן אמנם, אך לדעתי חשוב מאוד...
    אתר להמרה אוטומטית של קוד JS שכתוב בספריית jQuery לקוד JS פשוט ("ונילה").
    שימושי למשל אם כותבים קוד לאתר שאין בו את הספריה, ורוצים להשתמש בכמה שורות קוד ספציפיות בשפה הזאת, למשל מתוך תשובה ב-stackoverflow...
    במקום לטעון את כל הספריה בשביל הכמה שורות האלו, או לשכתב ידנית את הקוד, פשוט מדביקים אותו באתר הזה ולוחצים על "convert"...
    אפשר גם לכתוב ישירות את הקוד בjQuery שיש לו תחביר יותר קצר ונוח, ובסיום להמיר אותו באתר הזה כדי שיתאים לכל אתר...
    מומלץ!
    https://www.workversatile.com/jquery-to-javascript-converter


  • עזרה בשרשור פרומיסים (fetch) / גם שימוש בjson שמתקבל מהכתובת וגם קבלת הכתובת עצמה
    צדיק תמיםצ צדיק תמים

    @dovid כעת אני צריך לעשות שרשור נוסף...
    כלומר אני רוצה מלבד הקריאה לכתובת שבקוד שהבאתי, להוסיף קריאה נוספת (לAPI של יוטיוב, לקבל מידע על הסרטון) ואז לשלוח את התשובות מ-2 הכתובות ביחד לתוך ה()jsonTest שמנתחת את מה שהיא מקבלת ושולחת את זה לפונקציה שמדפיסה בפועל.
    אני מעוניין שההדפסה תהיה ברצף, כלומר בשורה אחת יהיה את כתובת הסרטון, ואז את המידע שמגיע מהAPI.
    השאלה איך אני עושה את זה?
    לא הצלחתי להבין באיזה שלב אני צריך להוסיף את הfetch החדש.


  • שיתוף תיקיית דרייב אחת מתוך דרייב שלם
    צדיק תמיםצ צדיק תמים

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


  • פרסום מפתח API של גוגל - בעייתי?
    צדיק תמיםצ צדיק תמים

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


  • שאלה למתמצאים בתכנות בנטפרי
    צדיק תמיםצ צדיק תמים

    @בר-בי-רב אמר בשאלה למתמצאים בתכנות בנטפרי:

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

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


  • עזרה בשרשור פרומיסים (fetch) / גם שימוש בjson שמתקבל מהכתובת וגם קבלת הכתובת עצמה
    צדיק תמיםצ צדיק תמים

    @dovid אמר בעזרה בשרשור פרומיסים (fetch) / גם שימוש בjson שמתקבל מהכתובת וגם קבלת הכתובת עצמה:

    הקוד שהבאתי הראשון "לא שינית בו כלום" אבל כתבתי בדיוק מה שיניתי: "התוצאה שלה מוכנה רק בthen הבא." כלומר הconsole.log לא נמצא יחד עם הresponse.json() אלא בthen שאחריו.

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


  • שאלה למתמצאים בתכנות בנטפרי
    צדיק תמיםצ צדיק תמים

    @בר-בי-רב היה קצת מניעות 😉
    אבל הנה:
    https://github.com/ShlomoCode/Checking-the-status-of-YouTube-videos-by-NetFree-Filter#redme (אני מודיע מראש: החלק של העיצוב בסקריפט הזה על הפנים... 😞 )
    יש שם הוראות להתקנת הסקריפט באמצעות התוסף tampermonkey;
    לאחר ההתקנה יש להיכנס לכתובת שמצויינת שם, ייפתח חלון שבו תכניס את רשימת הסרטונים, ואז חלון נוסף שתבחר את התו שמפריד בין סרטון לסרטון (לדוגמה רווח, רווח ופסיק, פסיק בלבד, וכן הלאה), ואז הסקריפט ממיין את כל הסרטונים ל3 רשימות - פתוחים, חסומים, ולא נבדקו:
    2afdc6e3-6160-40d5-bc34-11cd30ac78c8-image.png
    בסיום (יותר נכון שניה קודם... לא היה לי כבר סבלנות לדייק את זה) יישמע צליל סיום, וכן יופיע בראש הדף כיתוב כמה כתובות עובדו. (כנ"ל, רציתי לעשות שיהיה כתוב שם ההתקדמות... אולי בהזדמנות)
    עובד כמובן רק על מחשב עם חיבור של נטפרי.


  • עזרה בשרשור פרומיסים (fetch) / גם שימוש בjson שמתקבל מהכתובת וגם קבלת הכתובת עצמה
    צדיק תמיםצ צדיק תמים

    @dovid קודם כל תודה על התשובה המהירה 🙂
    למה באמת response.json() לוקח זמן? במה זה שונה מכל ניתוח מקומי אחר, לדוגמה .split()?


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


    @dovid אמר בעזרה בשרשור פרומיסים (fetch) / גם שימוש בjson שמתקבל מהכתובת וגם קבלת הכתובת עצמה:

    אם כבר הייתי משפר את הקוד לככה:

    ברשותך, לא הבנתי כמה וכמה חלקים בקוד המשופר... כנראה כתיב מודרני שטרם זכיתי להכיר 🙂
    לדוגמה:

    response  => response.json()
    

    ו

    .then(json => jsonTest(json, tyUrl ) && [json, tyUrl ])
    

    וגם

    tyUrl => fetch(`/~netfree/test-url?u=${tyUrl}`
    

    @dovid אמר בעזרה בשרשור פרומיסים (fetch) / גם שימוש בjson שמתקבל מהכתובת וגם קבלת הכתובת עצמה:

    קוד יותר טוב אבל שמצריך שינוי בplayCompleted

    יש עניין בזה?
    playCompleted זה סה"כ פונקציה שמשמיעה צליל סיום, ומופעלת בסיום המערך...

  • 1 / 1
  • התחברות

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

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