App-GoogleSearchPerlmonksUser
view release on metacpan or search on metacpan
lib/App/GoogleSearchPerlmonksUser.pm view on Meta::CPAN
package App::GoogleSearchPerlmonksUser;
our $DATE = '2017-07-08'; # DATE
our $VERSION = '0.02'; # VERSION
use 5.010001;
use strict;
use warnings;
use Log::ger;
our %SPEC;
$SPEC{google_search_perlmonks_user} = {
v => 1.1,
summary => 'Search Google for user mentions in perlmonks.org',
description => <<'_',
Basically a shortcut for launching Google search for a user (specifically, user
mentions in discussion threads) in `perlmonks.org` site, with some unwanted
pages excluded.
_
args => {
user => {
schema => 'str*',
req => 1,
pos => 0,
},
},
};
sub google_search_perlmonks_user {
require Browser::Open;
require URI::Escape;
my %args = @_;
# XXX schema
my $user = $args{user} or return [400, "Please specify user"];
my $query = join(
" ",
"site:perlmonks.org",
$user,
qq(-inurl:/bare), # skip bare pages
qq(-intitle:"$user\'s scratchpad"), # skip scratchpad
# skip some versions of pages
qq(-inurl:"displaytype=print"),
qq(-inurl:"displaytype=xml"),
qq(-inurl:"displaytype=edithistory"),
qq(-intitle:"Perl Monks User Search"), # skip search result page
# TODO: how to exclude "Other Users" box? it would be nice if
# perlmonks.org marks some sections to be excluded by google, ref:
# http://www.perlmonks.org/?node_id=1136864
);
my $url = "https://www.google.com/search?num=100&q=".
URI::Escape::uri_escape($query);
my $res = Browser::Open::open_browser($url);
$res ? [500, "Failed"] : [200, "OK"];
}
1;
# ABSTRACT: Search Google for user mentions in perlmonks.org
__END__
=pod
=encoding UTF-8
=head1 NAME
App::GoogleSearchPerlmonksUser - Search Google for user mentions in perlmonks.org
=head1 VERSION
This document describes version 0.02 of App::GoogleSearchPerlmonksUser (from Perl distribution App-GoogleSearchPerlmonksUser), released on 2017-07-08.
=head1 SYNOPSIS
Use the included script L<google-search-perlmonks-user>.
=head1 FUNCTIONS
=head2 google_search_perlmonks_user
Usage:
google_search_perlmonks_user(%args) -> [status, msg, result, meta]
Search Google for user mentions in perlmonks.org.
Basically a shortcut for launching Google search for a user (specifically, user
mentions in discussion threads) in C<perlmonks.org> site, with some unwanted
pages excluded.
This function is not exported.
Arguments ('*' denotes required arguments):
=over 4
=item * B<user>* => I<str>
=back
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code
(200 means OK, 4xx caller error, 5xx function error). Second element
(msg) is a string containing error message, or 'OK' if status is
200. Third element (result) is optional, the actual result. Fourth
element (meta) is called result metadata and is optional, a hash
that contains extra information.
( run in 2.192 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )