Pulling in some changes from TOR
authorEd Page <eopage@byu.net>
Tue, 19 Oct 2010 23:26:43 +0000 (18:26 -0500)
committerEd Page <eopage@byu.net>
Tue, 19 Oct 2010 23:26:43 +0000 (18:26 -0500)
src/backends/gvoice.py
src/constants.py
support/builddeb.py

index a63eabe..ca26737 100755 (executable)
@@ -236,6 +236,7 @@ class GVoiceBackend(object):
                Attempts to detect a current session
                @note Once logged in try not to reauth more than once a minute.
                @returns If authenticated
                Attempts to detect a current session
                @note Once logged in try not to reauth more than once a minute.
                @returns If authenticated
+               @blocks
                """
                isRecentledAuthed = (time.time() - self._lastAuthed) < 120
                isPreviouslyAuthed = self._token is not None
                """
                isRecentledAuthed = (time.time() - self._lastAuthed) < 120
                isPreviouslyAuthed = self._token is not None
@@ -283,6 +284,7 @@ class GVoiceBackend(object):
                """
                Attempt to login to GoogleVoice
                @returns Whether login was successful or not
                """
                Attempt to login to GoogleVoice
                @returns Whether login was successful or not
+               @blocks
                """
                self.logout()
                galxToken = self._get_token()
                """
                self.logout()
                galxToken = self._get_token()
@@ -303,6 +305,11 @@ class GVoiceBackend(object):
                self._lastAuthed = time.time()
                return True
 
                self._lastAuthed = time.time()
                return True
 
+       def shutdown(self):
+               self._browser.save_cookies()
+               self._token = None
+               self._lastAuthed = 0.0
+
        def logout(self):
                self._browser.clear_cookies()
                self._browser.save_cookies()
        def logout(self):
                self._browser.clear_cookies()
                self._browser.save_cookies()
@@ -310,6 +317,9 @@ class GVoiceBackend(object):
                self._lastAuthed = 0.0
 
        def is_dnd(self):
                self._lastAuthed = 0.0
 
        def is_dnd(self):
+               """
+               @blocks
+               """
                isDndPage = self._get_page(self._isDndURL)
 
                dndGroup = self._isDndRe.search(isDndPage)
                isDndPage = self._get_page(self._isDndURL)
 
                dndGroup = self._isDndRe.search(isDndPage)
@@ -320,6 +330,9 @@ class GVoiceBackend(object):
                return isDnd
 
        def set_dnd(self, doNotDisturb):
                return isDnd
 
        def set_dnd(self, doNotDisturb):
+               """
+               @blocks
+               """
                dndPostData = {
                        "doNotDisturb": 1 if doNotDisturb else 0,
                }
                dndPostData = {
                        "doNotDisturb": 1 if doNotDisturb else 0,
                }
@@ -329,6 +342,7 @@ class GVoiceBackend(object):
        def call(self, outgoingNumber):
                """
                This is the main function responsible for initating the callback
        def call(self, outgoingNumber):
                """
                This is the main function responsible for initating the callback
+               @blocks
                """
                outgoingNumber = self._send_validation(outgoingNumber)
                subscriberNumber = None
                """
                outgoingNumber = self._send_validation(outgoingNumber)
                subscriberNumber = None
@@ -354,6 +368,7 @@ class GVoiceBackend(object):
                """
                Cancels a call matching outgoing and forwarding numbers (if given). 
                Will raise an error if no matching call is being placed
                """
                Cancels a call matching outgoing and forwarding numbers (if given). 
                Will raise an error if no matching call is being placed
