NAME
Bot::Backbone::Service::Fact::Keyword - Memorize keywords and respond to them when mentioned
VERSION
version 0.142250
SYNOPSIS
# in the bot config
service keyword => (
service => 'Fact::Keyword',
frequency => 0.25,
);
# in the chat
alice> !keyword bot That's my name, don't wear it out.
alice> hello bot
alice> i said bot, hello
alice> you dumb bot
bot> That's my name, don't wear it out.
alice> !forget_keyword bot
DESCRIPTION
Allows members of the chat to establish a set of keywords that the bot can respond to a configurable percentage of the time. Each keyword can have more than one response associated with it, in which case, a response is chosen at random.
DISPATCHER
!keyword
!keyword name text of the response
This is used to tell the bot to memorize a keyword. The first word given ot the command is the keyword to trigger on. The remainder is the response to the bot should give when it encounters the keyword.
!forget_keyword
!forget_keyword name
!forget_keyword name text of the response
This command allows the chat user to tell the bot to forget the a keyword or particular response. In the first form, all responses to the keyword that have been memorized will be deleted. In the second form, only the response given for that keyword will be forgotten.
ATTRIBUTES
frequency
This is a value between 0 and 1 that determines how often the bot will search chat texts for keywords. The reason for this is twofold:
If the bot always responded to every keyword, it's likely the bot would become annoying in most cases.
There's a small performance penalty with the way this works. The bot has to use every word in the text to search for a keyword. Chances are this is not a big problem, but it exists.
METHODS
load_schema
This is used by the Bot::Backbone::Service::Role::Storage role to setup the fact_keywords
table used to store keywords for use with this service.
learn_keyword
This implements the !keyword
command to memorize keywords.
forget_keyword
This implements teh !forget_keyword
command to forget keywords.
recall_keyword_sometimes
This searches texts in the chat according to the "frequency" setting for keywords. If a keyword is found on one of those searches, the response will be sent back to the chat.
initialize
No op.
AUTHOR
Andrew Sterling Hanenkamp <hanenkamp@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Qubling Software LLC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.