Skip to content

Instantly share code, notes, and snippets.

View kraih's full-sized avatar

Sebastian Riedel kraih

View GitHub Profile
use Mojolicious::Lite;
websocket '/echo' => sub {
my $self = shift;
$self->on(message => sub {
my ($self, $message) = @_;
$self->send("echo: $message");
});
};
use Mojolicious::Lite;
get '/title' => sub {
my $self = shift;
my $url = $self->param('url');
$self->render(text =>
$self->client->get($url)->success->dom->at('title')->text);
};
app->start;
@kraih
kraih / proxy.pl
Last active September 5, 2015 09:34
use Mojolicious::Lite;
my $feed = 'http://blog.kraih.com/rss.xml';
get '/blog/atom/perl/atom.xml' => sub {
my $self = shift;
$self->ua->max_redirects(5)->get($feed => sub {
$self->render(text => shift->res->body, format => 'rss');
});
};
#!/usr/bin/env perl
use strict;
use warnings;
# Use bundled libraries
use FindBin;
use lib "$FindBin::Bin/../lib";
# Mamma Mia! The cruel meatball of war has rolled onto our laps and ruined
{hypnotoad => {listen => ['https://*:443?cert=erver.crt&key=server.key&ca=ca.crt']}}
@kraih
kraih / tls_client.pl
Last active September 24, 2015 15:17
use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new(cert => 'client.crt', key => 'client.key');
$ua->get('https://localhost/s3cret.html')->res->dom('#launch-codes > li')->each(sub {
print shift->text;
});
@kraih
kraih / gist:767559
Last active September 24, 2015 15:17
% ./myapp.pl daemon --listen https://*:443?cert=server.crt&key=server.key&ca=ca.crt
@@ cookies.html.ep
% title 'We love cookies!';
% layout 'tasty';
Mmmmmmmm... chocolate chips!
@@ layouts/tasty.html.ep
<!doctype html><html>
<head><title><%= title %></title></head>
<body><%= content %></body>
</html>
% mojo generate lite_app
[exist] /Users/sri
[write] /Users/sri/myapp.pl
[chmod] myapp.pl 744
% plackup myapp.pl
HTTP::Server::PSGI: Accepting connections at http://0:5000/
#!/usr/bin/env perl
use Mojolicious::Lite;
use Plack::Builder;
get '/welcome' => sub {
my $self = shift;
$self->render(text => 'Hello Mojo!');
};