[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819
Sebastian Krzyszkowiak
seba.dos1 at gmail.com
Sat Aug 6 08:18:46 UTC 2011
The following commit has been merged in the debian branch:
commit 0630ee4297eefd4e9808dc19ea5839eae773dd44
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date: Sat Dec 5 21:58:53 2009 +0100
opimd: implement number normalizing using phoneutils with new, TypeManager way
diff --git a/framework/subsystems/opimd/helpers.py b/framework/subsystems/opimd/helpers.py
index e54b1cc..842f377 100644
--- a/framework/subsystems/opimd/helpers.py
+++ b/framework/subsystems/opimd/helpers.py
@@ -13,11 +13,6 @@ Helpers
"""
from dbus import DBusException, Array
-try:
- from phoneutils import normalize_number
-except:
- def normalize_number(num):
- return num
#----------------------------------------------------------------------------#
def field_value_to_list(field_value):
@@ -28,17 +23,6 @@ def field_value_to_list(field_value):
return [ field_value ]
#----------------------------------------------------------------------------#
-def make_comp_value(field_type, value):
-#----------------------------------------------------------------------------#
- """Determines and returns a representation of a tel URI that is comparable to human input"""
-
- # Remove tel:
- #res = tel_value[4:]
- #res = normalize_number(res)
-
- return value
-
-#----------------------------------------------------------------------------#
class InvalidBackend( DBusException ):
#----------------------------------------------------------------------------#
"""Raised when a backend is either invalid or unsuited for a certain function call"""
diff --git a/framework/subsystems/opimd/pimd_generic.py b/framework/subsystems/opimd/pimd_generic.py
index a5d63a1..0f61769 100644
--- a/framework/subsystems/opimd/pimd_generic.py
+++ b/framework/subsystems/opimd/pimd_generic.py
@@ -32,6 +32,8 @@ logger = logging.getLogger('opimd')
from backend_manager import BackendManager
from backend_manager import PIMB_CAN_ADD_ENTRY, PIMB_CAN_DEL_ENTRY, PIMB_CAN_UPD_ENTRY, PIMB_CAN_UPD_ENTRY_WITH_NEW_FIELD, PIMB_NEEDS_SYNC
+from type_manager import TypeManager
+
from domain_manager import Domain
from helpers import *
@@ -153,15 +155,15 @@ class GenericEntry():
if self._fields[field][3]==backend_name:
for field_value in field_value_to_list(entry_data[field_name]):
self._fields[field][1]=field_value
- self._fields[field][2] = make_comp_value(self.domain.field_type_from_name(field_name), field_value)
+ self._fields[field][2] = TypeManager.make_comp_value(self.domain.field_type_from_name(field_name), field_value)
else:
for field_value in field_value_to_list(entry_data[field_name]):
- self._fields.append([field_name, field_value, make_comp_value(self.domain.field_type_from_name(field_name), field_value), backend_name])
+ self._fields.append([field_name, field_value, TypeManager.make_comp_value(self.domain.field_type_from_name(field_name), field_value), backend_name])
self._field_idx[field_name].append(len(self._fields)-1)
except KeyError:
for field_value in field_value_to_list(entry_data[field_name]):
- compare_value = make_comp_value(self.domain.field_type_from_name(field_name), field_value)
+ compare_value = TypeManager.make_comp_value(self.domain.field_type_from_name(field_name), field_value)
our_field = [field_name, field_value, compare_value, backend_name]
@@ -401,6 +403,7 @@ class GenericEntry():
best_field_match = 0.0
#if field_value.startswith('tel:'): field_value=re.escape(get_compare_for_tel(field_value))+'$'
+ field_value = TypeManager.make_comp_value(self.domain.field_type_from_name(field_name), field_value, True)
matcher = re.compile(field_value)
@@ -647,6 +650,8 @@ class GenericDomain():
@classmethod
def field_type_from_name(self, name):
+ if name=='Phone':
+ return 'phonenumber'
return 'generic'
def enumerate_items(self, backend):
@@ -749,13 +754,13 @@ class GenericDomain():
for value in data[field_name]:
#newfieldid = len(entryif._fields)-1
#entryif._field_idx[field_name].append(newfieldid)
- entryif._fields.append([field_name, value, make_comp_value(self.field_type_from_name(field_name), value), backend])
+ entryif._fields.append([field_name, value, TypeManager.make_comp_value(self.field_type_from_name(field_name), value), backend])
entryif.rebuild_index()
else:
for field_nr in entryif._field_idx[field_name]:
#if entry[field_name]!=data[field_name]:
entryif._fields[field_nr][1]=data[field_name]
- entryif._fields[field_nr][2]=make_comp_value(self.field_type_from_name(field_name), data[field_name])
+ entryif._fields[field_nr][2]=TypeManager.make_comp_value(self.field_type_from_name(field_name), data[field_name])
for backend_name in entryif._used_backends:
backend = self._backends[backend_name]
diff --git a/framework/subsystems/opimd/type_manager.py b/framework/subsystems/opimd/type_manager.py
index e74d407..8df1a07 100644
--- a/framework/subsystems/opimd/type_manager.py
+++ b/framework/subsystems/opimd/type_manager.py
@@ -23,6 +23,13 @@ from dbus.service import FallbackObject as DBusFBObject
from dbus.service import signal as dbus_signal
from dbus.service import method as dbus_method
+try:
+ from phoneutils import normalize_number
+except:
+ def normalize_number(num):
+ return num
+
+import re
import logging
logger = logging.getLogger('opimd')
@@ -47,6 +54,16 @@ class TypeManager(DBusFBObject):
self.interface = _DIN_TYPES
self.path = _DBUS_PATH_TYPES
+ @classmethod
+ def make_comp_value(self, field_type, field_value, from_query = False):
+ if field_type=='phonenumber':
+ if from_query:
+ return re.escape(normalize_number(field_value)) # +'$'
+ else:
+ return normalize_number(field_value)
+ else:
+ return field_value
+
@dbus_method(_DIN_TYPES, "", "as")
def List(self):
return _TYPES
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list