NAME
Mojolicious::Plugin::LinkEmbedder - Convert a URL to embedded content
VERSION
0.23
DESCRIPTION
This module can transform a URL to an iframe, image or other embeddable content.
SYNOPSIS
Simple version
use Mojolicious::Lite;
plugin LinkEmbedder => { route => '/embed' };
Full control
plugin 'LinkEmbedder';
get '/embed' => sub {
my $c = shift;
$c->delay(
sub {
my ($delay) = @_;
$c->embed_link($c->param('url'), $delay->begin);
},
sub {
my ($delay, $link) = @_;
$c->respond_to(
json => {
json => {
media_id => $link->media_id,
url => $link->url->to_string,
},
},
any => { text => $link->to_embed }
);
}
);
};
Example with caching
plugin 'LinkEmbedder';
get '/embed' => sub {
my $c = shift;
my $url = $c->param('url');
my $cached;
$c->delay(
sub {
my ($delay) = @_;
return $delay->pass($cached) if $cached = $c->cache->get($url);
return $c->embed_link($c->param('url'), $delay->begin);
},
sub {
my ($delay, $link) = @_;
$link = $link->TO_JSON if UNIVERSAL::can($link, 'TO_JSON');
$c->cache->set($url => $link);
$c->respond_to(
json => {
json => {
media_id => $link->{media_id},
url => $link->{url},
},
},
any => { text => $link->{html} }
);
}
);
};
SUPPORTED LINKS
Mojolicious::Plugin::LinkEmbedder::Link::Video::Collegehumor
Mojolicious::Plugin::LinkEmbedder::Link::Text::PasteScsysCoUk
METHODS
embed_link
See "SYNOPSIS".
register
$app->plugin('LinkEmbedder' => \%config);
Will register the "embed_link" helper which creates new objects from Mojolicious::Plugin::LinkEmbedder::Default. %config
is optional but can contain:
route => $str|$obj
Use this if you want to have the default handler to do link embedding. The default handler is shown in "SYNOPSIS".
$str
is just a path, while$obj
is a Mojolicious::Routes::Route object.
DISCLAIMER
This module might embed javascript from 3rd party services.
Any damage caused by either evil DNS takeover or malicious code inside the javascript is not taken into account by this module.
If you are aware of any security risks, then please let us know.
COPYRIGHT AND LICENSE
Copyright (C) 2014, Jan Henning Thorsen
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.
AUTHOR
Jan Henning Thorsen - jhthorsen@cpan.org
Joel Berger, jberger@cpan.org
Marcus Ramberg - mramberg@cpan.org