Changeset 2087
- Timestamp:
- 06/02/07 08:48:33 (1 year ago)
- Files:
-
- plugins/moto-sync/motosync.py (modified) (8 diffs)
- plugins/moto-sync/mototool (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plugins/moto-sync/motosync.py
r2086 r2087 568 568 569 569 def read_events(self): 570 """read the list of all events on the phone""" 570 """Read all events on the phone. 571 572 Returns a list of (event data, exceptions) tuples. 573 """ 571 574 self.open_calendar() 572 575 … … 588 591 # ...then add them into the event data 589 592 for evdata in self.__parse_results('MDBR', data): 590 evdata.append(exceptions.get(pos, [])) 591 ret.append(evdata) 593 ret.append((evdata, exceptions.get(evdata[0], []))) 592 594 pos += ENTRIES_PER_READ 593 595 return ret 594 596 595 def write_event(self, evdata):597 def write_event(self, data, exceptions): 596 598 """Write a single event to the phone. 597 599 … … 599 601 """ 600 602 self.open_calendar() 601 pos = evdata[0]603 pos = data[0] 602 604 self.delete_event(pos) 603 exceptions = evdata[-1]604 data = evdata[:-1]605 605 # HACK: only the name of the event (data[1]) should be unicode 606 606 for n in range(2, len(data)): … … 914 914 """given an instance of PhoneComms, write this entry to the phone""" 915 915 self.__truncate_fields(comms) 916 comms.write_event(self.__to_moto() )916 comms.write_event(self.__to_moto(), self.exceptions) 917 917 918 918 def hash_data(self): … … 947 947 duration += int(self.duration.seconds) / 60 948 948 return (self.pos, self.name, timeflag, alarmflag, timestr, datestr, 949 duration, alarmtimestr, alarmdatestr, self.repeat_type, 950 self.exceptions) 949 duration, alarmtimestr, alarmdatestr, self.repeat_type) 951 950 952 951 def to_xml(self): … … 1049 1048 class PhoneEventMoto(PhoneEvent): 1050 1049 """Constructor for the PhoneEvent object with data in Motorola format""" 1051 def __init__(self, data ):1050 def __init__(self, data, exceptions): 1052 1051 """grab stuff out of the list of values from the phone""" 1053 1052 PhoneEvent.__init__(self) 1054 assert(type(data) == list and len(data) == 1 1)1053 assert(type(data) == list and len(data) == 10) 1055 1054 self.pos = data[0] 1056 1055 self.name = data[1] … … 1063 1062 alarmdate = data[8] 1064 1063 self.repeat_type = data[9] 1065 self.exceptions = data[10]1064 self.exceptions = exceptions 1066 1065 self.exceptions.sort() # just in case 1067 1066 … … 1675 1674 i += 1 1676 1675 elif objtype == 'event': 1677 entries = [PhoneEventMoto(d ) for din self.comms.read_events()]1676 entries = [PhoneEventMoto(d, x) for (d, x) in self.comms.read_events()] 1678 1677 else: 1679 1678 assert(False, 'Unknown objtype %s' % objtype) plugins/moto-sync/mototool
r2054 r2087 128 128 if options.mode == 'delete' or options.mode == 'restore': 129 129 if 'event' in options.objtype: 130 for edatain pc.read_events():130 for (edata, _) in pc.read_events(): 131 131 pc.delete_event(edata[0]) 132 132 if 'contact' in options.objtype: … … 138 138 f = open(options.filename, 'w') 139 139 if 'event' in options.objtype: 140 for edatain pc.read_events():141 f.write(pack_backup('E', edata [:-1]))142 if e data[-1] != []: # exceptions143 f.write(pack_backup('X', e data[-1]))140 for (edata, exceptions) in pc.read_events(): 141 f.write(pack_backup('E', edata)) 142 if exceptions != []: 143 f.write(pack_backup('X', exceptions)) 144 144 if 'contact' in options.objtype: 145 145 pc.read_contact_params() … … 155 155 typestr, edata = unpack_backup(line) 156 156 if typestr == 'E': 157 events.append( edata + [[]])157 events.append((edata, [])) 158 158 elif typestr == 'X': 159 events[-1] [-1] = edata159 events[-1] = (events[-1][0], edata) 160 160 elif typestr == 'C': 161 161 contacts.append(edata) … … 165 165 166 166 if 'event' in options.objtype: 167 for ein events:168 pc.write_event(e )167 for (e, x) in events: 168 pc.write_event(e, x) 169 169 if 'contact' in options.objtype: 170 170 for e in contacts:
