Group
Extension

Webqq-Client/lib/Plack/App/Openqq/SendSessMessage.pm

package Plack::App::Openqq::SendSessMessage;
use parent qw(Plack::Component);
use URI::Escape qw(uri_unescape);
use JSON;
use Encode;;
sub call{
    my $self = shift;
    my $client = $self->{client};
    my $env  = shift;
    my %query_string;
    for my $query_string (split(/&/,$env->{QUERY_STRING} )){
        my($key,$value) = split /=/,$query_string;
        $query_string{$key} = $value;
    }  
    my $uin;
    if(defined $query_string{qq}){
        $uin = $client->get_uin_from_qq($query_string{qq});
    }
    else{
        $uin = $query_string{uin};
    }
    my $content = uri_unescape($query_string{content});   
    my $gid ;
    if(defined $query_string{number}){
        $gid = $client->get_uin_from_number($query_string{number});
    }
    else{
        $gid = $query_string{gid};   
    }
    my $did = $query_string{did};   

    return sub {
        my $responder = shift;
        my $msg = $client->create_sess_msg(to_uin=>$uin,content=>$content,gid=>$gid,did=>$did);
        $msg->{cb} = sub{
            my($msg,$is_success,$status) = @_;
            my $res = {
                msg_id  =>  $msg->{msg_id},
                code    =>  $is_success,
                status  =>  decode("utf8",$status),
            };
            my $json = JSON->new->utf8->encode($res);
            $responder->([
                200,
                ['Content-Type' => 'text/plain'],
                [$json],
            ]);
        };
        $client->send_sess_message($msg);
    };
}
1;


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