Group
Extension

Matches 6

LinkEmbedder ( J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz, JHTHORSEN, 2021; MetaCPAN )
LinkEmbedder/lib/LinkEmbedder.pm ( view source; MetaCPAN )
package LinkEmbedder;
use Mojo::Base -base;

use LinkEmbedder::Link;
use Mojo::JSON;
use Mojo::Loader 'load_class';
use Mojo::Promise;
use Mojo::UserAgent;

use constant TLS => eval { require IO::Sock
rve {
  my ($self, $c, $args) = @_;
  my $format = $c->stash('format') || $c->param('format') || 'json';
  my $log_level;

  $args ||= {url => $c->param('url')};
  $log_level = delete $args->{log_leve
>html)   if $format eq 'html';

    my $json = $err ? {err => $err->{code} || 500} : $link->TO_JSON;
    return $c->render(json => $json) unless $format eq 'jsonp';

    my $name = $c->param('callback
LinkEmbedder ( J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz, JHTHORSEN, 2021; MetaCPAN )
LinkEmbedder/lib/LinkEmbedder/Link/Github.pm ( view source; MetaCPAN )
scription($text);
    last;
  }
}

sub _parse_gist {
  my ($self, $tx) = @_;
  $self->_learn_from_json($tx);
  return $self unless $self->{files};
  return $self->type('rich')->template([__PACKAGE__, 
LinkEmbedder ( J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz, JHTHORSEN, 2021; MetaCPAN )
LinkEmbedder/lib/LinkEmbedder/Link/Basic.pm ( view source; MetaCPAN )
package LinkEmbedder::Link::Basic;
use Mojo::Base 'LinkEmbedder::Link';

use Mojo::JSON;
use Mojo::Util 'trim';

my $PHOTO_RE = qr!\.(?:jpg|png|gif|webp)\b!i;
my $VIDEO_RE = qr!\.(?:mpg|mpeg|mov|mp4|o
elf->SUPER::_learn_from_dom($dom);

  $tmp = $dom->at('script[type="application/ld+json"]');
  $self->_learn_from_json_schema($tmp->text) if $tmp;

  # Bitbucket hack
  $tmp = $dom->at('div.codehilite
earn_from_json_schema {
  my ($self, $json) = @_;
  eval { $json = Mojo::JSON::from_json($json) } unless ref $json eq 'HASH';
  return                                        unless ref $json eq 'HASH'
LinkEmbedder ( J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz, JHTHORSEN, 2021; MetaCPAN )
LinkEmbedder/lib/LinkEmbedder/Link/Travis.pm ( view source; MetaCPAN )
_from_json(shift) });
}

sub _learn_from_json {
  my ($self, $tx) = @_;
  my $json = $tx->res->json;

  $self->type('rich');

  if (my $description = $json->{message}) {
    $description = "$json->{au
on" if $json->{author_name};
    $self->description($description);
  }

  if ($json->{finished_at}) {
    $self->title(sprintf 'Build %s at %s', $json->{status} ? 'failed' : 'succeeded', $json->{finis
hed_at});
  }
  elsif ($json->{started_at}) {
    $self->title(sprintf 'Started building at %s.', $json->{started_at});
  }
  else {
    $self->title('Build has not been started.');
  }

  return $sel
LinkEmbedder ( J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz, JHTHORSEN, 2021; MetaCPAN )
LinkEmbedder/lib/LinkEmbedder/Link/oEmbed.pm ( view source; MetaCPAN )
r %API = (
  'ted.com'     => 'https://www.ted.com/services/v1/oembed.json',
  'vimeo.com'   => 'https://vimeo.com/api/oembed.json',
  'youtube.com' => 'https://www.youtube.com/oembed',
  'youtu.be'  

  my $api_url = $self->_api_url;
  return $self->_get_p($api_url)->then(sub { $self->_learn_from_json(shift) }) if $api_url;

  $self->error({message => "Unknown oEmbed provider for @{[$self->url]}",
LinkEmbedder ( J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz, JHTHORSEN, 2021; MetaCPAN )
LinkEmbedder/lib/LinkEmbedder/Link.pm ( view source; MetaCPAN )
title'     => ['meta[property="og:title"]',       'meta[name="twitter:title"]', 'title'],
);

my @JSON_ATTRS = (
  'author_name',      'author_url',    'cache_age',       'height', 'provider_name', 'p
O_JSON {
  my $self = shift;
  my %json;

  for my $attr (grep { defined $self->$_ } @JSON_ATTRS) {
    $json{$attr} = $self->$attr;
    $json{$attr} = "$json{$attr}" if $attr =~ /url$/;
  }

  $json{
html} = $self->html unless $self->type eq 'link';

  return \%json;
}

sub _dump { Mojo::Util::dumper($_[0]->TO_JSON); }

sub _el {
  my ($self, $dom, @sel) = @_;
  @sel = @{$DOM_SEL{$sel[0]}} if $DOM

Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.