+               @blocks
                """
                page = self._get_page_with_token(
                        self._callCancelURL,
                """
                page = self._get_page_with_token(
                        self._callCancelURL,
@@ -366,6 +381,9 @@ class GVoiceBackend(object):
                self._parse_with_validation(page)
 
        def send_sms(self, phoneNumbers, message):
                self._parse_with_validation(page)
 
        def send_sms(self, phoneNumbers, message):
+               """
+               @blocks
+               """
                validatedPhoneNumbers = [
                        self._send_validation(phoneNumber)
                        for phoneNumber in phoneNumbers
                validatedPhoneNumbers = [
                        self._send_validation(phoneNumber)
                        for phoneNumber in phoneNumbers
@@ -384,6 +402,7 @@ class GVoiceBackend(object):
                """
                Search your Google Voice Account history for calls, voicemails, and sms
                Returns ``Folder`` instance containting matching messages
                """
                Search your Google Voice Account history for calls, voicemails, and sms
                Returns ``Folder`` instance containting matching messages
+               @blocks
                """
                page = self._get_page(
                        self._XML_SEARCH_URL,
                """
                page = self._get_page(
                        self._XML_SEARCH_URL,
@@ -393,6 +412,9 @@ class GVoiceBackend(object):
                return json
 
        def get_feed(self, feed):
                return json
 
        def get_feed(self, feed):
+               """
+               @blocks
+               """
                actualFeed = "_XML_%s_URL" % feed.upper()
                feedUrl = getattr(self, actualFeed)
 
                actualFeed = "_XML_%s_URL" % feed.upper()
                feedUrl = getattr(self, actualFeed)
 
@@ -407,7 +429,8 @@ class GVoiceBackend(object):
                which can either be a ``Message`` instance, or a SHA1 identifier. 
                Saves files to ``adir`` (defaults to current directory). 
                Message hashes can be found in ``self.voicemail().messages`` for example. 
                which can either be a ``Message`` instance, or a SHA1 identifier. 
                Saves files to ``adir`` (defaults to current directory). 
                Message hashes can be found in ``self.voicemail().messages`` for example. 
-               Returns location of saved file.
+               @returns location of saved file.
+               @blocks
                """
                page = self._get_page(self._downloadVoicemailURL, {"id": messageId})
                fn = os.path.join(adir, '%s.mp3' % messageId)
                """
                page = self._get_page(self._downloadVoicemailURL, {"id": messageId})
                fn = os.path.join(adir, '%s.mp3' % messageId)
@@ -454,6 +477,7 @@ class GVoiceBackend(object):
        def get_recent(self):
                """
                @returns Iterable of (personsName, phoneNumber, exact date, relative date, action)
        def get_recent(self):
                """
                @returns Iterable of (personsName, phoneNumber, exact date, relative date, action)
+               @blocks
                """
                for action, url in (
                        ("Received", self._XML_RECEIVED_URL),
                """
                for action, url in (
                        ("Received", self._XML_RECEIVED_URL),
@@ -471,6 +495,7 @@ class GVoiceBackend(object):
        def get_contacts(self):
                """
                @returns Iterable of (contact id, contact name)
        def get_contacts(self):
                """
                @returns Iterable of (contact id, contact name)
+               @blocks
                """
                page = self._get_page(self._XML_CONTACTS_URL)
                contactsBody = self._contactsBodyRe.search(page)
                """
                page = self._get_page(self._XML_CONTACTS_URL)
                contactsBody = self._contactsBodyRe.search(page)
@@ -487,6 +512,9 @@ class GVoiceBackend(object):
                                yield contactId, contactDetails
 
        def get_voicemails(self):
                                yield contactId, contactDetails
 
        def get_voicemails(self):
+               """
+               @blocks
+               """
                voicemailPage = self._get_page(self._XML_VOICEMAIL_URL)
                voicemailHtml = self._grab_html(voicemailPage)
                voicemailJson = self._grab_json(voicemailPage)
                voicemailPage = self._get_page(self._XML_VOICEMAIL_URL)
                voicemailHtml = self._grab_html(voicemailPage)
                voicemailJson = self._grab_json(voicemailPage)
@@ -497,6 +525,9 @@ class GVoiceBackend(object):
                return voicemails
 
        def get_texts(self):
                return voicemails
 
        def get_texts(self):
+               """
+               @blocks
+               """
                smsPage = self._get_page(self._XML_SMS_URL)
                smsHtml = self._grab_html(smsPage)
                smsJson = self._grab_json(smsPage)
                smsPage = self._get_page(self._XML_SMS_URL)
                smsHtml = self._grab_html(smsPage)
                smsJson = self._grab_json(smsPage)
@@ -507,6 +538,9 @@ class GVoiceBackend(object):
                return smss
 
        def mark_message(self, messageId, asRead):
                return smss
 
        def mark_message(self, messageId, asRead):
+               """
+               @blocks
+               """
                postData = {
                        "read": 1 if asRead else 0,
                        "id": messageId,
                postData = {
                        "read": 1 if asRead else 0,
                        "id": messageId,
@@ -515,6 +549,9 @@ class GVoiceBackend(object):
                markPage = self._get_page(self._markAsReadURL, postData)
 
        def archive_message(self, messageId):
                markPage = self._get_page(self._markAsReadURL, postData)
 
        def archive_message(self, messageId):
+               """
+               @blocks
+               """
                postData = {
                        "id": messageId,
                }
                postData = {
                        "id": messageId,
                }
@@ -751,7 +788,7 @@ def google_strptime(time):
        """
        abbrevTime = time[:-3]
        parsedTime = datetime.datetime.strptime(abbrevTime, "%m/%d/%y %I:%M")
        """
        abbrevTime = time[:-3]
        parsedTime = datetime.datetime.strptime(abbrevTime, "%m/%d/%y %I:%M")
-       if time[-2] == "PN":
+       if time.endswith("PM"):
                parsedTime += datetime.timedelta(hours=12)
        return parsedTime
 
                parsedTime += datetime.timedelta(hours=12)
        return parsedTime
 
index 6ac15b0..f16214f 100644 (file)
@@ -2,7 +2,7 @@ import os
 
 __pretty_app_name__ = "DialCentral"
 __app_name__ = "dialcentral"
 
 __pretty_app_name__ = "DialCentral"
 __app_name__ = "dialcentral"
-__version__ = "1.1.12"
+__version__ = "1.1.13"
 __build__ = 0
 __app_magic__ = 0xdeadbeef
 _data_path_ = os.path.join(os.path.expanduser("~"), ".%s" % __app_name__)
 __build__ = 0
 __app_magic__ = 0xdeadbeef
 _data_path_ = os.path.join(os.path.expanduser("~"), ".%s" % __app_name__)
index 43fa9b4..8ddb30c 100755 (executable)
@@ -30,7 +30,7 @@ __email__ = "eopage@byu.net"
 __version__ = constants.__version__
 __build__ = constants.__build__
 __changelog__ = """
 __version__ = constants.__version__
 __build__ = constants.__build__
 __changelog__ = """
-* Fix for "string index bug" which was exposed by the gmail call feature
+*  Fix for <string> bug
 """.strip()
 
 
 """.strip()