From a94f22a7f198fc2431ce4bb9da1983eae34dec71 Mon Sep 17 00:00:00 2001 From: Marc Mims Date: Fri, 4 May 2012 19:49:44 -0700 Subject: [PATCH] Added commands to add/remove users from lists --- lib/POE/Component/Server/Twirc.pm | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/lib/POE/Component/Server/Twirc.pm b/lib/POE/Component/Server/Twirc.pm index b6227dd..ea94087 100644 --- a/lib/POE/Component/Server/Twirc.pm +++ b/lib/POE/Component/Server/Twirc.pm @@ -313,6 +313,7 @@ sub twitter { if ( blessed $_ && $_->can('code') && $_->code == 502 ) { $_ = 'Fail Whale'; } + s/ at .* line \d+//; $self->twitter_error("$method -> $_"); undef; }; @@ -1426,6 +1427,44 @@ event report_spam_helper => sub { $self->twitter(report_spam => { screen_name => $spammer }); }; +=item add I to I + +Add a user to one of your lists. + +=cut + +event cmd_add => sub { $_[OBJECT]->_add_remove_list_member(qw/add to/, @_[ARG0, ARG1]) }; + +sub _add_remove_list_member { + my ( $self, $verb, $preposition, $channel, $args ) = @_; + + my ( $nick, $slug ) = ($args || '') =~ / + ^@?(\w+) # nick; strip leading @ if there is one + \s+$preposition\s+ + ([-\w]+) # the list-slug + \s*$ + /x; + + unless ( defined $nick ) { + $self->bot_says($channel, "usage: $verb $preposition "); + return; + } + + $self->twitter($verb . '_list_member' => { + owner_id => $self->twitter_id, + slug => $slug, + screen_name => $nick, + }); +}; + +=item remove I from I + +Add a user to one of your lists. + +=cut + +event cmd_remove => sub { $_[OBJECT]->_add_remove_list_member(qw/remove from/, @_[ARG0, ARG1]) }; + =item help Display a simple help message