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.