Skip to content

Instantly share code, notes, and snippets.

#!/bin/bash
dehydrated --cron
 
CERT_DIR='/var/lib/dehydrated/certs'
IRC_HOME='/home/ircdev'
@KoraggKnightWolf
KoraggKnightWolf / irc_fuzz.py
Created July 4, 2019 17:42 — forked from DanielOaks/irc_fuzz.py
Little IRC server fuzzer
#!/usr/bin/env python3
# IRC Server fuzzing, made easy!
import time
import socket
import select
import random
# settings
hostname = '127.0.0.1'

Parsing And Sending STATUSMSG Messages

STATUSMSG is a type of IRC private message / notice where the target of the private message is the members of a channel with at least a certain level of channel responsibility.

In other words, instead of the target of the message just being #ircv3, it may be @#ircv3 and only be send to the ops of the channel, rather than all members of the channel.

The STATUSMSG ISUPPORT Token

The STATUSMSG RPL_ISUPPORT token is used to note that the server supports sending private messages and notices with these special 'statusmsg targets' (the channel name prefixed by a given privilege level character such as +, %, @ or similar).

@KoraggKnightWolf
KoraggKnightWolf / keybase.md
Last active July 4, 2019 15:18
My Keybase.io Proof

Keybase proof

I hereby claim:

  • I am KoraggKnightWolf on github.
  • I am koragg (https://keybase.io/koragg) on keybase.
  • I have a public key whose fingerprint is 7E79 3F52 4444 984F BBB3 0A2A 8E50 A9BD 7AA5 2C38

To claim this, I am signing this object:

IRC Client Registration

 ->  means lines that the client sends to the server.
<-   means lines that the server sends to the client.

Normal Registration

IRC Roleplay Commands

Daniel Oaks daniel@danieloaks.net


Introduction

People like to use IRC to roleplay. In other words, to act out characters as part of a channel and between clients. Often, this means it's desirable to send messages with names other than the client's nickname, and to send messages not explicitly attached to a name at all.

@KoraggKnightWolf
KoraggKnightWolf / numreplies.yaml
Created May 17, 2019 23:10 — forked from Ferus/numreplies.yaml
IRC Numeric Replies in YAML
# This file is a transcription of RFC 1459 section 6 into YAML, so that
# programs written in any language may utilize it. It describes the
# various numeric replies an IRC server may send, their canonical name,
# number and a short description, if available.
#
# Copywrong (c) 2012 slowpoke (Proxy) < proxypoke at lavabit dot com >
# This file is licensed under the terms of the WTFPL v2.
#
#
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE

Channel successor logic on freenode

(This covers what Atheme services as used on freenode will do if all founder (+F) accounts of a channel are dropped. It does not go into any staff policies on related matters. In particular, single-# channels have policies that services cannot reasonably implement¹ as they commonly involve talking to actual people.)

For single-# channels, the freenode-staff role account is always chosen as successor; normal channel successor logic does not apply in this case.

Otherwise, the "best" user will be selected from the channel's ACL according to the following criteria:

  • They may not have the +b flag. This ensures AKICKed users will never inherit a channel.
  • They need to be able to accomodate the channel registration; users who already have 30 channels registered cannot inherit a channel unless they have been granted the RegNoLimit flag.²
@KoraggKnightWolf
KoraggKnightWolf / irsay.sh
Created April 2, 2019 22:51 — forked from madx/irsay.sh
A minimalist IRC client in Bash. Could also be used as a bot.
#!/bin/bash
[ -z "$channel" ] && channel="#bobot"
[ -z "$server" ] && server="irc.freenode.net"
[ -z "$port" ] && port="6667"
[ -z "$user" ] && user=$USER
function irc_session () {
# Login phase
echo "USER $user 0 * :$user"
echo "NICK $user"
@KoraggKnightWolf
KoraggKnightWolf / Ruby-Version.README.md
Last active January 17, 2019 02:02 — forked from fnichol/README.md
A Common .ruby-version File For Ruby Projects

A Common .ruby-version File For Ruby Projects

Background

I've been using this technique in most of my Ruby projects lately where Ruby versions are required:

  • Create .rbenv-version containing the target Ruby using a definition name defined in ruby-build (example below). These strings are a proper subset of RVM Ruby string names so far...
  • Create .rvmrc (with rvm --create --rvmrc "1.9.3@myapp") and edit the environment_id= line to fetch the Ruby version from .rbenv-version (example below).

Today I learned about another Ruby manager, rbfu, where the author is using a similar technique with .rbfu-version.