# NAME LinkEmbedder - Embed / expand oEmbed resources and other URL / links # SYNOPSIS 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; # DESCRIPTION [LinkEmbedder](https://metacpan.org/pod/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](https://metacpan.org/pod/Mojolicious%3A%3APlugin%3A%3ALinkEmbedder). Go to [https://thorsen.pm/linkembedder](https://thorsen.pm/linkembedder) to see a demo of how it works. These web pages are currently supported: - [https://dropbox.com/](https://dropbox.com/) - [https://imgur.com/](https://imgur.com/) - [https://instagram.com/](https://instagram.com/) Instagram need some additional JavaScript. Please look at [https://github.com/jhthorsen/linkembedder/blob/master/examples/embedder.pl](https://github.com/jhthorsen/linkembedder/blob/master/examples/embedder.pl) and [https://www.instagram.com/developer/embedding/](https://www.instagram.com/developer/embedding/) for more information. - [https://appear.in/](https://appear.in/) - [https://gist.github.com](https://gist.github.com) - [https://github.com](https://github.com) - [http://ix.io](http://ix.io) - [https://maps.google.com](https://maps.google.com) - [https://metacpan.org](https://metacpan.org) - [https://paste.fedoraproject.org/](https://paste.fedoraproject.org/) - [https://paste.opensuse.org](https://paste.opensuse.org) - [http://paste.scsys.co.uk](http://paste.scsys.co.uk) - [https://pastebin.com](https://pastebin.com) - [https://www.spotify.com/](https://www.spotify.com/) - [https://ted.com](https://ted.com) - [https://travis-ci.org](https://travis-ci.org) - [https://twitter.com](https://twitter.com) Twitter need some additional JavaScript. Please look at [https://github.com/jhthorsen/linkembedder/blob/master/examples/embedder.pl](https://github.com/jhthorsen/linkembedder/blob/master/examples/embedder.pl) and [https://dev.twitter.com/web/javascript/initialization](https://dev.twitter.com/web/javascript/initialization) for more information. - [https://vimeo.com](https://vimeo.com) - [https://youtube.com](https://youtube.com) - [https://www.xkcd.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. # ATTRIBUTES ## force\_secure $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 $ua = $self->ua; Holds a [Mojo::UserAgent](https://metacpan.org/pod/Mojo%3A%3AUserAgent) object. ## url\_to\_link $hash_ref = $self->url_to_link; Holds a mapping between host names and [link class](https://metacpan.org/pod/LinkEmbedder%3A%3ALink) to use. # METHODS ## get $self = $self->get_p($url, sub { my ($self, $link) = @_ }); Same as ["get\_p"](#get_p), but takes a callback instead of returning a [Mojo::Promise](https://metacpan.org/pod/Mojo%3A%3APromise). ## get\_p $promise = $self->get_p($url)->then(sub { my $link = shift }); Used to construct a new [LinkEmbedder::Link](https://metacpan.org/pod/LinkEmbedder%3A%3ALink) object and retrieve information about the URL. ## serve $self = $self->serve(Mojolicious::Controller->new, $url); Used as a helper for [Mojolicious](https://metacpan.org/pod/Mojolicious) web applications to reply to an oEmbed request. Will also set ["name" in Mojo::UserAgent::Transactor](https://metacpan.org/pod/Mojo%3A%3AUserAgent%3A%3ATransactor#name) for ["ua"](#ua) if the incoming request contains a "User-Agent" header. # AUTHOR Jan Henning Thorsen # COPYRIGHT AND LICENSE This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.