Package contacts :: Module contactsSync
[hide private]
[frames] | no frames]

Module contactsSync

source code

Module for synchronization of two sources of type "contacts".

This file is part of Pisi.

Pisi is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Pisi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Pisi. If not, see <http://www.gnu.org/licenses/>

Functions [hide private]
 
_askConfirmation(source, idList)
Use interaction for choosing which contact entry to keep in case of a conflict
source code
 
syncContacts(verbose, modulesToLoad, source, mergeMode)
Synchronizes two data sources of type 'CONTACT'
source code
Variables [hide private]
  ACTIONID_ADD = 0
  ACTIONID_DELETE = 1
  ACTIONID_MODIFY = 2
  CONSOLE_PROGRESSBAR_WIDTH = 80
  FILEDOWNLOAD_TIMEOUT = 10
  FILEDOWNLOAD_TMPFILE = '/tmp/pisi-remotebuffer.data'
  FILEPATH_COPYING = '/opt/pisi/COPYING'
  GOOGLE_CALENDAR_APPNAME = 'pisi0.5'
  GOOGLE_CALENDAR_MAXRESULTS = 1000
  GOOGLE_CONTACTS_APPNAME = 'pisi0.5'
  GOOGLE_CONTACTS_MAXRESULTS = 1000
  ICS_BYTES_PER_ENTRY = 200
  MERGEMODE_FLUSH_A = 1
  MERGEMODE_FLUSH_B = 2
  MERGEMODE_MANUALCONFIRM = 5
  MERGEMODE_OVERWRITE_A = 3
  MERGEMODE_OVERWRITE_B = 4
  MERGEMODE_SKIP = 0
  MERGEMODE_STRINGS = ['Skip', 'Flush source 1', 'Flush source 2...
  MODE_CALENDAR = 0
  MODE_CONTACTS = 1
  MODE_STRINGS = ['calendar', 'contacts']
  PISI_AUTHORS = ['Esben Damgaard', 'Michael Pilgermann']
  PISI_COMMENTS = 'PISI is synchronizing information'
  PISI_DOCUMENTERS = ['Michael Pilgermann']
  PISI_HOMEPAGE = 'http://freshmeat.net/projects/pisiom'
  PISI_NAME = 'PISI'
  PISI_TRANSLATOR_CREDITS = None
  PISI_VERSION = '0.5'
  VCF_BYTES_PER_ENTRY = 200
  __package__ = 'contacts'
Function Details [hide private]

_askConfirmation(source, idList)

source code 

Use interaction for choosing which contact entry to keep in case of a conflict

Returns:
A dictionary which contains the action for each conflict entry; the key is the id of the contact entry, the value one out of a - keep entry from first source, b - keep value from second source and s - skip this entry (no change on either side)

The call is passed on to pisiprogress.AbstractCallback.askConfirmation

syncContacts(verbose, modulesToLoad, source, mergeMode)

source code 

Synchronizes two data sources of type 'CONTACT'

This method is taking the mergeMode into account when deciding about overwriting values (in case of conflicts).

All contacts entries of one data source are compared against the ones of the other data source. First of all, the ID of the entries is taken into accout for checking, which entries relate to each other. The delta (regarding the IDs) is appended to the other data source. Whenever the IDs are the same for two entries, a deep compare is carried out; all attributes are compared against each other. If there is any difference, the overwrite of a value (or a skip) is performed depending on the merge mode.


Variables Details [hide private]

MERGEMODE_STRINGS

Value:
['Skip',
 'Flush source 1',
 'Flush source 2',
 'Overwrite entry in source 1',
 'Overwrite entry in source 2',
 'Manual confirmation']