from imobilesync.data.base import BaseList, Base, RelatedBase from imobilesync.config import config, state from imobilesync.options import parser __all__ = ["Bookmark", "Bookmarks"] TYPE_FIREFOX = 0 TYPE_CHROME = 1 TYPE_CHROMIUM = 2 class Bookmark(Base): entity_name = "com.apple.bookmarks.Bookmark" class Bookmarks(BaseList): parent_schema_name = "com.apple.Bookmarks" parent_schema_class = Bookmark config = config.add("bookmarks", {}) state = state.add("bookmarks", {"last_sync_time": None}) def __init__(self, uuid, mobile_sync): super(Bookmarks, self).__init__(uuid, mobile_sync) parser.add_option("--bookmarks", action="append_const", dest="sync_type", const=Bookmarks)
from imobilesync.data.base import BaseList, Base, RelatedBase from imobilesync.config import config, state from imobilesync.options import parser __all__ = ['Bookmark', 'Bookmarks'] TYPE_FIREFOX = 0 TYPE_CHROME = 1 TYPE_CHROMIUM = 2 class Bookmark(Base): entity_name = 'com.apple.bookmarks.Bookmark' class Bookmarks(BaseList): parent_schema_name = "com.apple.Bookmarks" parent_schema_class = Bookmark config = config.add('bookmarks', {}) state = state.add('bookmarks', { 'last_sync_time': None }) def __init__(self, uuid, mobile_sync): super(Bookmarks, self).__init__(uuid, mobile_sync) parser.add_option('--bookmarks', action='append_const', dest='sync_type', const=Bookmarks)
if hasattr(self, "notes"): card.add('note') card.note.value = self.notes return card def serialize(self): return self.__vcard__().serialize() class Contacts(BaseList): parent_schema_name = "com.apple.Contacts" parent_schema_class = Contact config = config.add('contacts', {}) state = state.add('contacts', {'last_sync_time': None}) def __process_related_record(self, related_record): if isinstance(related_record, Group): for id in related_record.parent_ids: self._parent_records[id].groups[ related_record.id] = related_record else: super(Contacts, self).__process_related_record(related_record) parser.add_option('--contacts', action='append_const', dest='sync_type', const=Contacts)
photo.encoding_param = 'B' photo.type_param = 'JPEG' photo.value = self.image if hasattr(self, "notes"): card.add('note') card.note.value = self.notes return card def serialize(self): return self.__vcard__().serialize() class Contacts(BaseList): parent_schema_name = "com.apple.Contacts" parent_schema_class = Contact config = config.add('contacts', {}) state = state.add('contacts', { 'last_sync_time': None }) def __process_related_record(self, related_record): if isinstance(related_record, Group): for id in related_record.parent_ids: self._parent_records[id].groups[related_record.id] = related_record else: super(Contacts, self).__process_related_record(related_record) parser.add_option('--contacts', action='append_const', dest='sync_type', const=Contacts)
self._event_records = {} self.__event_class_map = {} for cls in Event.related_classes: self.__event_class_map[cls.entity_name] = cls def _process_record(self, entity_name, id, record): super(Calendars, self)._process_record(entity_name, id, record) if entity_name in self.__event_class_map: cls = self.__event_class_map[entity_name] obj = cls(self._uuid, id, record) self._process_related_record(obj) def _process_related_record(self, related_record): if isinstance(related_record, Event): self._event_records[related_record.id] = related_record super(Calendars, self)._process_related_record(related_record) elif isinstance(related_record, Calendar): super(Calendars, self)._process_related_record(related_record) else: parent_objs = getattr( self._event_records[related_record.parent_id], related_record.parent_prop) parent_objs[related_record.id] = related_record parser.add_option('--calendars', action='append_const', dest='sync_type', const=Calendars)
from imobilesync.data.base import BaseList, Base, RelatedBase from imobilesync.config import state, config from imobilesync.options import parser __all__ = ['Note', 'Notes'] class Note(Base): entity_name = 'com.apple.notes.Note' class Notes(BaseList): parent_schema_name = "com.apple.Notes" parent_schema_class = Note config = config.add('contacts', {}) state = state.add('contacts', { 'last_sync_time': None }) def __init__(self, uuid, mobile_sync): super(Notes, self).__init__(uuid, mobile_sync) parser.add_option('--notes', action='append_const', dest='sync_type', const=Notes)
'last_sync_time': None }) def __init__(self, uuid, mobile_sync): super(Calendars, self).__init__(uuid, mobile_sync) self._event_records = {} self.__event_class_map = {} for cls in Event.related_classes: self.__event_class_map[cls.entity_name] = cls def _process_record(self, entity_name, id, record): super(Calendars, self)._process_record(entity_name, id, record) if entity_name in self.__event_class_map: cls = self.__event_class_map[entity_name] obj = cls(self._uuid, id, record) self._process_related_record(obj) def _process_related_record(self, related_record): if isinstance(related_record, Event): self._event_records[related_record.id] = related_record super(Calendars, self)._process_related_record(related_record) elif isinstance(related_record, Calendar): super(Calendars, self)._process_related_record(related_record) else: parent_objs = getattr(self._event_records[related_record.parent_id], related_record.parent_prop) parent_objs[related_record.id] = related_record parser.add_option('--calendars', action='append_const', dest='sync_type', const=Calendars)