コード例 #1
0
ファイル: worker.py プロジェクト: paolo-losi/msgbox
    def _rx_sms(self, sms):
        if isinstance(sms, ReceivedSms):
            try:
                number = convert_to_international(sms.number, sms.smsc)
            except Exception, e:
                logger.error('error while converting to int: %s', e)
                number = sms.number
            sms_dict = dict(sender=number,
                            recipient=self.sim_config.phone_number,
                            text=sms.text,
                            tstamp=sms.time,
                            url=self.sim_config.url)

            if sms.udh is not None:
                concats = [i for i in sms.udh if isinstance(i, Concatenation)]
                assert len(concats) <= 1
                if concats:
                    sms_dict['concat'] = concats[0]
                    logger.info('concat sms received - '
                                'sender=%s recipient=%s part=%d/%d',
                                 sms_dict['sender'],
                                 sms_dict['recipient'],
                                 sms_dict['concat'].number,
                                 sms_dict['concat'].parts)
                    concat_sms_dict = self.concat_pool.merge(sms_dict)
                    if concat_sms_dict:
                        http_client_manager.enqueue(concat_sms_dict)
                    return

            http_client_manager.enqueue(sms_dict)
コード例 #2
0
ファイル: worker.py プロジェクト: paolo-losi/msgbox
 def _work(self):
     while True:
         try:
             self._stop_queue.get(timeout=10)
             break
         except Empty:
             pass
         now = time.time()
         with self.lock:
             for k, v in self.pool.items():
                 sms_dicts, tstamp = v
                 if now - tstamp > self.CONCAT_TIMEOUT:
                     del self.pool[k]
                     sms_dict = self._process_concat_msg(sms_dicts)
                     logger.warn('concat sms timeout - '
                                 'sender=%s recipient=%s',
                                  sms_dict['sender'], sms_dict['recipient'])
                     http_client_manager.enqueue(sms_dict)