vomitchan

vomitchan

An IRC bot written in Haskell. cheek-pinch

Name Last Update
app Loading commit data...
data Loading commit data...
src/Bot Loading commit data...
.gitignore Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
Setup.hs Loading commit data...
stack.yaml Loading commit data...
vomitchan.cabal Loading commit data...

vomitchan

An IRC bot written in Haskell. cheek pinch


vomitchan running in IRC

Commands

  • .bots [vomitchan] - prints bot info
  • .source vomitchan - prints a link to bot source
  • .lewd <someone> - lewds someone
  • *vomits* [<someone>] - 'vomits' a link posted by you, or optionally someone else
  • *cheek pinch* - turns off and on dreammode for a channel

Admin Only

  • .quit - kill vomitchan ;-;

Building

Requirements

  • Stack
  • Haskell packages (stack should install these for you):
    • network
    • text
    • text-format
    • regex-tdfa
    • bytestring
    • aeson
    • monad-loops
    • turtle
    • connection
    • bytestring
    • random
    • stm
    • hashtables Note: you can build and run this without Stack of course, figure it out for yourself.

Building on Linux

  • clone this repo using git clone https://gitla.in/nymphet/vomitchan.git
  • run cd vomitchan && stack setup && stack build to compile

Configuration

vomitchan requires data/networks.json to store information about IRC networks to connect to. This file should look like the following:

NOTE: one can forego writing T F for "dreammode" and "mutemode" because they default to T F

[
  { "netServer" : "irc.freenode.net"
  , "netPort"   : 6667
  , "netNick"   : "vomitchan"
  , "netPass"   : "password"
  , "netChans"  : [ "#lainchan", "#extra-chan"]
  , "netState"  : {"dreamMode" : [["#lainchan", true], ["#extra-chan",  true]]
                  , "muteMode" : [["#lainchan", false], ["#extra-chan", false]]
                  }
  }
]

You can add multiple networks if you please.
NOTE: Some networks may not get the join messages if one does not wait for authentication

Running

The bot can be started within ghci by running stack ghci in the project directory. Once at the prompt, run the main function.
stack build should also create an executable that can be started with stack exec vomitchan-exe

Planned Features

  • Versioning
  • Support for the 'major' IRC networks (Freenode, Rizon, IRCNet, QuakeNet, Etc.)
  • Per-channel rate limiting, to prevent spam
  • add 'modes'
  • use parser combinators for handling messages