Bump version and update Changes
[app-statsbot.git] / statsbot
CommitLineData
3cdbe256
MG
1#!/usr/bin/perl -w
2use v5.14;
3
4use App::Statsbot;
5use Getopt::Long;
6use sigtrap qw/die normal-signals/;
7
8GetOptions(
9 'debug!' => \$App::Statsbot::DEBUG,
10 'tick=i' => \$App::Statsbot::TICK,
11 'nickname=s' => \$App::Statsbot::NICKNAME,
12 'server=s' => \$App::Statsbot::SERVER,
13 'port=i' => \$App::Statsbot::PORT,
14 'ssl!' => \$App::Statsbot::SSL,
15 'channel=s' => \@App::Statsbot::CHANNELS,
16 'db=s' => \$App::Statsbot::DB,
17);
18
19App::Statsbot->run;
20
21__END__
22
23=encoding utf-8
24
25=head1 NAME
26
27statsbot - simple IRC bot that tracks time spent in a channel
28
29=head1 SYNOPSIS
30
31 statsbot --nickname=sbot --channel='#somechan'
32 # Bot will respond to queries of the forms:
33 # < mgv> !presence mgv
34 # < mgv> presence mgv '1 day'
35 # < mgv> BOTNICK: !presence mgv '1 year' 2
36 # < mgv> BOTNICK: presence mgv
37
38=head1 DESCRIPTION
39
40statsbot is a simple IRC bot that tracks the people that inhabit a
41channel. It is able to answer queries of the form "In the last <time
42interval>, how much time did <nick> spend in this channel?".
43
44It responds to queries of the form C<presence NICK [TIME
45[PRECISION]]>, optionally preceded by C<BOTNICK:> or C<BOTNICK,>.
46There can also be an optional "!" sign before the word "presence".
47
48where BOTNICK is the nickname of the bot, NICK is the nickname of a
49channel inhabitant, TIME is the interval that is considered, and
50PRECISION is the number of units to display. For example, if a
51PRECISION of 3 yields "1 hour, 2 minutes and 10 seconds", a PRECISION
52of 2 would yield "1 hour and 2 minutes" while a PRECISION of 1 would
53yield "1 hour".
54
55By default, the interval that is considered is one day and the result
56is displayed in hours.
57
58=head1 OPTIONS
59
60=over
61
62=item B<--debug>, B<--no-debug>
63
64If B<--debug>, prints some debug information. Defaults to B<--no-debug>.
65
66=item B<--tick>=I<60>
67
68How often (in seconds) to poll the channel for nicks. Defaults to 10
69seconds.
70
71=item B<--nickname>=I<"timebot">
72
73The nickname of the bot. Defaults to "statsbot".
74
75=item B<--server>=I<"irc.oftc.net">
76
77The IRC server. Defaults to "irc.freenode.net".
78
79=item B<--port>=I<6697>
80
81The port. Defaults to 6667.
82
83=item B<--ssl>, B<--no-ssl>.
84
85If B<--ssl>, connect via SSL. Defaults to B<--no-ssl>.
86
87=item B<--channel>=I<"#mychan">
88
89The channel that should be monitored. Multiple channels can be
90monitored by repeating this option.
91
92=item B<--db>=I</path/to/some/file.sqlite>
93
94Path to SQLite database. Must be writable. Will be created if it does
95not exist. Defaults to C</var/lib/statsbot/db>.
96
97=back
98
99=head1 SEE ALSO
100
101L<App::Statsbot>
102
103=head1 AUTHOR
104
105Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
106
107=head1 COPYRIGHT AND LICENSE
108
109Copyright (C) 2013-2015 by Marius Gavrilescu
110
111This library is free software; you can redistribute it and/or modify
112it under the same terms as Perl itself, either Perl version 5.20.2 or,
113at your option, any later version of Perl 5 you may have available.
114
115
116=cut
This page took 0.015504 seconds and 5 git commands to generate.