From c577141adecb562a05712a6c3022df14129b9ecf Mon Sep 17 00:00:00 2001 From: n4ym Date: Fri, 24 Feb 2012 23:54:55 -0700 Subject: [PATCH 1/2] Add deleteforever and search methods --- README.md | 13 +++++++++++++ lib/Google/Voice.pm | 35 +++++++++++++++++++++++++++++++++++ lib/Google/Voice/Feed.pm | 15 +++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/README.md b/README.md index b2e0926..52d2836 100644 --- a/README.md +++ b/README.md @@ -51,3 +51,16 @@ curl -L cpanmin.us | perl - Google::Voice # Delete $vm->delete; } + + # Delete Forever messages in Trash from Larry + foreach my $msg ($g->search('Larry')) { + + next unless $msg->meta->{isTrash}; + + print $msg->name . "\n"; + print "Labels: ", join(", ", @{$msg->meta->{labels}}), "\n"; + + # Delete Forever + $msg->deleteforever; + } + diff --git a/lib/Google/Voice.pm b/lib/Google/Voice.pm index 7f87a72..6646dad 100644 --- a/lib/Google/Voice.pm +++ b/lib/Google/Voice.pm @@ -90,6 +90,13 @@ for my $feed ( }; } +{ + no strict 'refs'; + *{"Google::Voice::search"} = sub { + shift->feed('https://www.google.com/voice/inbox/search?q='.shift); + }; +} + sub feed { my $self = shift; my $url = shift; @@ -179,8 +186,24 @@ Easy interface for google voice # Delete $vm->delete; + + # And/or Delete Forever + $vm->deleteforever; + } + + # Delete Forever messages in Trash from Larry + foreach my $msg ($g->search('Larry')) { + + next unless $msg->meta->{isTrash}; + + print $msg->name . "\n"; + print "Labels: ", join(", ", @{$msg->meta->{labels}}), "\n"; + + # Delete Forever + $msg->deleteforever; } + =head1 METHODS =head2 new @@ -235,6 +258,18 @@ List of items marked as spam (call, sms, or voicemail) List of all items (call, sms, or voicemail) +=head2 search + +List of search results (call, sms, or voicemail) + +=head2 delete + +Delete message (remove all labels; move to Trash) + +=head2 deleteforever + +Delete message forever. Message does not need to be deleted first. + =head1 SEE ALSO L, L diff --git a/lib/Google/Voice/Feed.pm b/lib/Google/Voice/Feed.pm index 5cd2c19..45738fd 100644 --- a/lib/Google/Voice/Feed.pm +++ b/lib/Google/Voice/Feed.pm @@ -80,6 +80,21 @@ sub delete { return $json->{ok}; } +sub deleteforever { + my $self = shift; + + my $json = $self->ua->post_form( + 'https://www.google.com/voice/inbox/deleteForeverMessages' => { + messages => $self->id, + _rnr_se => $self->rnr_se + } + )->res->json; + + $@ = $json->{data}->{code} and return unless $json->{ok}; + + return $json->{ok}; +} + sub download { my $self = shift; my ($from, $to) = @_; From 28825cec7edb6ebc8a8e71490b82a929be8983fa Mon Sep 17 00:00:00 2001 From: n4ym Date: Sat, 25 Feb 2012 00:08:47 -0700 Subject: [PATCH 2/2] More proper --- lib/Google/Voice.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Google/Voice.pm b/lib/Google/Voice.pm index 6646dad..1250c26 100644 --- a/lib/Google/Voice.pm +++ b/lib/Google/Voice.pm @@ -11,6 +11,7 @@ use Google::Voice::Feed; use Google::Voice::Call; use Mojo::Base -base; +use URI::Escape; our $VERSION = 0.05; @@ -93,7 +94,7 @@ for my $feed ( { no strict 'refs'; *{"Google::Voice::search"} = sub { - shift->feed('https://www.google.com/voice/inbox/search?q='.shift); + shift->feed('https://www.google.com/voice/inbox/search?q='.uri_escape(shift)); }; }