All Projects → JohnMaguire → Cardinal

JohnMaguire / Cardinal

Licence: MIT license
A Python IRC bot, designed to make adding functionality quick and simple.

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to Cardinal

lita-irc
An IRC adapter for Lita.
Stars: ✭ 19 (-79.35%)
Mutual labels:  irc, irc-bot
HackServ
Python 3 IRC Bot / Botnet
Stars: ✭ 28 (-69.57%)
Mutual labels:  irc, irc-bot
calculon
Library for writing IRC bots in OCaml, a collection of plugins, and a dramatic robotic actor.
Stars: ✭ 26 (-71.74%)
Mutual labels:  irc, irc-bot
irc.dart
Dart IRC Library
Stars: ✭ 45 (-51.09%)
Mutual labels:  irc, irc-bot
TwitchPy
This is a package you can use to connect with the Twitch API, manage a channel, create bots, etc
Stars: ✭ 22 (-76.09%)
Mutual labels:  irc, irc-bot
bmotion
An Artificial Stupidity script for eggdrop bots
Stars: ✭ 58 (-36.96%)
Mutual labels:  irc, irc-bot
irc-bot
A simple and modular PHP IRC bot
Stars: ✭ 82 (-10.87%)
Mutual labels:  irc, irc-bot
CloudBot
CloudBot - The simple, fast, expandable, open-source Python IRC Bot!
Stars: ✭ 57 (-38.04%)
Mutual labels:  irc, irc-bot
eggdrop-docker
No description or website provided.
Stars: ✭ 20 (-78.26%)
Mutual labels:  irc, irc-bot
CloudBot
CloudBot - The simple, fast, expandable, open-source Python IRC Bot!
Stars: ✭ 69 (-25%)
Mutual labels:  irc, irc-bot
erk
Ərk is an open source, cross-platform IRC client written in Python 3, Qt 5, and Twisted.
Stars: ✭ 21 (-77.17%)
Mutual labels:  irc, twisted
Limnoria
A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot.
Stars: ✭ 578 (+528.26%)
Mutual labels:  irc, irc-bot
teleirc
Go implementation of a Telegram <=> IRC bridge for use with any IRC channel and Telegram group
Stars: ✭ 112 (+21.74%)
Mutual labels:  irc, irc-bot
yesbot
IRC Bot Written in Prolog
Stars: ✭ 19 (-79.35%)
Mutual labels:  irc, irc-bot
energymech
EnergyMech IRC Bot
Stars: ✭ 24 (-73.91%)
Mutual labels:  irc, irc-bot
girc
💬 A simple chat client in Python/Twisted
Stars: ✭ 16 (-82.61%)
Mutual labels:  irc, twisted
slackbridge
Bridge between IRC and Slack running on Kubernetes
Stars: ✭ 12 (-86.96%)
Mutual labels:  irc, twisted
honeybot
🛩 A python IRC bot with simple plugins dev. Ignited in mauritius, first-timers friendly! Moved to github.com/pyhoneybot/honeybot
Stars: ✭ 57 (-38.04%)
Mutual labels:  irc, irc-bot
Twisted
Event-driven networking engine written in Python.
Stars: ✭ 4,442 (+4728.26%)
Mutual labels:  irc, twisted
phenny
My fork of phenny lives on at https://github.com/vtluug/phenny. This tree is now unmaintained.
Stars: ✭ 15 (-83.7%)
Mutual labels:  irc, irc-bot

Cardinal

Meet Cardinal.

Build Status Coverage Status

Cardinal is a Python Twisted IRC bot with a focus on ease of development. It features reloadable asynchronous plugins, Python decorators for commands and IRC events, simple persistent JSON data storage, and a well-documented API.

You can join #cardinal on the DarkScience IRC network for questions or support. (irc.darkscience.net/+6697 — SSL required)

What can Cardinal do?

Anything, if you're creative! Cardinal does come with some plugins to get you started...

  • Fetching URL titles
  • Wolfram Alpha calculations
  • Wikipedia definitions
  • Urban Dictionary definitions
  • Movie and TV show lookups
  • Weather reports
  • Reminders
  • Google searches
  • Now playing w/ Last.fm
  • Stock ticker
  • sed-like substitutions
  • ... and more!

But the best part of Cardinal is how easy it is to add more!

Basic Usage

Configuration

  1. Copy the config/config.example.json file to config/config.json (you can use another filename as well, such as config.freenode.json if you plan to run Cardinal on multiple networks).

  2. Copy plugins/admin/config.example.json to plugins/admin/config.json and add your nick and vhost in order to take advantage of admin-only commands (such as reloading plugins, telling Cardinal to join a channel, or blacklisting plugins within a channel).

Running

Cardinal is run via Docker. To get started, install Docker and docker-compose.

If your config file is named something other than config/config.json, you will need to create a docker-compose.override.yml file like so:

version: "2.1"
services:
    cardinal:
        command: config/config_file_name.json

To start Cardinal, run docker-compose up -d. To restart Cardinal, run docker-compose restart. To stop Cardinal, run docker-compose down.

Writing Plugins

Cardinal was designed with ease of development in mind.

from cardinal.decorators import command, help

class HelloWorldPlugin:
    @command(['hello', 'hi'])
    @help("Responds to the user with a greeting.")
    @help("Syntax: .hello")
    def hello(self, cardinal, user, channel, msg):
        nick, ident, vhost = user
        cardinal.sendMsg(channel, "Hello {}!".format(nick))

entrypoint = HelloWorldPlugin

Cardinal also offers a lightweight database API. Visit the wiki for detailed information.

Contributing

Cardinal is a public, open-source project, licensed under the MIT License. Anyone may contribute.

When submitting a pull request, you may add your name to the CONTRIBUTORS file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].