Exemplo n.º 1
0
 def makeTimeLocal(origTimeStr):
     """
     Oct 2011, examples 1.3: display sent-time relative to local 
     timezone; must do after decode and for header size calc too; 
     runs: formatdate(mktime_tz(parsedate_tz(there)), localtime=True)
     """
     from email.utils import formatdate
     from email._parseaddr import parsedate_tz, mktime_tz
     if origTimeStr in [' ', '']:
         return origTimeStr  # common case: parser fails
     try:
         timeTuple = parsedate_tz(origTimeStr)
         utcTimeNum = mktime_tz(timeTuple)
         localTimeStr = formatdate(utcTimeNum, localtime=True)
         return localTimeStr
     except:
         #import traceback; traceback.print_exc()
         #print('Local time failed:', sys.exc_info()[0], sys.exc_info()[1])
         return origTimeStr  # use orig date-time text if anything fails
Exemplo n.º 2
0
        def makeTimeLocal(origTimeStr):
            """
            must do after decode and for header size calc too;
            runs: formatdate(mktime_tz(parsedate_tz(there)), localtime=True)
            """
            from email.utils import formatdate   
            from email._parseaddr import parsedate_tz, mktime_tz
            if origTimeStr in [' ', '']: 
                return origTimeStr  # common case: parser fails

            try:
                timeTuple    = parsedate_tz(origTimeStr)
                utcTimeNum   = mktime_tz(timeTuple)
                localTimeStr = formatdate(utcTimeNum, localtime=True)
                return localTimeStr
            except:
                #import traceback; traceback.print_exc()
                #print('Local time failed:', sys.exc_info()[0], sys.exc_info()[1])
                return origTimeStr  # use orig date-time text if anything fails
Exemplo n.º 3
0
    def parse_Message(self, message):
        headers = {}

        if message.get('payload') is None:
            Dev.pprint("no payload for message: {0}".format(message))
            return {}
        for item in message['payload']['headers']:
            headers[item['name']] = item['value']

        tt = parsedate_tz(headers['Date'])
        timestamp = mktime_tz(tt)

        result = {
            'subject': headers['Subject'],
            'date': datetime.datetime.fromtimestamp(timestamp),
            'date_raw': headers['Date'],
            'from': headers['From'],
            'id': message['id'],
            'labels': message['labelIds'],
            'threadId': message['threadId'],
            'snippet': message['snippet'],
            'size': message['sizeEstimate'],
            # 'headers'   : headers,
            #'raw'       : message
        }
        if message['payload']['body'].get('data'):
            result['body'] = base64.urlsafe_b64decode(message['payload'].get(
                'body').get('data').encode('ASCII')).decode()
            #result['body'] = base64.decodebytes(message['payload']['body']['data'].encode()).decode()
        else:
            if message['payload'].get('parts'):
                for part in message['payload'].get('parts'):
                    if part.get('body').get('data'):
                        result['body'] = base64.urlsafe_b64decode(
                            part.get('body').get('data').encode(
                                'ASCII')).decode()
        return result
Exemplo n.º 4
0
 def to_local_time(self, tweet_timestamp):
     """Convert rfc 5322 -like time string into a local time
        string in rfc 3339 -like format.
     """
     timestamp = mktime_tz(parsedate_tz(tweet_timestamp))
     return datetime.fromtimestamp(timestamp)
Exemplo n.º 5
0
 def to_local_time(self, tweet_timestamp):
     """Convert rfc 5322 -like time string into a local time
        string in rfc 3339 -like format.
     """
     timestamp = mktime_tz(parsedate_tz(tweet_timestamp))
     return datetime.fromtimestamp(timestamp)