import browser_emu
-_moduleLogger = logging.getLogger("gvoice.backend")
+_moduleLogger = logging.getLogger(__name__)
class NetworkError(RuntimeError):
raise ValueError('Number is not valid: "%s"' % number)
elif not self.is_authed():
raise RuntimeError("Not Authenticated")
-
- if len(number) == 11 and number[0] == 1:
- # Strip leading 1 from 11 digit dialing
- number = number[1:]
return number
def _parse_history(self, historyHtml):
def guess_phone_type(number):
- if number.startswith("747") or number.startswith("1747"):
+ if number.startswith("747") or number.startswith("1747") or number.startswith("+1747"):
return GVoiceBackend.PHONE_TYPE_GIZMO
else:
return GVoiceBackend.PHONE_TYPE_MOBILE
-def set_sane_callback(backend):
+def get_sane_callback(backend):
"""
Try to set a sane default callback number on these preferences
1) 1747 numbers ( Gizmo )
numbers = backend.get_callback_numbers()
priorityOrderedCriteria = [
+ ("\+1747", None),
("1747", None),
+ ("747", None),
(None, "gizmo"),
(None, "computer"),
(None, "sip"),
]
for numberCriteria, descriptionCriteria in priorityOrderedCriteria:
+ numberMatcher = None
+ descriptionMatcher = None
+ if numberCriteria is not None:
+ numberMatcher = re.compile(numberCriteria)
+ elif descriptionCriteria is not None:
+ descriptionMatcher = re.compile(descriptionCriteria, re.I)
+
for number, description in numbers.iteritems():
- if numberCriteria is not None and re.compile(numberCriteria).match(number) is None:
+ if numberMatcher is not None and numberMatcher.match(number) is None:
continue
- if descriptionCriteria is not None and re.compile(descriptionCriteria).match(description) is None:
+ if descriptionMatcher is not None and descriptionMatcher.match(description) is None:
continue
- backend.set_callback_number(number)
- return
+ return number
+
+
+def set_sane_callback(backend):
+ """
+ Try to set a sane default callback number on these preferences
+ 1) 1747 numbers ( Gizmo )
+ 2) anything with gizmo in the name
+ 3) anything with computer in the name
+ 4) the first value
+ """
+ number = get_sane_callback(backend)
+ backend.set_callback_number(number)
def _is_not_special(name):