[perl-WWW-Google-Contacts/f16] Adding an example script due to poor API documentation.

aviram aviram at fedoraproject.org
Wed Apr 25 12:06:42 UTC 2012


commit 9287023a4ea6175baf2db6e4d0b95190df2cfe0b
Author: Avi Alkalay <avibrazil at gmail.com>
Date:   Wed Apr 25 08:51:18 2012 -0300

    Adding an example script due to poor API documentation.

 .gitignore |    2 +
 example.pl |   71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 sources    |    2 +-
 3 files changed, 74 insertions(+), 1 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 68545cc..3d815b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
 /WWW-Google-Contacts-0.33.tar.gz
+/WWW-Google-Contacts-0.34.tar.gz
+/example.pl
diff --git a/example.pl b/example.pl
new file mode 100755
index 0000000..482342a
--- /dev/null
+++ b/example.pl
@@ -0,0 +1,71 @@
+#!/usr/bin/perl
+
+
+#############################################################
+#
+# This is a useful example script that will:
+#
+# - iterate through all contacts
+# - select a few based on a group name
+# - check if it has phone numbers
+# - edit those phone numbers
+# - commit changes back to Google Contacts
+#
+# This script by Avi Alkalay <avi at unix dot sh>
+#
+# $Id: gcontacts.pl 526 2012-04-24 11:49:33Z aviram $
+#
+#############################################################
+
+use WWW::Google::Contacts;
+
+my $google = WWW::Google::Contacts->new( username => "YOUR_GOOGLE_USERNAME", password => "YOUR_GOOGLE_PASSWORD" );
+
+
+my $contactIterator = $google->contacts;
+my $contact;
+
+while ($contact = $contactIterator->next) {
+	my $modified=0;
+
+	# Filter contacts by group name
+	if (contactHasGroup($contact,'System Group: My Contacts')) {
+		# Check if has phone number
+		if ($contact->{phone_number}) {
+			# Iterate through phone numbers
+			foreach (@{$contact->{phone_number}}) {
+				my $p=$_;
+
+				# Check if phone number matches the pattern we are looking for
+				if ($p->{value}=~m/^\(0(\d\d)\)/) {
+					my $old=$p->{value};
+
+					# Do some modifications of phone prefix and mark contact modified
+					$p->{value}=~s/^\(0(\d\d)\)/+55 \($1\)/g;
+					$modified=1;
+
+					# Print on screen what we are doing
+					print $contact->full_name . " :: $p->{label} :: $old => $p->{value}\n";
+				}
+			}
+		}
+	}
+
+	# If contact was modified above, commit changes back to Google Contacts
+	if ($modified eq 1) {
+		$contact->update;
+	}
+}
+
+
+
+sub contactHasGroup() {
+	my $c=shift;
+	my $g=shift;
+	
+	foreach ($c->groups) {
+		return 1 if ($_->{title} eq $g);
+	}
+	
+	return 0;
+}
diff --git a/sources b/sources
index aae3bc9..67b9048 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-3e33a1d0dc9f50fdd45652783b461383  WWW-Google-Contacts-0.33.tar.gz
+1dba94186ce5a558f80f735958e4996e  example.pl


More information about the scm-commits mailing list