1fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville#! /usr/bin/python
2fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
3fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# See README.txt for information and build instructions.
4fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
5fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleimport addressbook_pb2
6fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleimport sys
7fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
8fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Iterates though all people in the AddressBook and prints info about them.
9fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilledef ListPeople(address_book):
10fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  for person in address_book.person:
11fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    print "Person ID:", person.id
12fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    print "  Name:", person.name
13fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    if person.HasField('email'):
14fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville      print "  E-mail address:", person.email
15fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
16fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    for phone_number in person.phone:
17fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville      if phone_number.type == addressbook_pb2.Person.MOBILE:
18fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville        print "  Mobile phone #:",
19fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville      elif phone_number.type == addressbook_pb2.Person.HOME:
20fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville        print "  Home phone #:",
21fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville      elif phone_number.type == addressbook_pb2.Person.WORK:
22fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville        print "  Work phone #:",
23fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville      print phone_number.number
24fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
25fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Main procedure:  Reads the entire address book from a file and prints all
26fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville#   the information inside.
27fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleif len(sys.argv) != 2:
28fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  print "Usage:", sys.argv[0], "ADDRESS_BOOK_FILE"
29fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  sys.exit(-1)
30fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
31fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleaddress_book = addressbook_pb2.AddressBook()
32fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
33fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Read the existing address book.
34fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillef = open(sys.argv[1], "rb")
35fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleaddress_book.ParseFromString(f.read())
36fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillef.close()
37fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
38fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleListPeople(address_book)
39