def _getoutboxmessage(self, sf): entry = sms.SMSEntry() entry.folder = entry.Folder_Sent entry.datetime = "%d%02d%02dT%02d%02d%02d" % ((sf.timesent)) # add all the recipients for r in sf.recipients: if r.number: confirmed = (r.status == 5) confirmed_date = None if confirmed: confirmed_date = "%d%02d%02dT%02d%02d%02d" % r.timereceived entry.add_recipient(r.number, confirmed, confirmed_date) entry.subject = sf.subject txt = "" if sf.num_msg_elements == 1 and not sf.messages[0].binary: txt = self._get_text_from_sms_msg_without_header( sf.messages[0].msg, sf.messages[0].length) else: for i in range(sf.num_msg_elements): txt += self._get_text_from_sms_msg_with_header( sf.messages[i].msg, sf.messages[i].length) entry.text = unicode(txt, errors='ignore') if sf.priority == 0: entry.priority = sms.SMSEntry.Priority_Normal else: entry.priority = sms.SMSEntry.Priority_High entry.locked = sf.locked entry.callback = sf.callback return entry
def _process_sms(self, _resp, res): # extract the SMS messages from the respons string & update the dict for i in range(0, len(_resp), 2): try: _entry = self.protocolclass.sms_msg_list_header() _buf = prototypes.buffer(_resp[i]) _entry.readfrombuffer(_buf, logtitle="SMS #" + i) _sms = sms.SMSEntry() if _entry.msg_type==self.protocolclass.SMS_MSG_REC_UNREAD or \ _entry.msg_type==self.protocolclass.SMS_MSG_REC_READ: # unread/read inbox _sms._from = _entry.address _sms.folder = sms.SMSEntry.Folder_Inbox _sms.read = _entry.msg_type == self.protocolclass.SMS_MSG_REC_READ elif _entry.msg_type == self.protocolclass.SMS_MSG_STO_SENT: # outbox _sms.add_recipient(_entry.address) _sms.folder = sms.SMSEntry.Folder_Sent elif _entry.msg_type == self.protocolclass.SMS_MSG_STO_UNSENT: # saved _sms.folder = sms.SMSEntry.Folder_Saved _sms.add_recipient(_entry.address) else: self.log('Unknown message type: %s' % _entry.msg_type) _sms = None if _sms: if _entry.timestamp: _sms.datetime = _entry.timestamp _sms.text = _resp[i + 1] res[_sms.id] = _sms except: if __debug__: raise return res
def _getinboxmessage(self, sf): entry = sms.SMSEntry() entry.folder = entry.Folder_Inbox entry.datetime = "%d%02d%02dT%02d%02d%02d" % (sf.GPStime) entry._from = self._getsender(sf.sender, sf.sender_length) entry.subject = sf.subject entry.locked = sf.locked entry.priority = sms.SMSEntry.Priority_Normal entry.read = sf.read entry.text = sf.msg entry.callback = sf.callback return entry
def _process_sms_result(self, _res, _sms, fundamentals): """Process an SMS result as returned from the phone""" _buf=prototypes.buffer(_res[0]) _header=self.protocolclass.sms_m_read_resp() _field_cnt=len(_res[0].split(',')) _header.has_date=_field_cnt>2 _header.date_terminated=_field_cnt>4 # the date field also has a ',' _header.readfrombuffer(_buf, logtitle='Reading SMS Response') _entry=sms.SMSEntry() self._process_sms_header(_header, _entry) self._process_sms_text(_res, _entry) _sms[_entry.id]=_entry
def read(self): for i in self._valid_range: self._phone.progress(i, self._max_entries, 'Reading SMS Sent Entry '+str(i)) s=self._phone.get_sms_sent(i) if len(s)==self._field_num: e=sms.SMSEntry() e.folder=e.Folder_Sent e.datetime=s[self._datetime_index] e._to=s[self._to_index] e._from=s[self._from_index] e.text=unicode(s[self._text_index], errors='ignore') self._data[e.id]=e
def read(self): for i in self._valid_range: self._phone.progress(i, self._max_entries, 'Reading SMS Saved Entry '+str(i)) s=self._phone.get_sms_saved(i) if len(s)==self._field_num: e=sms.SMSEntry() e.folder=e.Folder_Saved e.datetime=s[self._datetime_index] e._from=s[self._from_index] e.subject, txt=self._extract_body(s[self._body_index]) e.text=unicode(txt, errors='ignore') self._data[e.id]=e
def _getinboxmessage(self, sf): entry = sms.SMSEntry() entry.folder = entry.Folder_Inbox entry.datetime = "%d%02d%02dT%02d%02d%02d" % sf.GPStime entry.read = bool(sf.read) entry.locked = bool(sf.locked) entry.priority = sms.SMSEntry.Priority_High if sf.priority else sms.SMSEntry.Priority_Normal entry._from = sf.sender if sf.sender else sf.sender_name entry.callback = sf.callback entry.subject = self._decode_subject(sf.subject, sf.encoding).encode('utf-8') msgs = sf.msgs[0:sf.num_msg_fragments] has_udh = sf.has_udh == 2 entry.text = self._decode_msg(msgs, sf.encoding, has_udh).encode('utf-8') return entry
def getfromfs(self, result, timestamp=None): # read data from the database sms_dict=self._main_window.database.\ getmajordictvalues(self._data_key, sms.smsobjectfactory, at_time=timestamp) r = {} for k, e in sms_dict.items(): ce = sms.SMSEntry() ce.set_db_dict(e) r[ce.id] = ce result.update({self._data_key: r}) # read the canned messages canned_msg_dict=self._main_window.database.\ getmajordictvalues(self._canned_data_key, sms.cannedmsgobjectfactory) for k, e in canned_msg_dict.items(): ce = sms.CannedMsgEntry() ce.set_db_dict(e) result.update(ce.get()) return result
def _getoutboxmessage(self, sf): entry = sms.SMSEntry() entry.folder=entry.Folder_Saved if sf.saved \ else entry.Folder_Sent entry.datetime = "%d%02d%02dT%02d%02d00" % ((sf.timesent)) # add all the recipients for r in sf.recipients: if r.number: confirmed = (r.status == 2) confirmed_date = None if confirmed: confirmed_date = "%d%02d%02dT%02d%02d00" % r.time entry.add_recipient(r.number, confirmed, confirmed_date) entry.subject = sf.msg[:28] entry.text = sf.msg entry.priority=entry.Priority_High if sf.priority else \ entry.Priority_Normal entry.locked = sf.locked entry.callback = sf.callback return entry
def _getinboxmessage(self, sf): entry = sms.SMSEntry() entry.folder = entry.Folder_Inbox entry.datetime = "%d%02d%02dT%02d%02d%02d" % (sf.GPStime) entry._from = sf.sender if sf.sender else sf.sender_name entry.subject = sf.subject entry.locked = sf.locked if sf.priority == 0: entry.priority = sms.SMSEntry.Priority_Normal else: entry.priority = sms.SMSEntry.Priority_High entry.read = sf.read txt = "" _decode_func=self._get_text_from_sms_msg_with_header if \ sf.msgs[1].msg_length else \ self._get_text_from_sms_msg_without_header for _entry in sf.msgs: if _entry.msg_length: txt += _decode_func(_entry.msg_data.msg, _entry.msg_length) entry.text = unicode(txt, errors='ignore') entry.callback = sf.callback return entry