NAME
Bot::BasicBot::Pluggable::Module::Notes - A simple note collector for Bot::BasicBot::Pluggable.
SYNOPSIS
my
$bot
= Bot::BasicBot::Pluggable->new( ... );
$bot
->load(
"Notes"
);
my
$notes_handler
=
$bot
->handler(
"Notes"
);
$notes_handler
->set_store(
Bot::BasicBot::Pluggable::Module::Notes::Store::SQLite
->new(
"/home/bot/brane.db"
)
);
$bot
->run;
DESCRIPTION
A plugin module for Bot::BasicBot::Pluggable to store notes for IRC users, these are just stuffed into a small database (SQLite store provided) by time, user and content. Notes taken can then be later viewed on the web using a small web app (provided).
METHODS
- set_store
-
my
$notes_store
=
Bot::BasicBot::Pluggable::Module::Notes::Store::SQLite->new(
"/home/bot/brane.db"
);
$notes_handler
->set_store(
$notes_store
);
Supply a
Bot::BasicBot::Pluggable::Module::Notes::Store::*
object. - set_notesurl
-
Supply the URL for your CGI/App script to view the stored Notes.
EXAMPLES
use
strict;
use
warnings;
my
$bot
= Bot::BasicBot::Pluggable->new(
channels
=> [
"#test"
],
server
=>
"irc.example.com"
,
port
=>
"6667"
,
nick
=>
"bot"
,
username
=>
"bot"
,
name
=>
"bot"
,
);
$bot
->load(
"Notes"
);
my
$notes_handler
=
$bot
->handler(
"Notes"
);
$notes_handler
->set_store(
Bot::BasicBot::Pluggable::Module::Notes::Store::SQLite
->new(
"/home/bot/brane.db"
)
);
$bot
->run;
Yes, this is your entire program.
The file supplied as an argument to the constructor of Bot::BasicBot::Pluggable::Module::Notes::Store::SQLite need not already exist; it will be created and the correct database schema set up as necessary.
Talk to the bot on IRC for help:
17:37 <nou> notesbot: help Notes
<notesbot> nou: Simple Note collector
for
Bot::BasicBot::Pluggable.
Requires direct addressing. Usage:
'note to self: Here'
s something
for
later'. The Notes can be viewed at
Get stuff out of the database in your favoured fashion, for example:
use
strict;
use
warnings;
use
CGI;
use
DBI;
my
$sqlite_db
=
"/home/bot/brane.db"
;
my
$q
= CGI->new;
my
$dbh
= DBI->
connect
(
"dbi:SQLite:dbname=$sqlite_db"
,
""
,
""
)
or
die
DBI->errstr;
$q
->header;
<<EOF;
<html>
<head><title>notes</title></head>
<body><h1 align="center">notes</h1>
EOF
my
$sql
= "SELECT timestamp, name, channel, notes FROM notes
ORDER BY timestamp DESC";
my
$sth
=
$dbh
->prepare(
$sql
) or
die
$dbh
->errstr;
$sth
->execute;
my
(
$timestamp
,
$name
,
$channel
,
$notes
);
while
( (
$timestamp
,
$name
,
$channel
,
$notes
)
=
$sth
->fetchrow_array ) {
"<br><i>$timestamp</i>: <b>$name/$channel</b>: "
;
"$notes<br>"
;
}
"</body></html>\n"
;
BUGS
More tests would be nice.
NOTES
Module shamelessly stolen and slightly modified from Bot::BasicBot::Pluggable::Module::SimpleBlog by Kake.
TODO
Many things: Include web interface, have bot repeat back stored things, parse/store tags..
SEE ALSO
AUTHOR
Jess Robinson <castaway@desert-island.me.uk>
COPYRIGHT
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
CREDITS
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 233:
You forgot a '=back' before '=head1'