summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2015-05-02 14:14:30 -0400
committerJesse Luehrs <doy@tozt.net>2015-05-02 14:16:36 -0400
commitb845f25979727076f593f727a4223979516514da (patch)
treed142914b8c81da07da3405efefb812ffadcaa5f9
parent5098904f4f641567cb37b2a08d486236b38af775 (diff)
downloadwww-pocket-b845f25979727076f593f727a4223979516514da.tar.gz
www-pocket-b845f25979727076f593f727a4223979516514da.zip
add a command to extract word counts
-rw-r--r--lib/WWW/Pocket/Script.pm24
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} };