All Projects → eazar001 → yesbot

eazar001 / yesbot

Licence: MIT license
IRC Bot Written in Prolog

Programming Languages

prolog
421 projects

Projects that are alternatives of or similar to yesbot

TwitchPy
This is a package you can use to connect with the Twitch API, manage a channel, create bots, etc
Stars: ✭ 22 (+15.79%)
Mutual labels:  irc, irc-bot, irc-client
irc.dart
Dart IRC Library
Stars: ✭ 45 (+136.84%)
Mutual labels:  irc, irc-bot, irc-client
Limnoria
A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot.
Stars: ✭ 578 (+2942.11%)
Mutual labels:  irc, irc-bot
jj
An evolution of the suckless ii(1) file-based IRC client
Stars: ✭ 80 (+321.05%)
Mutual labels:  irc, irc-client
energymech
EnergyMech IRC Bot
Stars: ✭ 24 (+26.32%)
Mutual labels:  irc, irc-bot
swirc
Lightweight terminal based ICB and IRC client
Stars: ✭ 20 (+5.26%)
Mutual labels:  irc, irc-client
communi-sailfish
The first and foremost IRC client for Sailfish OS
Stars: ✭ 34 (+78.95%)
Mutual labels:  irc, irc-client
insobot
C99 modular IRC bot with markov chains
Stars: ✭ 71 (+273.68%)
Mutual labels:  irc, irc-bot
Hexchat
GTK+ IRC client
Stars: ✭ 2,608 (+13626.32%)
Mutual labels:  irc, irc-client
pesterchum-alt-servers
Instant messaging client copying the look and feel of clients from Andrew Hussie's webcomic Homestuck.
Stars: ✭ 37 (+94.74%)
Mutual labels:  irc, irc-client
Cardinal
A Python IRC bot, designed to make adding functionality quick and simple.
Stars: ✭ 92 (+384.21%)
Mutual labels:  irc, irc-bot
CloudBot
CloudBot - The simple, fast, expandable, open-source Python IRC Bot!
Stars: ✭ 57 (+200%)
Mutual labels:  irc, irc-bot
honeybot
🛩 A python IRC bot with simple plugins dev. Ignited in mauritius, first-timers friendly! Moved to github.com/pyhoneybot/honeybot
Stars: ✭ 57 (+200%)
Mutual labels:  irc, irc-bot
teleirc
Go implementation of a Telegram <=> IRC bridge for use with any IRC channel and Telegram group
Stars: ✭ 112 (+489.47%)
Mutual labels:  irc, irc-bot
phenny
My fork of phenny lives on at https://github.com/vtluug/phenny. This tree is now unmaintained.
Stars: ✭ 15 (-21.05%)
Mutual labels:  irc, irc-bot
CloudBot
CloudBot - The simple, fast, expandable, open-source Python IRC Bot!
Stars: ✭ 69 (+263.16%)
Mutual labels:  irc, irc-bot
Srain
Modern IRC client written in GTK
Stars: ✭ 197 (+936.84%)
Mutual labels:  irc, irc-client
Irssi
The client of the future
Stars: ✭ 2,431 (+12694.74%)
Mutual labels:  irc, irc-client
eggdrop-docker
No description or website provided.
Stars: ✭ 20 (+5.26%)
Mutual labels:  irc, irc-bot
bmotion
An Artificial Stupidity script for eggdrop bots
Stars: ✭ 58 (+205.26%)
Mutual labels:  irc, irc-bot

Yesbot

An IRC Bot Written in Prolog

  • Multi-threaded extensible bot with a "pluggable" system.
  • Extensions are assumed to be mutually exclusive and will run concurrently.
  • Written with the SWI Prolog implementation -- SWI Prolog Website

Configuration

Before doing anything, you must first install the irc_client pack for SWI-Prolog from the interpreter

?- pack_install(irc_client).

Aferwards, you must configure the bot using the settings tools in SWI-Prolog.

Examine config.pl (using swipl config.pl)

If you would like to change which extensions are loaded on bot startup you must use:

% replace these plugin names with valid ones
?- set_extensions([plugin1, plugin2]).

Any other settings you need to change, you can change by doing:

?- set_setting(config:nick, examplebot).

You can check your current settings with:

?- setting(config:nick, examplebot).

When done persist them with:

?- save_settings.

They'll be saved in a new file, settings.db, in your working directory.

This file should not be added to git's managed files.

settings.db can be edited manually if you desire.

Do be aware that the default logs the bot onto ##prolog and ##math

Please bot responsibly.

Running the bot

After chmod 755 run.pl, execute the bot like such:

./run.pl

Extending the bot

There are numerous demo plugins that come with Yesbot. A few of which includes a basic chat-logging extension and a TinyURL powered link shortener. The default setting for these extensions are the abovementioned. Extensions for Yesbot are very simple. They are basically Prolog predicates with the same name as their containing modules. All Yesbot extensions are required to have an arity of 1. Extensions should all take in one argument: a pair containing the Id of the connection and the current server line. The pair should be of the form Id-Msg. The main extension predicate should have the same name as the Prolog module itself (sans the .pl portion). The demo extension source code is located in the extensions directory. A warning: The majority of the extensions that come with this bot were designed for ##prolog usage. While they can be catered to work generically, they may require tinkering to get them to work for your use cases.

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].