Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

IRC

დაუკავშირეთ PRX Internet Relay Chat (IRC) სერვერებს TLS-ით არხების, პირადი შეტყობინებებისა და მრავალი ავთენტიფიკაციის მეთოდის მხარდაჭერით.

წინაპირობები

  • IRC სერვერი დასაკავშირებლად (მაგ., Libera.Chat, OFTC ან კერძო სერვერი)
  • ბოტის ნიკი
  • TLS-ჩართული IRC სერვერი (6697 პორტი სტანდარტია)

სწრაფი დაყენება

1. სერვერის არჩევა და ნიკის რეგისტრაცია (არასავალდებულო)

საჯარო ქსელებისთვის, როგორიცაა Libera.Chat, შეიძლება გსურდეთ ბოტის ნიკის NickServ-ით რეგისტრაცია:

/msg NickServ REGISTER <password> <email>

2. კონფიგურაცია

toml
[channels_config.irc]
server = "irc.libera.chat"
port = 6697
nickname = "prx-bot"
channels = ["#my-channel"]
allowed_users = ["mynick", "*"]

NickServ ავთენტიფიკაციით:

toml
[channels_config.irc]
server = "irc.libera.chat"
port = 6697
nickname = "prx-bot"
channels = ["#my-channel", "#another-channel"]
allowed_users = ["*"]
nickserv_password = "your-nickserv-password"

3. შემოწმება

bash
prx channel doctor irc

კონფიგურაციის მითითება

ველიტიპინაგულისხმევიაღწერა
serverStringსავალდებულოIRC სერვერის ჰოსტსახელი (მაგ., "irc.libera.chat")
portu166697IRC სერვერის პორტი (6697 TLS-ისთვის)
nicknameStringსავალდებულობოტის ნიკი IRC ქსელში
usernameStringnicknameIRC მომხმარებლის სახელი (ნაგულისხმევი ნიკია, თუ მითითებული არ არის)
channels[String][]IRC არხები დაკავშირებისას შესაერთებლად (მაგ., ["#channel1", "#channel2"])
allowed_users[String][]ნებადართული ნიკები (რეგისტრის მიუხედავად). ცარიელი = ყველას უარყოფა. "*" = ყველას დაშვება
server_passwordStringnullსერვერის პაროლი (ბაუნსერებისთვის, როგორიცაა ZNC)
nickserv_passwordStringnullNickServ IDENTIFY პაროლი ნიკის ავთენტიფიკაციისთვის
sasl_passwordStringnullSASL PLAIN პაროლი IRCv3 ავთენტიფიკაციისთვის
verify_tlsbooltrueსერვერის TLS სერტიფიკატის ვერიფიკაცია

ფუნქციები

  • TLS დაშიფვრა -- ყველა კავშირი TLS-ს იყენებს უსაფრთხოებისთვის
  • მრავალი ავთენტიფიკაციის მეთოდი -- სერვერის პაროლის, NickServ IDENTIFY-ისა და SASL PLAIN (IRCv3) მხარდაჭერა
  • მრავალარხიანი მხარდაჭერა -- ერთდროულად რამდენიმე არხში შეერთება და პასუხი
  • არხისა და პირადი შეტყობინებების მხარდაჭერა -- არხური PRIVMSG-ისა და პირადი შეტყობინებების დამუშავება
  • ტექსტური გამოტანა -- პასუხები ავტომატურად ადაპტირდება IRC-სთვის (markdown-ის, კოდის ღობეების გარეშე)
  • ჭკვიანი შეტყობინებების გაყოფა -- გრძელი შეტყობინებები იყოფა IRC-ის ხაზის სიგრძის ლიმიტების დაცვით
  • კავშირის შენარჩუნება -- პასუხობს სერვერის PING შეტყობინებებს და აღმოაჩენს მკვდარ კავშირებს (5-წუთიანი წაკითხვის ტაიმაუტი)
  • მონოტონური შეტყობინების ID-ები -- უზრუნველყოფს უნიკალურ შეტყობინების თანმიმდევრობას ბარსტული ტრაფიკის დროს

შეზღუდვები

  • IRC მხოლოდ ტექსტურია; markdown, HTML და მდიდარი ფორმატირება მხარდაჭერილი არ არის
  • შეტყობინებები IRC ხაზის სიგრძის ლიმიტებს ექვემდებარება (ტიპიურად 512 ბაიტი პროტოკოლის ოვერჰედის ჩათვლით)
  • ჩაშენებული მედიის ან ფაილის გაზიარების შესაძლებლობა არ არის
  • კავშირი შეიძლება გაწყდეს, თუ სერვერი PING-ზე პასუხს ტაიმაუტის ფარგლებში არ მიიღებს
  • ზოგიერთ IRC ქსელს აქვს დატბორვის საწინააღმდეგო ზომები, რომლებმაც შეიძლება ბოტი შეზღუდოს
  • ნიკის ცვლილებები და ქსელის გაყოფის შემდეგ ხელახალი დაკავშირება დამუშავებულია, მაგრამ შეიძლება ხანმოკლე შეფერხებები გამოიწვიოს

პრობლემების მოგვარება

IRC სერვერთან დაკავშირება ვერ ხერხდება

  • შეამოწმეთ server ჰოსტსახელი და port სწორია
  • დარწმუნდით, რომ 6697 პორტი (TLS) firewall-ით დაბლოკილი არ არის
  • თვითხელმოწერილი სერტიფიკატის გამოყენებისას მიუთითეთ verify_tls = false

ბოტი არხებს უერთდება, მაგრამ არ პასუხობს

  • შეამოწმეთ გამგზავნის ნიკი allowed_users-შია (რეგისტრის მიუხედავად შეთანხმება)
  • ტესტირებისთვის მიუთითეთ allowed_users = ["*"] ყველა მომხმარებლის დასაშვებად
  • შეამოწმეთ ბოტს აქვს არხში საუბრის ნებართვა (არ არის გაჩუმებული ან აკრძალული)

NickServ ავთენტიფიკაცია ვერ ხერხდება

  • დარწმუნდით, რომ nickserv_password სწორია
  • ბოტის ნიკი NickServ-ით უნდა იყოს რეგისტრირებული, სანამ იდენტიფიკაცია შეძლებს
  • ზოგიერთი ქსელი NickServ-ის ნაცვლად SASL ავთენტიფიკაციას მოითხოვს; ამ შემთხვევაში გამოიყენეთ sasl_password

Released under the Apache-2.0 License.