Skip to content

Instantly share code, notes, and snippets.

View prawnsalad's full-sized avatar

Darren Whitlen prawnsalad

View GitHub Profile
prawnsalad @ is github prawnsalad

hi, and goodbye

The past few weeks has not been fun on IRC, the drama based on false information and assumptions has been insane. I've almost entirely been silent on the drama because I know the fallout that would happen if I spoke up.

A quick TLDR - I'm quitting all IRC development. KiwiIRC project lead, IRCv3 technical board, supporting the multitude of IRC networks, the lot.

Many people seem to think that I am supporting one side in everything that is going on, so just to be clear: I am not supporting any side of the current freenode drama - there is so much false information going around from everywhere that it is impossible to support anybody.

Woo freenode drama

const KoaRouter = require('@koa/router');
module.exports.init = async function init(hooks, app) {
let router = new KoaRouter({
prefix: '/myhttp-api',
const WebSocket = require('ws');
function sleep(ms) {
return new Promise(r => setTimeout(r, ms));
function rand(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
const request = require('request-promise');
const tokens = require('../../kiwibnc/src/libs/tokens');
let config = {};
* Add these to your config file:
* [extension.autoregister]
* config.auth_api_url="" // your HTTP API for authing users
* config.default_net_name=""
* config.network_address=""
yarn licenses v1.19.1
├─ (BSD-2-Clause OR MIT OR Apache-2.0)
│ └─ rc@1.2.3
│ ├─ URL:
│ ├─ VendorName: Dominic Tarr
│ └─ VendorUrl:
├─ (BSD-2-Clause OR WTFPL)
│ └─ sinon-chai@2.14.0
│ ├─ URL:
│ ├─ VendorName: Domenic Denicola
kiwi.plugin('myplugin', function(kiwi) {
kiwi.on('irc.message', function(message, network, event) {
if (message.nick === '*bnc' && message.message) {
// Only show *bnc messages if we have the buffer open.
// We don't want confusing messages to users
let buffer = network.bufferByName('*bnc');
if (!buffer) {
event.handled = true;
2019/10/05 22:25:45.485574 Using config /work/kiwi/webircgateway/config.conf
2019/10/05 22:25:45.489217 L_INFO Serving files from /work/personal/kiwiirc-production/dist
2019/10/05 22:25:45.489594 L_INFO Listening with letsencrypt TLS on
2019/10/05 22:25:45.489603 L_INFO Listening on
2019/10/05 22:25:45.489606 L_INFO Listening on /tmp/webircgateway.sock
2019/10/05 22:25:45.489957 L_WARN listen tcp bind: address already in use
2019/10/05 22:25:45.489979 L_WARN TCP error listening: listen tcp bind: address already in use
2019/10/05 22:25:45.490036 L_WARN Listening with letsencrypt failed: listen tcp bind: address already in use
<div id='myloginform'>
<h1> some crazy login form styled to your website</h1>
<form @click.prevent="onFormSubmit">
<input v-model="nick" />
export function run(kiwi, config) {
var ctr = {

Overhaul from previous CHATHISTORY spec

  • Explanation of each subcommand
  • Unified and simpler syntax for each subcommand
  • Removal of many ambiguities throughout the spec
  • Removal of conflicting command parameters
  • Removal of unrelated specs being mentioned in examples and notes
  • Simplified and explicity defined errors

title: IRCv3 chathistory extension