VoteBot

Revision 17 as of 2009-03-06 22:45:22

Clear message

NAME

VoteBot - A simple IRC bot used in FreeNode's #ubuntuforums-beginners channel.

SYNOPSIS

perl ./voteBot.pl

DESCRIPTION

VoteBot is a simple IRC bot used in FreeNode's #ubuntuforums-beginners IRC channel and possibly in other rooms to establish some official form of voting. VoteBot includes public and private voting, and the public display of vote results. In addition to voting relating functions, VoteBot also prints the titles of URLs posted in the IRC channel and automatically warns users when compiledkernel post links as well as incorporates the ubotu database of factoids.

VoteBot is pre-release code and is by no means complete. Furthermore, it is to be expected that VoteBot will always be changing in functionality to meet the needs of the users and channels using the bot.

PRIVATE COMMANDS

The following commands can be issued to VoteBot by any user (unless otherwise specified) via /msg (/msg VoteBot COMMAND). Upon receiving these commands VoteBot will send the output back via a /msg to the user.

.join #CHANNEL (Admin Only!)

        Make VoteBot join #CHANNEL

.leave #CHANNEL (Admin Only!)

        Make VoteBot leave #CHANNEL

.say $MESSAGE to #CHANNEL/$PERSON (Admin Only!)

        Make VoteBot say $MESSAGE to $PERSON (via /msg) or in #CHANNEL

.me $ACTION to $NICK/#CHANNEL (Admin Only!)

        Make VoteBot send a CTCP ACTION to $NICK or #CHANNEL

.addFactoid $FACTOID|$RESPONSE (Admin Only!)

        Factoid "$FACTOID" with Response "$RESPONSE" Added!

.vhelp

        .vote [--non-voiced] [--no-msg] [--notify] \"TOPIC OF VOTE\"

.help

        To vote, please type either +1 to say that you agree with the topic in
        discussion, -1 to say that you disagree, or 0 to say that you are
        impartial.

.channels

        Reply with a list of the channels that VoteBot is in

.admins

        Reply with a list of the hosts of the bot admins

.ignored

        Reply with a list of the hosts of ignored users

.blocked

        Reply with a list of blocked phrases

.factChans

        Reply with a list of the channels that have factoids enabled.

.ckChans

        Reply with a list of the channels that have automatic compiledkernel
        link protection enabled.

.urlChans

        Reply with a list of the channels that have URL title fetching enabled

.meetingChans

        Reply with a list of the channels that have meeting mode enabled

.shutdown (Admin Only!)

        [No message is displayed in IRC]
        VoteBot disconnects from IRC and shuts down.
        "[$TIME_STAMP] VoteBot Has Been Shutdown By $YOURNICK" is displayed in
        the terminal.

.ck (Admin Only!)

        The compiledkernel list has been reset

.ignore $NICK (Admin Only!)

        $HOST ($NICK) has been added to the ignore list

.block $PHRASE (Admin Only!)

        $PHRASE has been added to the block list

.unignore $NICK (Admin Only!)

        $HOST ($NICK) has been removed from the ignore list

.unblock $PHRASE (Admin Only!)

        $PHRASE has been removed from the block list

.refreshIgnored (Admin Only!)

        The ignore list has been refreshed.

.refreshBlocked (Admin Only!)

        The block list has been refreshed.

.refreshAdmins (Admin Only!)

        The admin list has been refreshed.

.refreshFactoids (Admin Only!)

        The factoid database has been refreshed.

.addChannel #CHANNEL (Admin Only!)

        #CHANNEL has been added to the list of channels to autojoin.

.removeChannel #CHANNEL (Admin Only!)

        #CHANNEL has been removed from the list of channels to autojoin.

.removeFactoid $FACTOID (Admin Only!)

        $FACTOID has been removed from the factoid database.

.version

        Revision: $REVISION

.revision

        Revision: $REVISION

.manurl $PACKAGE

        $PACKAGE: $MANPAGE_URL

.man $PACKAGE

        $MANPAGE

.temp $TEMP

        Converts $TEMP to Farenheit, Celsius, or Kelvins.
        $TEMP is a number followed by either a C (Celsius),
        F (Farenheit), or K (Kelvin), which shows the unit
        of the temperature.

.btmeeting

        The next Beginners Team meeting is scheduled for $DATE
        The date is fetched from https://wiki.ubuntu.com/BeginnersTeam/Meetings

.wiki $TOPIC

        Displays a summary about $TOPIC from http://www.wikipedia.org/

.google $QUERY

        [$PAGE_TITLE] $PAGE_URL
        Returns the title and URL of the first result for $QUERY on
        http://www.google.com/

!FACTOID (Voiced Users Only!)

        $FACTOID_RESPONSE

!FACTOID | $NICK

        $NICK: $FACTOID_RESPONSE

!FACTOID > $NICK

        /msg $NICK $FACTOID_RESPONSE

.vstatus (Admin Only!)

        Displays a detailed status of the progress of a vote. Information
        displayed includes the number of people who have voted and the number
        of people who voted +1, -1, and 0. It does not display who voted +1,
        -1, and 0. It simply displays how many people voted for each option.

.vote (Admin Only!)

        End a vote that is in progress.

+1, -1, and 0

        These three commands are used to vote. Unless the --non-voiced option
        was used when the vote was started, only voiced users will be allowed
        to vote. You are able to change your vote by simply voting again. These
        commands only work when a vote is going on. You will receive a private
        message from VoteBot confirming that it received your vote.

