def get_email_messages(config, auth, email_from, email_to, subject_regexp=None, date_min=None, date_max=None): if config.verbose: print('GETTING EMAILS') query = 'from:%s AND to:%s' % (email_from, email_to) if date_min: query += ' AND after:%s' % date_to_str(date_min) if date_max: query += ' AND before:%s' % date_to_str( date_max + timedelta(days=1)) # make it inclusive if config.verbose: print('EMAIL SEARCH:', query) messages = API_Gmail(config, auth, iterate=True).users().messages().list( userId='me', q=query).execute() subject_filter = re.compile(r'%s' % subject_regexp) if subject_regexp else None for message in messages: message = API_Gmail(config, auth).users().messages().get( userId='me', id=message['id']).execute() if subject_filter is None or subject_filter.match( get_subject(message)): yield message
def _email_find(service, email_from, email_to, date_min=None, date_max=None): query = 'from:%s AND to:%s' % (email_from, email_to) if date_min: query += ' AND after:%s' % date_to_str(date_min) if date_max: query += ' AND before:%s' % date_to_str(date_max + timedelta(days=1)) # make it inclusive if project.verbose: print('EMAIL SEARCH:', query) results = API_Retry(service.users().messages().list(userId='me', q=query)) messages = results.get('messages', []) if project.verbose: print('EMAILS FOUND:', len(messages)) return messages
STARTHINKER_TRACE_TO_PRINT = to_print STARTHINKER_TRACE_TO_FILE = to_file if STARTHINKER_TRACE_TO_PRINT or STARTHINKER_TRACE_TO_FILE: sys.settrace(starthinker_trace) if __name__ == '__main__': def c(): raise RuntimeError('exception message goes here') def b(): try: c() except Exception as e: pass return 'response_from_b ' def a(): val = b() return val.replace('_b', '_a') from starthinker.util.regexp import date_to_str starthinker_trace_start() a() date_to_str(None)