דילוג לתוכן
Dialova

תיעוד IRC · ביניים

להבין ולתכנן בוט IRC

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

צוות Dialova · נבדק בתאריך

מחזור הפעולה של בוט #

  1. פתיחת חיבור TLS ובדיקת התעודה.
  2. משא ומתן CAP ולאחריו אימות החשבון, אם מדיניות הרשת דורשת זאת.
  3. הצהרת זהות IRC והמתנה לסיום הרישום לחיבור.
  4. הצטרפות לחדרים המורשים וטיפול בהודעות, בשגיאות ובאירועים.
  5. מענה ל־PING, הגבלת השליחה ותכנון חיבור מחדש עם השהיה מתארכת.
קטע מתוך חיבור שכבר נרשם ואושר
S: PING :jeton-123
C: PONG :jeton-123
S: :Alice!alice@cloak.example PRIVMSG #atelier :!bonjour
C: PRIVMSG #atelier :Bonjour Alice !

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

הפרדה בין הפרוטוקול, הכללים והפעולות #

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

לא להסתמך רק על הכינוי #

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

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

מניעת הצפה ולולאות #

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

אין לענות אוטומטית ל־NOTICE או להריץ בקשת משתמש ישנה בעת שחזור היסטוריה. עם echo-message, הפלט שלכם עשוי לחזור אליכם: יש להבחין בינו לבין בקשה נכנסת.

Bobot ב־Dialova #

Bobot מפעיל בין היתר משחקי חדר ב־Dialova. הוא נפרד מהמשחקים הגרפיים באתר ומחשבונות החברים. זו דוגמה ללקוח אוטומטי שמעשיר קהילה בלי לדרוש פרוטוקול שיחה קנייני.

מקורות ובדיקת המידע

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