-
Notifications
You must be signed in to change notification settings - Fork 5
File_Formats
Some modules store configuration files like modules/data/<name>.data, these are listed here:
Simply a list of channels to join, one per line.
Example:
#miblo
#test
#yolo
List of special permissions:
file = { line };
line = role , " " , name , <EOL>;
role = "ADMIN" | "WLIST";
name = { ? any IRC nick chars ? };
Example:
WLIST aoi
WLIST byakuya
ADMIN chiaki
List of modules to enable per channel:
file = { line };
line = channel , { " " , module } , <EOL>;
channel = { ? any IRC chan chars ? };
module = { ? any chars representing a module's name (no spaces assumed) ? };
Example:
#random markov haiku alias linkinfo brainfuck
#srsbsns linkinfo alias
Stores the list of aliases in this format:
file = "VERSION 2" , <EOL> , { alias-decl };
alias-decl = { key , " " } , permission , " " , value , <EOL>;
key = global-key | channel-key;
global-key = global-pre , { key-char };
channel-key = channel-pre , { key-char };
channel-pre = "#" | "&" | "+" | "~" | "." | "!";
global-pre = { ? [a-z0-9] ? };
key-char = { ? any character except space or uppercase ? };
permission = "NORMAL" | "WLIST" | "ADMIN";
value = { ? any char except <EOL> ? };
Example:
VERSION 2
beep boop NORMAL beep boop I'm a bot
#random,beep NORMAL I only say this in #random!
nn NORMAL Goodnight %a
#test,a #test,b WLIST hello %t, you're whitelisted, in #test, and used !a or !b.
Information for the twitch tracker and follow notifier. "TRACK" is for a channel added to the twitch tracker, "TAG" is for a user that wants to be tagged when a tracked channel starts streaming, "OUTPUT" is for the channel that the bot makes stream announcements, "NOTIFY" is for a channel that wants follow notifications.
file = { cmd , <EOL> };
cmd = track-cmd | tag-cmd | output-cmd | notify-cmd;
track-cmd = "TRACK " , chan , " " , track-name;
track-name = { ? any char except <EOL> ? };
tag-cmd = "TAG " , tag-name;
tag-name = { ? any IRC nick chars ? };
output-cmd = "OUTPUT " , chan;
notify-cmd = "NOTIFY " , chan;
chan = { ? any IRC channel chars ? };
Example:
TRACK #naysayer88 Jonathan Blow
TRACK #miblo
TAG xxx_sephiroth_420_xxx
TAG youre_it
OUTPUT #streams
NOTIFY #miblo
Stores users karma scores.
file = { line };
line = { name } , " " , up , ":" , down , <EOL>;
name = { ? any IRC nick chars ? } , ":";
up = integer
down = integer
Example:
eisbehr: 999:0
abner:abnercoimbre: 0:999
d7:d7samurai:c: 321:123
This is a gzipped binary file that contains the wordlist, key + word hash tables, and array of values. It's basically dumped structs so it loads acceptably fast on my raspberry pi.
DISCLAIMER: It does minimal checking for the same reason, so be careful about accepting random copies of this from other people - it probably isn't secure and specially crafted files could probably cause memory corruption / maybe even code execution.