#!/usr/bin/env perl
use strict;
use Getopt::Long;
use Mojo::UserAgent;
use Mojo::Util qw(url_escape encode decode);
my %API = (
send_message => 'https://127.0.0.1:3000/openwx/send_message',
);
my $ua = Mojo::UserAgent->new;
if($ARGV[0] eq "-l" or $ARGV[0] eq "-list"){
my $friend = $ua->get("https://127.0.0.1:3000/openwx/get_friend_info")->res->json;
print "好友:\n";
for(@{$friend}){
print encode("utf8",$_->{displayname}) || "NULL","\t",$_->{id},"\n";
}
print "=====\n";
print "群组:\n";
my $group = $ua->get("https://127.0.0.1:3000/openwx/get_group_info")->res->json;
for(@{$group}){
print encode("utf8",$_->{displayname}) || "NULL","\t",$_->{id},"\n";
}
exit;
}
elsif(@ARGV == 0 or $ARGV[0] eq "-h" or $ARGV[0] eq "--help"){
print <<USAGE;
使用帮助
-h 打印帮助内容
-id 好友或群组的id
-account 好友的帐号
发送消息示例:
perl ./openwx-client.pl -id @329be1b81d62b7c507e9329d2a47d4a0 你好
perl ./openwx-client.pl -account test 你好
USAGE
exit;
}
my ($id,$account,@content,$content);
GetOptions (
"id=s" => \$id,
"account=s" => \$account,
"<>" => sub{push @content ,$_[0]},
)or die $!;
$content = join " ",@content;
$content=~s/\\n/\n/g;
$content = url_escape( $content);
die "需要输入发送内容\n" unless defined $content;
my $tx;
if(defined $id){
$tx = $ua->get($API{"send_message"} . "?id=$id&content=$content");
}
elsif(defined $account){
$tx = $ua->get($API{"send_message"} . "?account=$account&content=$content");
}
else{
die "参数错误\n";
}
warn $tx->req->to_string;
warn $tx->res->to_string;