נושא בדף שיחת משתמש:Matanya

בורה בורה (שיחהתרומות)

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

Matanya (שיחהתרומות)

הבוט בודק רק אם הקישור קיים ומחזיר 200, הוא לא בודק אם התוכן נגיש.

בורה בורה (שיחהתרומות)

הממ... אז יש לך רעיון יצירתי אחר?

IKhitron (שיחהתרומות)

לי יש. אם פותחים משהו שחושבים שהוא חופשי ומגיעים במקום זה לאתר login, יש לו כתובת שונה מהמצופה, משהו כולל את המילה login עצמה?

תומר א. (שיחהתרומות)

קוד ה-HTML של הדף מכיל את המחרוזת "tblBlockedPage" כאשר מדובר בתוכן לא נגיש.

IKhitron (שיחהתרומות)

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

תומר א. (שיחהתרומות)

תחת ההנחה הלא בלתי-סבירה שה-API של pywikibot השתנה מאז הפעם האחרונה שהשתמשתי בו לפני אי אלו שנים, אשאיר את המימוש למישהו אחר*. אם צריך עזרה עם האלגוריתמיקה - אשמח.

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

בורה בורה (שיחהתרומות)

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

IKhitron (שיחהתרומות)

בהחלט.

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

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

תומר א. (שיחהתרומות)

לא הבנתי יגאל, אתה לוקח על עצמך לכתוב את הבוט הרלוונטי?

הערה: שים לב שאני מדבר על קוד ה-HTML (מה שמקבלים כשלוחצים ctrl-u בפיירפוקס) ולא על ה-URL. לא הצלחתי למצוא שוני מובחן בכתובות ה-URL.

IKhitron (שיחהתרומות)

ברור שלא. זאת רק הצעה לשיפור.

אאוץ'. זה ממש לא טוב.

Matanya (שיחהתרומות)

אני אנסה לעשות משהו בנדון.

תומר א. (שיחהתרומות)

אז דברו איתי כשיהיה מי שמוכן לקחת על עצמו את המימוש (דווקא ניתוח ה-html הוא בעיני הבעיה הפשוטה ביותר).

תומר א. (שיחהתרומות)

מתניה, אתה עדיין עובד בפייתון?

Matanya (שיחהתרומות)

כן, זה לא נראה קשה מידי.

תומר א. (שיחהתרומות)

טוב. דבר איתי בצ'אט אם תצטרך עזרה.

תומר א. (שיחהתרומות)

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

בורה בורה (שיחהתרומות)

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

IKhitron (שיחהתרומות)

תן לי שתי דוגמאות, כדי שאוכל לבדוק את ההבדל.

בורה בורה (שיחהתרומות)
בורה בורה (שיחהתרומות)

הקישורים נעלמו לי. תוכל לראות אותם במצב עריכה

תומר א. (שיחהתרומות)

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

בורה בורה (שיחהתרומות)

בערך הדברת מזיקים בכלל נופלים על bad gateway. בערך רוברט לואיס סטיבנסון צריך מנוי, וגם גאוטמה בודהה. צריך עוד?

IKhitron (שיחהתרומות)

אני דווקא חושב שהבדל הוא בכתובת, בין Pre לבין Free.

תומר א. (שיחהתרומות)

אז ככה:

  1. השיטה שלי עובדת. הלוגיקה שלה עקבית עם זו שהצעתי עבור "כותר".
  2. נראה שגם השיטה של יגאל עובדת. השיטה שלו עדיפה היות ואין צורך להוריד את כל ה-HTML ומספיק להסתכל על ה-URL.
    1. אני חושד שאפשר ללמד את {{אנציקלופדיה ynet}} לזהות את ההבדלים בעצמה ללא צורך בבוט. לא יצא לי לעבוד עם lua, אבל נראה לי שמספיקה כאן מניפולציה בסיסית על מחרוזות.
  3. הבעיה בהדברת מזיקים נובעת לדעתי מכך שכולנו ניסינו לפתוח ערכים רבים בבת אחת. ללמדכם מה שווה האנציקלופדיה הזו.
  4. למה בעצם היינו צריכים להבדיל בין הערכים האלה? הרי בניגוד לכותר, אין תבנית שמסמנת אילו ערכי טמקא אינם פתוחים.