PUBLIC COMMANDS

The following commands can be issued to VoteBot by any user (unless otherwise specified) in the same IRC channel as VoteBot. Upon receiving these commands VoteBot will post a message to the IRC channel.

PERL!!!

        PERL!!!

PYTHON!!!

        PERL!!!

BASH!!!

        There are no Easter Eggs in this program.

.help

        To vote in $channel, please type either +1 to say that you agree with
        the topic in discussion, -1 to say that you disagree, or 0 to say that
        you are impartial.

.version

        Revision: $REVISION

.revision

        Revision: $REVISION

!FACTOID (Voiced Users Only!)

        $FACTOID_RESPONSE

!FACTOID | $NICK

        $NICK: $FACTOID_RESPONSE

!FACTOID > $NICK

        /msg $NICK $FACTOID_RESPONSE

.cklinks

        Do not open any links from compiledkernel!

.cklinks | $NICK

        $NICK: Do not open any links from compiledkernel!

.manurl $PACKAGE

        $PACKAGE: $MANPAGE_URL

.man $PACKAGE

        $MANPAGE

$URL from compiledkernel (Automatic CK Link Protection must be enabled!)

        Please be cautious when opening links from compiledkernel!

$URL (URL Title Fetching must be enabled)

        $TITLE_OF_WEBSITE

.block $PHRASE (Admin Only!)

        $PHRASE has been added to the block list

.unblock $PHRASE (Admin Only!)

        $PHRASE has been removed from the block list

.refreshBlocked (Admin Only!)

        The block list has been refreshed.

.blocked

        Reply with a list of blocked phrases

.addFactoid $FACTOID|$RESPONSE (Admin Only!)

        Factoid "$FACTOID" with Response "$RESPONSE" Added!

.shutdown (Admin Only!)

        [No message is displayed in IRC]
        VoteBot disconnects from IRC and shuts down.
        "I<[$TIME_STAMP] VoteBot Has Been Shutdown By $YOURNICK>" is displayed in
        the terminal.

.meeting [$TITLE] (Admin Only!)

        =-=-=Meeting mode enabled/disabled=-=-=
        When enabled, sends a private message to everyone who joins the
        channel, notifying them that a meeting is in progress.

.url (Admin Only!)

        URL title fetching enabled/disabled
        When enabled, VoteBot will automatically fetch the titles of any
        website mentioned in the channel.

.ck (Admin Only!)

        Automatic CK Link Protection enabled/disabled.
        When enabled, a warning message will be displayed when compiledkernel
        sends a link to the channel.

.factoids (Admin Only!)

        Factoids have been enabled/disabled.
        When enabled, voiced users will be able to use the factoids from within
        an IRC channel.

.temp $TEMP

        Converts $TEMP to Farenheit, Celsius, or Kelvins.
        $TEMP is a number followed by either a C (Celsius),
        F (Farenheit), or K (Kelvin), which shows the unit
        of the temperature.

.btmeeting

        The next Beginners Team meeting is scheduled for $DATE
        The date is fetched from https://wiki.ubuntu.com/BeginnersTeam/Meetings

.wiki $TOPIC

        Displays a summary about $TOPIC from http://www.wikipedia.org/

.google $QUERY

        [$PAGE_TITLE] $PAGE_URL
        Returns the title and URL of the first result for $QUERY on
        http://www.google.com/

.join #CHANNEL (Admin Only!)

        Make VoteBot join #CHANNEL

.leave #CHANNEL (Admin Only!)

        Make VoteBot leave #CHANNEL

.say $MESSAGE to #CHANNEL/$PERSON (Admin Only!)

        Make VoteBot say $MESSAGE to $PERSON (via /msg) or in #CHANNEL

.me $ACTION to $NICK/#CHANNEL (Admin Only!)

        Make VoteBot send a CTCP ACTION to $NICK or #CHANNEL

.channels

        Reply with a list of the channels that VoteBot is in

.admins

        Reply with a list of the hosts of the bot admins

.ignored

        Reply with a list of the hosts of ignored users

.factChans

        Reply with a list of the channels that have factoids enabled.

.ckChans

        Reply with a list of the channels that have automatic compiledkernel
        link protection enabled.

.urlChans

        Reply with a list of the channels that have URL title fetching enabled

.meetingChans

        Reply with a list of the channels that have meeting mode enabled

.vstatus

        $NBR People Have Currently Voted.

.vote [--non-voiced] [--no-msg] [--notify] ["$TITLE"] (Admin Only!)

        Start or stop a vote.

        --non-voiced allows non-voiced users to participate

        --no-msg disables voting via /msg

        --notify sends a private message to all voiced users (and non-voiced
        users if --non-voiced was used) telling them that a vote is going on.
        It also notifies them of the results of the vote.

        $TITLE is whatever the vote is about.

+1, -1, and 0

        These three commands are used to vote. Unless the --non-voiced option
        was used when the vote was started, only voiced users will be allowed
        to vote. You are able to change your vote by simply voting again. These
        commands only work when a vote is going on. You will receive a private
        message from VoteBot confirming that it received your vote.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

On Debian GNU/Linux systems, the complete text of the GNU General Public License can be found in the /usr/share/common-licenses/GPL file.

AUTHORS

Nathan Handler <nhandler@ubuntu.com> Robb Munson <robbmunson@fedoraproject.org>

BUGS

Please report all bugs at https://bugs.launchpad.net/votebot