ไคลเอนต์ IRC อย่างง่าย (Internet Relay Chat) ที่เขียนด้วย Python 2
ขอขอบคุณเป็นพิเศษสำหรับ Ilie Cebanu (https://github.com/NotQuiteMelvin) สำหรับเวอร์ชัน Python 3
หากต้องการเข้าร่วมช่องใด ๆ (บน Freenode) ด้วยชื่อผู้ใช้ที่เลือก เพียงเรียกใช้ irc_client.py และใส่ชื่อผู้ใช้ที่ต้องการเป็นอาร์กิวเมนต์แรก ตามด้วยชื่อช่อง (โดยมี # หรือไม่มี):
./irc_client.py myusername channeltojoin
หรือ
./irc_client.py myusername #channeltojoin // actually not working :)
ดูเหมือนว่าการส่งชื่อช่องโดยมี # สคริปต์ตัวแบ่งดังต่อไปนี้เนื่องจาก Python ถือว่า # เป็นจุดเริ่มต้นของความคิดเห็น
นี่คือลักษณะที่ปรากฏในขณะนี้ (คอนโซลซ้าย: irc_client.py, คอนโซลขวา: irssi):
ฉันได้เพิ่มเวอร์ชันที่คอมไพล์ลงในไฟล์ Python bytecode (พร้อมนามสกุล .pyc) การคอมไพล์ทำได้โดยคำสั่ง:
$ python -m compileall irc_client.py
การรับเวอร์ชันไบนารี่แทนซอร์สโค้ดอาจมีประโยชน์
ข้อความหลายบรรทัดไม่ทำงาน (เกี่ยวข้องกับการไม่มีการส่งคืนจากเซิร์ฟเวอร์เมื่อไม่มีผู้ใช้รายอื่นโพสต์ข้อความ)
บางครั้งเอาต์พุตก็ยุ่งกับข้อความเซิร์ฟเวอร์ (เช่น PING)
ขาด UX - สามารถส่งข้อความบรรทัดเดียวเท่านั้น :)
irc.freenode.net (เซิร์ฟเวอร์) และพอร์ต 6667 ฮาร์ดโค้ด - แต่สามารถเพิ่มเป็นอาร์กิวเมนต์ได้อย่างง่ายดาย
ต้องส่งชื่อช่องโดยไม่มี #
นำหน้า
เอาต์พุตสีสันสดใส (TBD)
https://en.wikipedia.org/wiki/Internet_Relay_Chat
RFC 1459 (โปรโตคอลการแชทผ่านอินเทอร์เน็ต)
https://tools.ietf.org/html/rfc1459
การอ้างอิงรหัสตอบกลับของเซิร์ฟเวอร์ IRC
https://www.alien.net.au/irc/irc2numerics.html
RFC 2812 (การแชทผ่านอินเทอร์เน็ต: โปรโตคอลไคลเอ็นต์):
https://tools.ietf.org/html/rfc2812
แหล่งข้อมูลอื่นๆ:
http://chi.cs.uchicago.edu/chirc/irc_examples.html
http://books.msspace.net/mirrorbooks/irchacks/059600687X/irchks-CHP-13-SECT-2.html