An IRC bot for learning, fun and collaboration in the Freepost community.

fr33domlover 76e5aa69fe Merge branch 'folks' of smichel17/funbot into master vor 4 Jahren
config 32c4af5551 Read configuration from yaml file instead of Haskell source vor 6 Jahren
src 3d586036db Allow !folks command to take a message vor 4 Jahren
state-default 9975d4976d fix default json format vor 6 Jahren
util ea6b0678b1 fix error in run.sh script! vor 9 Jahren
.gitignore 32c4af5551 Read configuration from yaml file instead of Haskell source vor 6 Jahren
AUTHORS.md 433eb49eb3 Rename AUTHORS to AUTHORS.md vor 6 Jahren
COPYING ff77faba78 add aux files vor 9 Jahren
ChangeLog ff77faba78 add aux files vor 9 Jahren
INSTALL.md cb57007079 Update instructions in INSTALL.md to mention settings.yaml vor 6 Jahren
NEWS.md 092cebadc6 Release 0.5 vor 9 Jahren
README.md e0595857ad Merge branch 'readme-install-link' of smichel17/funbot into master vor 6 Jahren
Setup.hs ff77faba78 add aux files vor 9 Jahren
funbot.cabal 32c4af5551 Read configuration from yaml file instead of Haskell source vor 6 Jahren
stack.yaml b3f4e32731 Remove old unused extra-deps from stack.yaml vor 7 Jahren

README.md

funbot

FunBot is an IRC bot written in Haskell. This is a fun and interactive way to learn and experiment with Haskell, quickly seeing the results of the code you write. The project was started after an idea was brought up in #freepost channel: Write a bot collaboratively, the whole community together. Experiment, learn and laugh in the process.

FunBot is free software, and is committed to software freedom and to freedom in general. It is released to the public domain using the CC0 Public Domain Dedication. See COPYING.

Cheatsheet

  • !repo+ <host> <username> <repo> <channel>: Add repo. Example: !repo+ notabug fr33domlover funbot #freepost
  • !repo- <host> <username> <repo>: Remove repo
  • !spec+ <host> <username> <repo> <channel>: Add another channel where git repo events will be announced. This must be used after a repo has already been added with !repo+.
  • !spec- <host> <username> <repo> <num>: Remove git event announcement specification with the given index number (as found in the settings tree, i.e. starting from 1) from the given repo. See also !spec+. Note: To see the "settings tree" use the !get command, for example !get repos.notabug.fr33domlover/funbot.
  • !tell <nick>[:|,] <text>: Private memo to user
  • !ctell <nick>[:|,] <text>: Public memo (in channel) to user. Bot will speak in the channel where the command was issued.
  • !join <channel>: Make funbot join a channel (requires privileges).
  • !leave <channel>: Make funbot part a channel (requires privileges).

Using

See the .cabal file for more info and link to project website and version control.

The official download location is the Git repository:

https://notabug.org/fr33domlover/funbot.git

Occasionally, releases may be made to Hackage, the Haskell package repository. See http://hackage.haskell.org/package/funbot.

Some of the dependency libraries may have recent features not released to Hackage yet. See the guide linked at the bottom for their clone URLs. If you use a released version of funbot, you can safely install all the dependencies from Hackage as usual.

This program is free software, released to the public domain using the CC0 Public Domain Dedication. For the boring "legal" details see the file COPYING.

See the file INSTALL.md for a detailed usage and deployment guide. The file ChangeLog explains how to see the history log of the changes done in the code. NEWS.md provides a friendly overview of the changes for each release.

Reporting Bugs and Suggesting Features

If you found a bug, or you have an idea, a feature request or a wishlist item, open a ticket for it! Even if you're going to implement something or try to solve it yourself.

Use NotABug's issue system.

User/Contributor Guide

There is a detailed guide for running the bot and creating a development setup. It's in the INSTALL.md file.

If you're going to implement some feature or fix some bug you found, start by opening an issue so that other people will know which features are being developed and who does what.