IKhitron (שיחהתרומות)

2.1 לא יעבוד. שמעת על redirection?

4. נראה לי שחובה להסיר אלו שלא פתוחים. לא בטוח.

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

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

תומר א. (שיחהתרומות)

לא סביר. מאיפה למי שהוסיף את הקישור היה הלינק הנכון?

בורה בורה (שיחהתרומות)

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

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

כי אולי בעבר, לפני שהם חשבו על לסגור ולו משהו, כולם היו פתוחים.

תומר א. (שיחהתרומות)

לא, תמיד היו ערכים פתוחים וערכים סגורים.

IKhitron (שיחהתרומות)

אז אולי מהרגע הראשון זה ככה. יש לך דוגמה לערך סגור שבו ה-redirection לא עובד?

תומר א. (שיחהתרומות)

לא חיפשתי ואני גם לא לגמרי מבין את השאלה.

IKhitron (שיחהתרומות)

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

תומר א. (שיחהתרומות)

אה, לזה אתה מתכוון. לא. ניסיתי את זה כבר קודם .

IKhitron (שיחהתרומות)

אפשר דוגמה שניסית? אני רוצה לשחק איתה.

תומר א. (שיחהתרומות)

[http://www.ynet.co.il/yaan/0,7340,L-17414-PreYaan,00.html] (אני מניח שהקישור יעלם, אתה יודע איך למצוא אותו.

IKhitron (שיחהתרומות)

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

IKhitron (שיחהתרומות)

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

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

לא מצאתי שם שום דבר חופשי, רק סגור

תומר א. (שיחהתרומות)

שים לב שהכתובת נראית כאילו היא חופשית, אבל בפועל היא מובילה לערך סגור.

IKhitron (שיחהתרומות)

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

תומר א. (שיחהתרומות)
IKhitron (שיחהתרומות)

אז זה כן עשה redirection לכולם בכל זאת?

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

אז גם זה היה פתוח? יש לך דוגמה של ערך סגור שמעולם לא היה פתוח?

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

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

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

אמרתי בין הערכים הסגורים.

תומר א. (שיחהתרומות)

אההה! אתה מחפש ערכים סגורים שאינם בהכרח מקושרים מוויקיפדיה. במקרה כזה יש סיכוי שלפחות אחד מהם לא היה פתוח. אבל מה זה משיג? מה ההבדל בין לנסות "לפרוץ" את הערכים האלה ללנסות לפרוץ ערכים לא חופשיים שמקושרים מוויקיפדיה?

IKhitron (שיחהתרומות)

אם יהיה לי ערך סגור שמעולם לא היה פתוח, ולא אכפת לי אם יש לו קישור מוויקיפדיה או לא, אנסה לשחק עם לואה.

תומר א. (שיחהתרומות)

ולמה אתה לא יכול לעשות את זה עם ערך שכן היה פעם פתוח?

IKhitron (שיחהתרומות)

כי אז תעשה redirection. ואני רוצה אחד נקי.

תומר א. (שיחהתרומות)

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

  1. מפלגת המרכז
  2. יורם קניוק

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

IKhitron (שיחהתרומות)

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

תומר א. (שיחהתרומות)

אז מה אתה כן מנסה לעשות?

תומר א. (שיחהתרומות)

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

Matanya (שיחהתרומות)

אם הוא מקבל 301 או 302, אז כן.

תומר א. (שיחהתרומות)

מצויין. זה סוגר לנו גם את {{אנציקלופדיה ynet}}. כשניגשים ללינק כמו שמופיע בערך נייר (מתחזה לפתוח אבל עושה redirect לסגור) מקבלים סטטוס 301. עכשיו רק צריך להחליט מה לעשות עם הקישור. ההצעה שלי היא שהבוט יחליף את הקישור הכאילו פתוח (freeyaan) בקישור סגור (preyaan) ואז ללמד את התבנית להבדיל בין השניים ולהציג טקסט בהתאם.

IKhitron, בורה בורה, Matanya מה דעתכם?


  • שכחתי כמה ויקיפדיה ממכרת.
בורה בורה (שיחהתרומות)

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

תומר א. (שיחהתרומות)

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

בורה בורה (שיחהתרומות)

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

תומר א. (שיחהתרומות)

קישורים לאנציקלופדיה ynet יכולים להופיע בשתי צורות, נקרא להן צורה פתוחה (freeyaan) וצורה סגורה (preyaan). קישור בצורה סגורה תמיד יוביל לערך סגור. קישור בצורה פתוחה יוביל לעיתים לערך פתוח ולעיתים לערך סגור. במונחי תבניות: לתבנית {{אנציקלופדיה ynet}} יש פרמטר אופציונלי שנקרא "קוד לכניסה חינם" - כאשר הוא אינו מופיע, הערך יהיה סגור. לפעמים הפרמטר מופיע והערך בכל זאת סגור.

בהנתן קישור מתוך ערך בוויקיפדיה, קיימות ארבע אפשרויות:

  1. הקישור הוא בצורה פתוחה, והערך שאליו הוא מוביל פתוח - זה מקרה שאין צורך לטפל בו.
  2. הקישור הוא בצורה סגורה, והערך שאליו הוא מוביל סגור - מקרה זה אינו דורש טיפול טכני (לדעתי צריך להסיר קישורים כאלה, אבל זה עניין לדיון אחר שאין לי מוטיבציה לקיים).
  3. הקישור הוא בצורה פתוחה, אבל הערך שאליו הוא מוביל סגור - את המקרה הזה אפשר לזהות. זיהוי: הבוט יקבל מהשרת סטטוס 301. הטיפול המוצע: הבוט יחליף את הקישור מהצורה הפתוחה, לקישור מתאים בצורה הסגורה. יגאל ילמד את תבנית {{אנציקלופדיה ynet}} להבדיל בין קישורים בצורה פתוחה לקישורים בצורה סגורה ולהציג טקסט בהתאם.
  4. הקישור הוא בצורה סגורה, אבל קיים קישור בצורה פתוחה שמאפשר לראות את הערך במלואו. למיטב הבנתי אין דרך טכנית להבדיל אפשרות 4 לאפשרות 2. קח למשל את הערך הפתוח אלברט אינשטיין והשווה אותו לערך הסגור אלברט אינשטיין. בגרסה הסגורה אין אינדיקציה לכך שקיימת גם גרסה פתוחה.
IKhitron (שיחהתרומות)

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

בורה בורה (שיחהתרומות)

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

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

תומר א. (שיחהתרומות)

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

משהו שחשבתי עליו עכשיו, אולי ל-Lua יש אפשרות לקבל סטטוסי HTML מאתרי אינטרנט אחרים. אני די בטוח שכשפת תכנות היא יכולה, אבל אני מניח שבוויקיפדיה משתמשים באיזושהי גרסה מנוונת שלה מטעמי יעילות ואבטחה. עברתי קצת על Extension:Scribunto/Lua reference manualולא מצאתי דרך, אבל זה נשמע כמו משהו שימושי לכל אתרי הוויקי שיחסוך מלא הרצות של בוטים.

IKhitron (שיחהתרומות)

אתה לא צריך את המנואל הזה. אתה צריך למצוא הרחבה מתאימה שתומכת בלואה.

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

אמרת בדיוק את מה שאני אמרתי, רק במילים אחרות

תומר א. (שיחהתרומות)

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

IKhitron (שיחהתרומות)

ו?

תגובה ל"תבנית:כותר / תבנית:כותר חופשי"