From f285dc6899e8ebca47b2cf439c38efeaf3fd43f4 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 30 Nov 2010 20:01:59 -0600 Subject: [PATCH] After some testing, fixing the csv support --- hand_tests/gv_load_csv.py | 49 +++++++++++++++++++++++++++++++++++++++++++++ src/gvoice/backend.py | 3 ++- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100755 hand_tests/gv_load_csv.py diff --git a/hand_tests/gv_load_csv.py b/hand_tests/gv_load_csv.py new file mode 100755 index 0000000..ac60266 --- /dev/null +++ b/hand_tests/gv_load_csv.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python + +from __future__ import with_statement +from __future__ import division + +import sys +sys.path.insert(0,"../src") + +import csv +import logging + +try: + import cStringIO as StringIO +except ImportError: + import StringIO + +import gvoice.backend as backend + + +_moduleLogger = logging.getLogger(__name__) + + +if __name__ == "__main__": + logging.basicConfig(level=logging.DEBUG) + + args = sys.argv + + if True: + username = args[1] + password = args[2] + b = backend.GVoiceBackend() + b.login(username, password) + data = b.get_csv_contacts() + with open("test.csv", "wb") as f: + f.write(data) + else: + with open("test.csv", "U") as f: + data = f.read() + if True: + if False: + # used with the official gmail one returned by passing no export params + data = "".join(c for (i, c) in enumerate(data) if (i%2 == 0))[1:] + for attr in csv.DictReader(StringIO.StringIO(data)): + for name in attr.keys(): + if not attr[name] or name is None: + del attr[name] + #print attr + if any(attr[name] for name in attr.keys() if "Phone" in name): + print attr diff --git a/src/gvoice/backend.py b/src/gvoice/backend.py index 1973676..69e46e4 100755 --- a/src/gvoice/backend.py +++ b/src/gvoice/backend.py @@ -507,7 +507,8 @@ class GVoiceBackend(object): "exportType": "ALL", "out": "OUTLOOK_CSV", } - contacts = self._get_page(self._CSV_CONTACTS_URL, data) + encodedData = urllib.urlencode(data) + contacts = self._get_page(self._CSV_CONTACTS_URL+"?"+encodedData) return contacts def get_voicemails(self): -- 1.7.9.5