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
3
votes
2 answers

How Timer command works in HEXCHAT

there is a command that I can't use... anyone knows the correct syntax? Usage: TIMER [-refnum < num >] [-repeat < num >] < seconds> < command> TIMER [-quiet] -delete < num>
behzad
  • 801
  • 3
  • 15
  • 33
3
votes
1 answer

Error connecting to Slack IRC gateway

I'm using the cl-irc library to connect to Slack, via the IRC gateway Slack provides. However I'm getting the following error when I try to start the message loop with read-message-loop: error while parsing arguments to DESTRUCTURING-BIND: invalid…
Duncan Bayne
  • 3,870
  • 4
  • 39
  • 64
3
votes
1 answer

(C#) TcpClient does not connect to irc server (Using a number ip)

So, I have been trying to make a bot that connects to a local irc server. The problem is that if I call the "Irc.cs" class I made with a constructor like: Irc irc = new Irc("192.168.1.2", 6667); irc.joinChannel("#test") it does not show up on the…
Nick
  • 53
  • 4
3
votes
2 answers

How would an irc bot written in tcl stack up against a python/node.js clone?

I believe eggdrop is the most active/popular bot and it's written in tcl ( and according to wiki the core is C but I haven't confirmed that ). I'm wondering if there would be any performance benefit of recoding it's functionality in node.js or…
meder omuraliev
  • 183,342
  • 71
  • 393
  • 434
3
votes
3 answers

Sanitizing Input from irc

So I was thinking of writing a irc bot/bot extension that lets users play certain text based games by starting the game, sending parts of certain lines they enter(regexp match for game signal if not in bots channel ex. rbot gamename enter the…
Roman A. Taycher
  • 18,619
  • 19
  • 86
  • 141
3
votes
2 answers

Connect to Twitch IRC chat

Hello i've tried to connect to the Twitch IRC Chat so i can try to make a simple chat bot for twitch but im struggling to make it work. Error im getting: http://puu.sh/j3HwK/173a0388fb.png and here is the…
Bin4ry
  • 31
  • 1
  • 2
3
votes
2 answers

Browser JavaScript app IRC connection

Thanks for any help in advance! Anyway, I want my JavaScript application to be able to "connect to" or otherwise "communicate with" IRC. (I need it to run in browser, so no npmjs-dependent solutions, and yes, I have tried Browserify, but a lot of…
Smudge
  • 31
  • 4
3
votes
2 answers

How to create a simple browser-based IRC client?

I want to implement a chat service on my site, and wonder how to create a simple browser-based IRC client from scratch? I have a linux box and can install whatever I want on it. Google finds tutors on how to setup an IRC server but no instructions…
user306694
3
votes
1 answer

Is it possible to get POE::Component::IRC to receive events for its own PRIVMSGs?

I'm currently developing a bot with POE::Component::IRC whose job, amongst other things, is to post a notice to a list of channels on a schedule, for one week. I can't seem to find a way to check that the message has been successfully sent to a…
GodEater
  • 3,445
  • 2
  • 27
  • 30
3
votes
2 answers

How do I correctly shutdown a Bot::BasicBot bot (based on POE::Component::IRC)?

This is a sample script. When I hit Ctrl+C, the bot quits IRC but it reconnects back after some time. How do I shut down the bot correctly? #!/usr/bin/perl package main; my $bot = Perlbot->new (server => 'irc.dal.net'); $SIG{'INT'} =…
rarbox
  • 486
  • 5
  • 14
3
votes
4 answers

IRC bot can't join channel

import socket irc = 'irc.hack3r.com' port = 6667 channel = '#chat' sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sck.connect((irc, port)) sck.send('NICK supaBOT\r\n') sck.send('USER supaBOT supaBOT supaBOT :supaBOT…
sourD
  • 457
  • 3
  • 8
  • 14
3
votes
1 answer

mIRC Bot simulate keystrokes

I would like to program my mIRC bot so every time someone writes "W" in the chat, the bot simulates the W key on my keyboard. I have tried: on *:text:W:#:sendkeys {W} alias sendkeys var %a = $ticks .comopen %a WScript.Shell | if !$comerr { …
user1172897
  • 99
  • 1
  • 4
  • 8
3
votes
1 answer

Connecting to twitch chat python

import time import win32api, win32con import socket #imports module allowing connection to IRC import threading #imports module allowing timing functions #sets variables for connection to twitch chat bot_owner = 'TheMagicalCake' nick =…
TheMagicalCake
  • 309
  • 1
  • 6
  • 13
3
votes
0 answers

Command parser in python with command substitution

I'm writing an IRC bot in python and I don't have a clear idea on how I'm supposed to implement command substitution. Currently, if the bot sees a public message starting with an exclamation mark, it searches for a function with the name after the…
3
votes
1 answer

mIRC Execute command after X lines of chat

I'm a selflearned mIRC programmer and started very recently so my experience is quite limited. Here's the problem I have: I'm creating a chat bot for Twitch and have created besides a raffle system a timed message for promting the stream it's on…
Gryph
  • 55
  • 3