Skip to content

Baekalfen/Dikunt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

------------------------------------ DIKUNT ------------------------------------

Bot for IRC chats. The bot receives messages from an IRC channel it is connected
to and responds to those messages. The bot consist of a main program located in
the ./main folder. The main program reads configuration and starts all plugins
used by Dikunt. The plugins are located in the plugins folder. The plugins are
given all messages the bot receives and any lines written to stdout on any
plugin is send as a PRIVMSG to the channel the bot is connected to.

--------------------------------- INSTALLATION ---------------------------------

To install the bot start by cloning the git project

    $ git clone https://github.com/bus000/Dikunt/

Then to install type

    $ cabal install

The bot will be installed where cabal deems it appropriate. To run the tests in
the package run

    $ cabal configure --enable-tests
    $ cabal install --only-dependencies --enable-tests
    $ cabal test

To run the bot either make sure that the executables is on your PATH or specify
the path to the plugins on the command line. Type,

    $ dikunt --nickname=somenick \
             --server=someserver \
             --channel=somechannel \
             --plugin-location=somepath

By default all plugins having external dependencies are disabled. To enable the
plugins either change the configuration file ./data/dikunt.config before an
install or specify the extra plugins on the command line,

    --with-plugin=path-to-plugin

If a specific plugin is unwanted or does not work it can be disabled by changing
./data/dikunt.config before an install or by passing the command line argument,

    --without-plugin=path-to-plugin

To generate documentation install the bot with the flag --enable-documentation.

    $ cabal install --enable-documentation

----------------------------------- PLUGINS -----------------------------------

AsciiPicture:
    Takes URL's to jpg's and print asciiart version of the images using jp2a.

    Dependencies: jp2a - https://github.com/cslarsen/jp2a

AsciiText:
    Takes a text string and print an asciiart version of the text with big
    letters.

    Dependencies: TOIlet

BibleGem:
    Print a random quote from the bible.

DanishMoan:
    Print a string like Åååååååhhh

Fix:
    Fix last message given vim like substitute command.

Greetings:
    Print greetings and goodbyes to users connecting and disconnecting
    respectively.

Help:
    Print how to find help information on the modules.

Insult:
    Print an insult directed to another IRC user on the channel.

News:
    Print the latest BREAKING news from BBC.

Trump:
    Print a random trump quote generated using Markov chains.

WordReplacer:
    Replaces words in the PRIVMSG's from other users.

Policeman:
    Print warning to users using swear words.

TicTacToe:
    Play a game of TicTacToe with the bot.

Asked:
    Writes "Spurgt!" to messages with a probability that can be changed.

Remind:
    Print reminders to users from other users on time or on message.

Eval:
    Evaluate all pure Haskell expressions.

    Dependencies: mueval - https://hackage.haskell.org/package/mueval

Mark:
    Replace faces between a source image and The Mark.

    Dependencies: open-cv2 - https://pypi.python.org/pypi/opencv-python
        dlib - http://dlib.net/python/index.html
        numpy - https://docs.scipy.org/doc/numpy-1.13.0/user/install.html
        dropbox - https://www.dropbox.com/developers-v1/core/sdks/python
        parsy - https://github.com/python-parsy/parsy
        Trained face detector machine learning model - http://sourceforge.net/projects/dclib/files/dlib/v18.10/shape_predictor_68_face_landmarks.dat.bz2

    To get the plugin running a couple of command line arguments need to be
    given to Dikunt. The plugin needs the path to an image containing a face it
    can insert over other images, the path to the trained machine learning model
    and a token to connect to dropbox. Therefore dikunt should be run with,

        --plugin-arg="--predictor-path=<path-to-face-model>"
        --plugin-arg="--mark-image-path=<path-to-face>"
        --plugin-arg="--dropbox-token=<token>"

BCPrice:
    Get the current price of one bitcoin in US $.

Merry:
    Responds to certain greetings such as good morning, merry christmas, happy
    newyear, (...).

Mundheld:
    A database of danish "sayings" that can be queried.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 92.2%
  • Python 7.8%