summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2015-03-29 23:56:40 -0400
committerJesse Luehrs <doy@tozt.net>2015-03-29 23:56:40 -0400
commitc144cbe6304b7c4c6880c469e0cda3497f2b749c (patch)
tree2ae83eda05a598fd3739dcb803b70d7ec61478c2
parent71a059456155caa599c989e35936684d520a763c (diff)
downloadwww-pocket-c144cbe6304b7c4c6880c469e0cda3497f2b749c.tar.gz
www-pocket-c144cbe6304b7c4c6880c469e0cda3497f2b749c.zip
implement modifying
-rw-r--r--lib/WWW/Pocket/Script.pm74
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/WWW/Pocket/Script.pm b/lib/WWW/Pocket/Script.pm
index 7022b9f..a2fdd01 100644
--- a/lib/WWW/Pocket/Script.pm
+++ b/lib/WWW/Pocket/Script.pm
@@ -4,6 +4,7 @@ use Moose;
use Getopt::Long 'GetOptionsFromArray';
use JSON::PP;
use Path::Class;
+use URI;
use WWW::Pocket;
@@ -202,6 +203,79 @@ sub add {
print "Page Saved!\n";
}
+sub archive {
+ my $self = shift;
+ my ($url) = @_;
+
+ $self->_modify('archive', $self->_get_id_for_url($url));
+ print "Page archived!\n";
+}
+
+sub readd {
+ my $self = shift;
+ my ($url) = @_;
+
+ $self->_modify('readd', $self->_get_id_for_url($url));
+ print "Page added!\n";
+}
+
+sub favorite {
+ my $self = shift;
+ my ($url) = @_;
+
+ $self->_modify('favorite', $self->_get_id_for_url($url));
+ print "Page favorited!\n";
+}
+
+sub unfavorite {
+ my $self = shift;
+ my ($url) = @_;
+
+ $self->_modify('unfavorite', $self->_get_id_for_url($url));
+ print "Page unfavorited!\n";
+}
+
+sub delete {
+ my $self = shift;
+ my ($url) = @_;
+
+ $self->_modify('delete', $self->_get_id_for_url($url));
+ print "Page deleted!\n";
+}
+
+sub _modify {
+ my $self = shift;
+ my ($action, $id) = @_;
+
+ $self->pocket->modify(
+ actions => [
+ {
+ action => $action,
+ item_id => $id,
+ },
+ ],
+ );
+}
+
+sub _get_id_for_url {
+ my $self = shift;
+ my ($url) = @_;
+
+ my $response = $self->pocket->retrieve(
+ domain => URI->new($url)->host,
+ );
+ my $list = $response->{list};
+ return unless ref($list) && ref($list) eq 'HASH';
+
+ for my $item (values %$list) {
+ return $item->{item_id}
+ if $item->{resolved_url} eq $url
+ || $item->{given_url} eq $url;
+ }
+
+ return;
+}
+
sub _apply_credentials {
my $self = shift;
my ($file) = @_;