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კონფიგურაციის მითითება
| ველი | ტიპი | ნაგულისხმევი | აღწერა |
|---|---|---|---|
server | String | სავალდებულო | IRC სერვერის ჰოსტსახელი (მაგ., "irc.libera.chat") |
port | u16 | 6697 | IRC სერვერის პორტი (6697 TLS-ისთვის) |
nickname | String | სავალდებულო | ბოტის ნიკი IRC ქსელში |
username | String | nickname | IRC მომხმარებლის სახელი (ნაგულისხმევი ნიკია, თუ მითითებული არ არის) |
channels | [String] | [] | IRC არხები დაკავშირებისას შესაერთებლად (მაგ., ["#channel1", "#channel2"]) |
allowed_users | [String] | [] | ნებადართული ნიკები (რეგისტრის მიუხედავად). ცარიელი = ყველას უარყოფა. "*" = ყველას დაშვება |
server_password | String | null | სერვერის პაროლი (ბაუნსერებისთვის, როგორიცაა ZNC) |
nickserv_password | String | null | NickServ IDENTIFY პაროლი ნიკის ავთენტიფიკაციისთვის |
sasl_password | String | null | SASL PLAIN პაროლი IRCv3 ავთენტიფიკაციისთვის |
verify_tls | bool | true | სერვერის 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