Questions tagged [irc]

IRC - Stands for Internet Relay Chat is an internet based chat protocol. Main idea is to have users connect to a server network, where they can then send messages to each other through channels or direct chat. Today there's quite a few different networks, usually each with a main thematic. Stack Overflow got its own channel on the FreeNode network. You can read more about that on the full tag wiki page.

Overview

IRC is an internet chat protocol, first written in 1988. It bascially features IRC servers organized into networks, where an user can send message to other ones. The main feature is the channels that users can join, much like other chat rooms.

Network infrastructure and protocol

A network is generally made of several different servers, linked together through the same IRC protocol, where users and channels are common. Usually, just joining an empty channel will automatically create it, although this might not be the case everywhere. The IRC protocol also features moderators of different levels and channel options, although this has been found to be too weak for general use. Most IRC Networks now feature IRC Services, that enable someone to configure and protect channels in greater detail.

The IRC protocol only uses plaintext, as opposed to XMPP for example that uses XML style, and is therefore very simple to parse and use. Because of the lack of security of this approach, it's now usually used along a SSL connection. A typical IRC query is of the form: :origin KEYWORD contents - with the origin and contents sections being optional : a query could be as much as "LIST" to get a list of current network channels.

The server connection process is also very simple: the user only has to send out information about desired nickname, username, and displayed real name, before being able to use the network. Because of that, there has been quite a few implementation of IRC Bots and scripting platforms for various uses (EG. Eggdrop, Supybot, or simply home-made applications)

One of the big loopholes in the IRC protocol as described by RFC1459 is that it does not specify the use of character encoding past the 7-bit ASCII representation. Channels and users have been known to mostly use either utf-8 or latin-1 (iso8856-1). There's no shortage of problems made by bad software utf-8 parsers, to the extent of being able to crash people's client at will.

Stack Overflow IRC channel

Stack Overflow has an IRC channel on the FreeNode network (irc.freenode.net), #stackoverflow You could join it either by inputing above info in an IRC client, using This kind of browser link, or using a JS Web Applet such as FreeNode's QIRC. FreeNode is also the home of hundreds of community projects, especially open source ones.

More information

Detailed informations about the IRC protocol can be found into the IETF related RFCs, the initial one being RFC1459. Additions were later made, although some of these remain un-supported to this date.

Some popular IRC clients include:

Many other applications such as GNOME's Empathy, or Pidgin, also come with builtin IRC support.

1108 questions
2
votes
1 answer

Python IRC ChatBot hangs on socket.recv after seemingly random time even though socket.settimeout is 8

Hey so I decided to create an IRC ChatBot whose sole purpose it is to read incoming messages from Twitch Chat and if a giveaway is recognized by a keyword it's supposed to enter the giveaway by sending !enter in Chat. I build the Bot upon this…
suupar
  • 23
  • 3
2
votes
2 answers

How is the shortest path in IRC ensured?

RFC 2810 says the following about one-to-one communication: Communication on a one-to-one basis is usually performed by clients, since most server-server traffic is not a result of servers talking only to each other. To provide a means for clients…
cadaniluk
  • 15,027
  • 2
  • 39
  • 67
2
votes
2 answers

Express: How to keep passing data from controller to the view continuously

I am connecting to an existing irc server from my site. I have a couple of listeners that keep logging the data to the console. My problem is how to pass this data to the ejs file without rendering the file again and again. irc.addListener('kick',…
user4543445
2
votes
2 answers

Primitive Python IRC Chat bot for twitch

I'm currently working on an IRC bot for Twitch.tv and I was wondering how I can implement a banned words list? Here is what I have so far and I'm stumped because of my limited knowledge of python. Everything is working great so far except checking…
Aaron
  • 217
  • 2
  • 12
2
votes
0 answers

Cannot send message to Twitch chat or they wont display

I want to create a bot, just for my curiosity. And i want to send message to Twitch chat, but I can connect, join a channel, but when i send message nothing is display on Twitch Chat. And my send doesn't return an error, so i don't understand. bool…
Raphael Teyssandier
  • 1,722
  • 2
  • 13
  • 25
2
votes
0 answers

Android logcat in textview

i new to the android programming. I've tried to create a IRC bot. I've used the Pircbot libraries. My app can connect to the server but i can't understand how to show the chat's output in the android's textview. Can you help me? Pircbot print it in…
Gio Picca
  • 21
  • 2
2
votes
3 answers

Defense against approximate string matching

How can I alter a string so that variations of approximate string matching can't match it with the original? I made an IRCbot which runs a game based on the logfile of the channel. It prints quotes from the logs and players collect points by…
Atte Juvonen
  • 4,922
  • 7
  • 46
  • 89
2
votes
0 answers

How to use threading for an IRC bot?

I'm making an IRC bot that works primarily on a plugin system. Every plugin has aparse() method that will get called when the bot is pinged (I.E. receives an IRC message with its own name in it). Right now I am iterating through the each parse()…
Turbo Turtle
  • 309
  • 1
  • 5
  • 12
2
votes
0 answers

Python IRC Bot Stops responding after a while of being open

Ok. So I've been making a twitch bot because I thought it would be fun to learn python and I thought that it would be good for when I get more into streaming. I made a very simple moderator bot and I started streaming a little bit and I've noticed…
2
votes
1 answer

How to tag all members of an IRC channel

Is there a way to tag all members of an IRC channel in a message rather than mentioning each of their names in the message? Or is there another way to send a notification to all members of the channel? Maybe like an announcement protocol? The…
austinheiman
  • 939
  • 1
  • 12
  • 17
2
votes
1 answer

C# irc client streamwriter just send one word

i have source irc client from some site. this is the some code : using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; …
kresek
  • 129
  • 2
  • 10
2
votes
2 answers

Getting User Count From IRC

I am making IRC chat client and I am wanting to grab the user list or simply the user count, how can I go about doing this. This is the method I'm using to connect to the IRC: Private Sub IRCConnect() Dim stream As NetworkStream Dim…
Ben
  • 35
  • 5
2
votes
1 answer

Connecting to an IRC server using C#

I've been trying my hand at a minimalistic IRC bot, but I can never get a connection to work. I'm doing this via a TcpClient object, which I've seen used in other such projects and those reportedly work. Here's the code. private string server =…
KdgDev
  • 14,299
  • 46
  • 120
  • 156
2
votes
1 answer

Python script interrupts only after buffer receives data using socket and KeyboardInterrupt sent

I'm using Python version 2.7.9 on Windows 8.1 Enterprise 64-bit. (Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32) So I am writing a python IRC bot and everything works within the script. The issue that I am having…
falconspy
  • 750
  • 3
  • 8
  • 22
2
votes
1 answer

blocking listen prevents disconnect

Overview of Problem: I need to connect to an IRC Server. Once connected, the program will send a message to the channel, and a response will occur over multiple lines back. I need to read these lines and store in a variable for later use. A special…
Mike
  • 1,532
  • 3
  • 21
  • 45