The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package App::Mobirc::Web::Base;
use strict;
use warnings;
use base qw/Exporter/;
use Encode qw/decode_utf8/;
use App::Mobirc::Util qw/global_context/;
use Carp qw(croak);

our @EXPORT = qw/global_context config server web_context session req mobile_attribute param is_iphone/;

sub config ()           { global_context->config }
sub server ()           {
    my $server_id = param('server') // croak "Missing server name";
    global_context->get_server($server_id);
}

sub web_context ()      { App::Mobirc::Web::Handler->web_context }
sub session ()          { web_context->session }
sub req ()              { web_context->req }
sub mobile_attribute () { web_context->mobile_attribute() }
sub param ($)           { decode_utf8( scalar req->param( $_[0] ) ) }

sub is_iphone {
    ( mobile_attribute()->user_agent =~ /(?:iPod|iPhone)/ ) ? 1 : 0;
}


1;