Skip to content

Commit

Permalink
Openwx插件增加post_message_filter参数来过滤上报的消息内容
Browse files Browse the repository at this point in the history
  • Loading branch information
hexsum committed Apr 8, 2019
1 parent 8b21d9a commit 0a35a46
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/Mojo/Weixin/Message/Handle.pm
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 385,7 @@ sub _parse_sync_data {
$msg->{app_url} = $dom->at('msg > appmsg > url')->content;
$msg->{app_desc} = $dom->at('msg > appmsg > des')->content;
for( ($msg->{app_title},$msg->{app_desc},$msg->{app_url},$msg->{app_name}) ){
s/<!\[CDATA\[(.*?)\]\]>/$1/g;
s/<!\[CDATA\[(.*?)\]\]>/$1/sg;
}
$msg->{app_url} = Mojo::Util::html_unescape($msg->{app_url});
$msg->{content} = "[应用分享]标题:@{[$msg->{app_title} || '未知']}\n[应用分享]描述:@{[$msg->{app_desc} || '未知']}\n[应用分享]应用:@{[$msg->{app_name} || '未知']}\n[应用分享]链接:@{[$msg->{app_url} || '未知']}";
Expand Down
14 changes: 14 additions & 0 deletions lib/Mojo/Weixin/Plugin/Openwx.pm
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 155,13 @@ sub call{
my $post_json = $msg->to_json_hash;
delete $post_json->{media_data} if ($post_json->{format} eq "media" and ! $data->{post_media_data});
$post_json->{post_type} = "receive_message";

if(defined $data->{post_message_filter} and ref $data->{post_message_filter} eq 'HASH'){
for my $key (keys %{$data->{post_message_filter}}){
return if exists $post_json->{$key} and $post_json->{$key} ne $data->{post_message_filter}{$key};
}
}

$check_event_list->append($post_json);
$client->stdout_line($client->to_json($post_json)) if $data->{post_stdout};
$client->http_post($data->{post_api},json=>$post_json,sub{
Expand Down Expand Up @@ -192,6 199,13 @@ sub call{
my $post_json = $msg->to_json_hash;
delete $post_json->{media_data} if ($post_json->{format} eq "media" and ! $data->{post_media_data});
$post_json->{post_type} = "send_message";

if(defined $data->{post_message_filter} and ref $data->{post_message_filter} eq 'HASH'){
for my $key (keys %{$data->{post_message_filter}}){
return if exists $post_json->{$key} and $post_json->{$key} ne $data->{post_message_filter}{$key};
}
}

$check_event_list->append($post_json);
$client->stdout_line($client->to_json($post_json)) if $data->{post_stdout};
$client->http_post($data->{post_api},json=>$post_json,sub{
Expand Down

0 comments on commit 0a35a46

Please sign in to comment.