NAME
POE::Component::IRC::Plugin::ImageMirror - A PoCo-IRC plugin which
uploads select images to a mirror service
SYNOPSIS
To quickly get an IRC bot with this plugin up and running, you can use
App::Pocoirc:
$ pocoirc -s irc.perl.org -j '#bots' -a ImageMirror
Or use it in your code:
use POE::Component::IRC::Plugin::ImageMirror;
# mirror all images from 4chan.org
$irc->plugin_add(ImageMirror => POE::Component::IRC::Plugin::ImageMirror->new(
URI_match => [
qr{4chan\.org/\w+/src/.*(?i:jpe?g|gif|png)$},
],
));
DESCRIPTION
POE::Component::IRC::Plugin::ImageMirror is a POE::Component::IRC
plugin. It looks for image URLs in the channel log and uploads the
images to Imageshack and Imgur, then prints a short description of the
image along with the new URLs.
<avar> http://images.4chan.org/b/src/1267339589262.gif
-MyBot:#channel- gif (318 x 241) - http://imgur.com/RWcSE.gif - http://img535.imageshack.us/img535/9685/1267339589262.gif
This plugin makes use of POE::Component::IRC::Plugin::URI::Find. An
instance will be added to the plugin pipeline if it is not already
present.
METHODS
"new"
Takes the following optional arguments:
'Channels', an array reference of channels names. If you don't supply
this, images will be mirrored in all channels.
'URI_match', an array reference of regex objects. Any url found must
match at least one of these regexes if it is to be uploaded. If you
don't supply this parameter, a default regex of
"qr/(?i:jpe?g|gif|png)$/" is used.
'URI_subst', an hash reference of regex/string pairs. These
substitutions will be done on the accepted URIs before they are
processed further.
Example:
# always fetch 7chan images via http, not https
URI_subst => [
qr{(?<=^)https(?=://(?:www\.)?7chan\.org)} => 'http',
]
'URI_title', whether or not to include a title produced by URI::Title.
Defaults to true.
'Imgur_user', an Imgur username. If provided, the images uploaded to
Imgur will be under this account rather than anonymous.
'Imgur_pass', an Imgur account password to go with 'ImgurUser'.
'Method', how you want messages to be delivered. Valid options are
'notice' (the default) and 'privmsg'.
'Eat', when enabled, will prevent further processing of
"irc_urifind_uri" events by other plugins for URIs which this plugin
mirrors. False by default.
Returns a plugin object suitable for feeding to POE::Component::IRC's
"plugin_add" method.
AUTHOR
Hinrik Örn Sigurðsson, hinrik.sig@gmail.com
Imageshack-related code provided by Ævar Arnfjörð Bjarmason
<avar@cpan.org>.
LICENSE AND COPYRIGHT
Copyright 2010 Hinrik Örn Sigurðsson
This program is free software, you can redistribute it and/or modify it
under the same terms as Perl itself.