The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Convos::Oembed;

=head1 NAME

Convos::Oembed - Generate oembed chunks.

=cut

use Mojo::Base 'Mojolicious::Controller';

=head1 METHODS

=head2 generate

Used to generate embed code to javascript.

=cut

sub generate {
  my $self    = shift->render_later;
  my $url     = $self->param('url');
  my $headers = $self->res->headers;

  #$header->etag(Mojo::Util::md5_sum($self->req->url->to_abs)); # not sure if this is a good idea
  $headers->cache_control('max-age=3600, must-revalidate');

  if ($url =~ /^http/) {
    $self->embed_link(
      $url => sub {
        my ($self, $link) = @_;
        my $embed_code = $link->to_embed;

        if ($embed_code =~ /^<a\s/) {    # do not want to embed links
          $self->render(layout => undef, text => '', status => 204);
        }
        else {
          $self->render(layout => 'oembed', text => $link->to_embed);
        }
      }
    );
  }
  else {
    return $self->render(text => '...', status => 400);
  }
}

=head1 AUTHOR

Jan Henning Thorsen - C<jhthorsen@cpan.org>

=cut

1;