diff options
author | Jesse Luehrs <doy@tozt.net> | 2015-05-02 14:14:30 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2015-05-02 14:16:36 -0400 |
commit | b845f25979727076f593f727a4223979516514da (patch) | |
tree | d142914b8c81da07da3405efefb812ffadcaa5f9 | |
parent | 5098904f4f641567cb37b2a08d486236b38af775 (diff) | |
download | www-pocket-b845f25979727076f593f727a4223979516514da.tar.gz www-pocket-b845f25979727076f593f727a4223979516514da.zip |
add a command to extract word counts
-rw-r--r-- | lib/WWW/Pocket/Script.pm | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/lib/WWW/Pocket/Script.pm b/lib/WWW/Pocket/Script.pm index 5238931..dfae0fe 100644 --- a/lib/WWW/Pocket/Script.pm +++ b/lib/WWW/Pocket/Script.pm @@ -3,6 +3,7 @@ use Moose; use Getopt::Long 'GetOptionsFromArray'; use JSON::PP; +use List::Util 'sum'; use Path::Class; use URI; @@ -135,6 +136,20 @@ sub list { print "$_\n" for $self->_retrieve_urls(%params); } +sub words { + my $self = shift; + my @argv = @_; + + my ($params) = $self->_parse_retrieve_options(@argv); + my %params = ( + $self->_default_search_params, + %$params, + ); + + my $word_count = sum($self->_retrieve_field('word_count', %params)) || 0; + print "$word_count\n"; +} + sub search { my $self = shift; my @argv = @_; @@ -240,12 +255,19 @@ sub _retrieve_urls { my $self = shift; my %params = @_; + $self->_retrieve_field('resolved_url', %params); +} + +sub _retrieve_field { + my $self = shift; + my ($field, %params) = @_; + my $response = $self->pocket->retrieve(%params); my $list = $response->{list}; return unless ref($list) && ref($list) eq 'HASH'; return map { - $_->{resolved_url} + $_->{$field} } sort { $a->{sort_id} <=> $b->{sort_id} } values %{ $response->{list} }; |