כיצד אוכל לשאוב מידע על כל וידאו מראש אם הוא פתוח בנטפרי או לא
-
זה נמצא בתוך פוסטים בשרת במסד הנתונים. יש לך דרך להריץ עליהם את השאילתא?
-
@משה-בניית-אתרים אני חושב שיש כאן סוג של שיח חרשים.
אתה צריך להריץ על כל אחד מהכתובות של הסרטונים, בקשה (לדוגמא fetch) ואז פשוט - אם הסרטון פתוח תקבל סטטוס 200, אם סגור תקבל 418. כל מה שחסום על ידי נטפרי מתקבלת שגיאה בקונסול עם המספר 418 (והתיאור blocked by netfree).
הכי פשוט לך לקבל (מהמסד נתונים, איך שאתה אמור לדעת להוציא) את כל הכתובות של סרטוני יוטיוב שנמצאים באתר, להכניס אותם למערך, ולבצע משהו כזה:var videos = ["כתובת 1", "כתובת 2", "וכו"] Promise.all(videos.map(u=>fetch(u))).then(responses => responses.forEach( response => console.log(`${response.url}: ${response.status}`) ));
כדי שזה יעבוד חלק תצטרך (אני משער שכבר יש לך) להכניס CORS (נגיד עם תוסף כגון זה בפיירפוקס).
תוכל לסנן כמובן, שרק אלו שמגיבים בסטטוס 418 יופיעו וכן הלאה. -
@chv
אני גם מתעניין בנושא וכמו שהצעתי כאן
ניסיתי לכתוב לזה סימנייה אך קיבלתי על הכל סטטוס 200 , גם מה שחסום(()=>{ let links = document.querySelectorAll('a'); for (const link of links) { fetch(link.href) .then((response)=>{return response.status}) .then((thestatus)=>{console.log(`הסטטוס הוא ${thestatus}`)}) } })()
-
@ב-ל יש לך בעיה בסיסית בקוד, הוא לא בנוי כמערך (או לפחות לא בצורה שאפשר להתנהל איתו בfetch וresponse) כמו כן לא הבנתי מאיפה מגיע thestatus.
תעשה קוד כזה - בערך - זה אמור לעבוד:
var array = []; var links = document.getElementsByTagName("a"); for(var i=0; i<links.length; i++) { array.push(links[i].href); } Promise.all(array.map(u=>fetch(u))).then(responses => responses.forEach( response => console.log(`${response.url}: ${response.status}`) ))
כמו שכתבתי למעלה - מכאן אתה כבר יכול לסנן את כל התשובות 418 (נגיד במקום console.log וכו', אתה כותב -
if (response.status == "418") { // התראה או יצירת רשימה של הלינקים הבעייתים וכו }))
זה לדוגמא)
צריך לדעת איך להחריג את הפרומיס משגיאות צדדיות - כגון חסימות של חוסמי פרסומות או הגנות מעקב וכו', שיצוד רק את הבקשות שקיבלו תשובות עם סטטוס. (זה חובה להשתמש כאן בפרומיס, כי יש המון תוצאות וצריך אותן במרוכז)
@yzahn אולי יש לך משהו לתרום בנידון. -
@chv אמר בכיצד אוכל לשאוב מידע על כל וידאו מראש אם הוא פתוח בנטפרי או לא:
@ב-ל יש לך בעיה בסיסית בקוד, הוא לא בנוי כמערך (או לפחות לא בצורה שאפשר להתנהל איתו בfetch וresponse) כמו כן לא הבנתי מאיפה מגיע thestatus.
זה לא פורום תכנות, אז לא אאריך אבל הקוד שלו בסדר גמור.
יש בעיה להריץ את הבדיקה בדפדפן כי יש בעיית CORS.
בתוסף לא יהיה הבעיה הזאת. -
@yzahn אמר בכיצד אוכל לשאוב מידע על כל וידאו מראש אם הוא פתוח בנטפרי או לא:
יש בעיה להריץ את הבדיקה בדפדפן כי יש בעיית CORS.
אז למה הוא מביא על הכל סטטוס 200 ?
-
@ב-ל על איזה דף הרצת את הקוד? ייתכן שהקישורים שלהם לא היה בעיית CORS היו באמת פתוחים
-
@yzahn
נכון. התקנתי תוסף שמונע בעיית CORS וזה אכן עובד -
@ב-ל אמר בכיצד אוכל לשאוב מידע על כל וידאו מראש אם הוא פתוח בנטפרי או לא:
נכון. התקנתי תוסף שמונע בעיית CORS וזה אכן עובד
מה התוסף?
-
@משה-בניית-אתרים
זה למשל
https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf/related
ויש עוד הרבה, תחפש בחנות של גוגל