LinkEmbedder - Embed / expand oEmbed resources and other URL / links
use LinkEmbedder; my $embedder = LinkEmbedder->new(force_secure => 1); # In some cases, you have to set a proper user_agent to get complete # pages. This is done automatically by $embedder->serve() $embedder->ua->transactor->name("Mozilla..."); $embedder->get_p("https://xkcd.com/927")->then(sub { my $link = shift; print $link->html; })->wait;
LinkEmbedder is a module that can expand an URL into a rich HTML snippet or simply to extract information about the URL.
This module replaces Mojolicious::Plugin::LinkEmbedder.
Go to https://thorsen.pm/linkembedder to see a demo of how it works.
These web pages are currently supported:
https://imgur.com/
https://instagram.com/
Instagram need some additional JavaScript. Please look at https://github.com/jhthorsen/linkembedder/blob/master/examples/embedder.pl and https://www.instagram.com/developer/embedding/ for more information.
https://appear.in/
https://gist.github.com
https://github.com
http://ix.io
https://maps.google.com
https://metacpan.org
https://paste.fedoraproject.org/
https://paste.opensuse.org
http://paste.scsys.co.uk
https://pastebin.com
https://www.spotify.com/
https://ted.com
https://travis-ci.org
https://twitter.com
Twitter need some additional JavaScript. Please look at https://github.com/jhthorsen/linkembedder/blob/master/examples/embedder.pl and https://dev.twitter.com/web/javascript/initialization for more information.
https://vimeo.com
https://youtube.com
https://www.xkcd.com/
HTML
Any web page will be parsed, and "og:", "twitter:", meta tags and other significant elements will be used to generate a oEmbed response.
Images
URLs that looks like an image is automatically converted into an img tag.
Video
URLs that looks like a video resource is automatically converted into a video tag.
$bool = $self->force_secure; $self = $self->force_secure(1);
This attribute will translate any unknown http link to https.
This attribute is EXPERIMENTAL. Feeback appreciated.
$ua = $self->ua;
Holds a Mojo::UserAgent object.
$hash_ref = $self->url_to_link;
Holds a mapping between host names and link class to use.
$self = $self->get_p($url, sub { my ($self, $link) = @_ });
Same as "get_p", but takes a callback instead of returning a Mojo::Promise.
$promise = $self->get_p($url)->then(sub { my $link = shift });
Used to construct a new LinkEmbedder::Link object and retrieve information about the URL.
$self = $self->serve(Mojolicious::Controller->new, $url);
Used as a helper for Mojolicious web applications to reply to an oEmbed request. Will also set "name" in Mojo::UserAgent::Transactor for "ua" if the incoming request contains a "User-Agent" header.
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.
To install LinkEmbedder, copy and paste the appropriate command in to your terminal.
cpanm
cpanm LinkEmbedder
CPAN shell
perl -MCPAN -e shell install LinkEmbedder
For more information on module installation, please visit the detailed CPAN module installation guide.