3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-14 16:09:34 +01:00
pbot/pbot.pl
Pragmatic Software 239e3de8ea Quotegrabs.pm now uses quotegrabs_db API for interfacing with storage backend
Two quotegrabs_db backends are now availble:

  * Quotegrabs_Hashtable.pm: the original hashtable implementation
  * Quotegrabs_SQLite.pm: the new SQLite implementation

Quotegrabs_SQLite.pm is now the default quotegrabs_db backend.

This was done to reduce the memory footprint of the bot by not needing to
keep the entire quotegrabs table in memory any longer.

A similiar change will be coming soon to the Factoids table as well as the
MessageHistory table.
2014-05-06 05:15:27 +00:00

120 lines
4.1 KiB
Perl
Executable File

#!perl
#
# File: pbot.pl
# Author: pragma_
#
# Purpose: IRC Bot (3rd generation)
########################
my $VERSION = "1.0.0";
use strict;
use warnings;
use PBot::PBot;
# Be sure to set $bothome to the location PBot was extracted (default assumes ~/pbot).
# This location must contain the PBot directory, among others configured below.
my $bothome = "$ENV{HOME}/pbot";
my %config = (
# -----------------------------------------------------
# Be sure to set your IRC information to a registered NickServ account
# if you want channel auto-join to work.
# -----------------------------------------------------
# IRC server address to connect to
ircserver => 'irc.freenode.net',
# IRC port
port => '6667',
# Use SSL? 0 = disabled, 1 = enabled
# Note that you may need to use a specific port for SSL; e.g., freenode uses 6697 or 7000 for SSL
# Uncomment SSL_ca_path or SSL_ca_file below to enable SSL verification (will still work without
# verification, but will be susceptible to man-in-the-middle attacks)
SSL => 0,
# SSL CA certificates path; e.g., linux: /etc/ssl/certs
# SSL_ca_path => '/etc/ssl/certs',
# SSL CA file, if SSL_ca_path will not do; e.g., OpenBSD: /etc/ssl/cert.pem
# SSL_ca_file => '/etc/ssl/cert.pem',
# IRC nick (what people see when you talk in channels)
# (must be a nick registered with a NickServ account for channel auto-join to work)
botnick => 'pbot3',
# IRC username (what appears in front of your hostname in /whois)
username => 'pbot3',
# IRC realname (extra /whois information)
ircname => 'http://www.iso-9899.info/wiki/Candide',
# Password to send to NickServ for identification
# (channels will not be auto-joined until identified)
identify_password => '*',
# The bot is triggered by using its name, or the following trigger SINGLE character
trigger => '.',
# -----------------------------------------------------
# The bot can export the latest factoids and quotegrabs to an HTML
# document. If you run a webserver or something similiar, you may
# wish to set the following items ending with 'path' to point to
# a suitable location for the webserver, and to set the items
# ending with 'site' to the public-facing URL where the files
# may be viewed in a browser.
# -----------------------------------------------------
export_factoids_path => "$bothome/factoids.html",
export_factoids_site => 'http://blackshell.com/~msmud/candide/factoids.html',
export_quotegrabs_path => "$bothome/quotegrabs.html",
export_quotegrabs_site => 'http://blackshell.com/~msmud/candide/quotegrabs.html',
# -----------------------------------------------------
# You shouldn't need to change anything below this line.
# -----------------------------------------------------
# Maximum messages to remember per nick/hostmask
MAX_NICK_MESSAGES => 256,
# Path to data directory
data_dir => "$bothome/data",
# Path to config directory
config_dir => "$bothome/config",
# Path to directory containing external script-like modules
module_dir => "$bothome/modules",
# Location of file where bot log information will be output (in addition to stdout)
# (if you use pbot.sh and you change log_file, be sure to also change the log path in pbot.sh)
log_file => "$bothome/log/log",
);
# Location of file containing bot admin information
$config{admins_file} = "$config{config_dir}/admins";
# Location of file containing channel information
$config{channels_file} = "$config{config_dir}/channels";
# Location of file containing ignorelist entries
$config{ignorelist_file} = "$config{config_dir}/ignorelist";
# Location of file containing factoids and modules
$config{factoids_file} = "$config{data_dir}/factoids";
# Location of file containing channel user quotes
$config{quotegrabs_file} = "$config{data_dir}/quotegrabs.sqlite3";
# Location of file containing message history
$config{message_history_file} = "$config{data_dir}/message_history";
# Create and initialize bot object
my $pbot = PBot::PBot->new(%config);
# Start the bot main loop; doesn't return
$pbot->start();