App-Ikachan
view release on metacpan or search on metacpan
bin/ikachan view on Meta::CPAN
my $code = sub {
my $req = Plack::Request->new(shift);
my $method = $req->method;
my $path = $req->path;
if ($method eq 'POST' && ! $is_connect) {
my $html = q{<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ikachan</title>
<head>
<body>
can not connect to irc server
</body>
</html>};
my $res = Plack::Response->new(503);
$res->content_type('text/html; charset=utf-8');
$res->content_length(length $html);
$res->body($html);
return $res->finalize;
}
if ($method eq 'GET') {
if ($path eq '/channel_list') {
my $list = [ keys %{ $join_channels } ];
return rendar(200, join("\n", @$list));
} elsif ($path eq '/') {
my $base = $req->base;
my $logo = get_logo();
my $css = get_css();
my $html =<<HTML;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ikachan</title>
<style>
${css}
</style>
<head>
<body>
<div class="container">
<div class="row"><div class="span12">
<h1>
bin/ikachan view on Meta::CPAN
<input type="submit" value="post" class="btn" />
</form>
</section>
</div>
</div>
</body>
</html>
HTML
my $res = Plack::Response->new(200);
$res->content_type('text/html; charset=utf-8');
$res->content_length(length $html);
$res->body($html);
return $res->finalize;
}
} elsif ($method eq 'POST') {
my $channel = $req->param('channel');
if ($path eq '/join') {
return rendar(403, "joinned channel: $channel") if $join_channels->{$channel};
my $channel_keyword = $req->param('channel_keyword');
( run in 0.264 second using v1.01-cache-2.11-cpan-4d50c553e7e )