def execute(args): try: logging.info("INIT PROCESS") time.sleep(2) #Check args if (len(args) > 1): labelname = args[0] month = args[1] else: logging.error("not enough args") sys.exit() #Authenticate to your gmail address service = gb.auth_service_to("averneus") logging.info("GET DATA") time.sleep(2) ## get mails with given Label label_ids = gb.get_id_for_labelname(service, labelname) label_mailids = gb.list_messages_with_label(service, "me", label_ids=[label_ids]) ## Get mail info from Ids mailBox = gb.mailBox_retriever(service, label_mailids, verbose=True) logging.info("PROCESS DATA") time.sleep(2) ## get labeled mails before given Date Threshold fms = gb.find_mailids_below_threshold(mailBox, month=int(month), verbose=False) if (fms == []): logging.warning("No mails found to trash") elif (fms != [] and type(fms) == list): ## trash mails older than Threshold logging.info("Trying to delete mail") for mail in fms: gb.trash_message(service, mail["id"]) logging.debug('Gone - {}'.format(mail["snippet"])) else: logging.warning( "Something is wrong with fms variable: go check trash_message") except Exception as e: logging.error(e) exc_info = sys.exc_info() # Display the *original* exception traceback.print_exception(*exc_info) del exc_info
#! /usr/bin/env python3 import gmail_bot_functions as gb import dateutil.relativedelta import datetime from time import time import csv import logging service = gb.auth_service() mailIds = gb.list_all_messages(service, "me") logging.info("retrieving mails") mailBox = gb.mailBox_retriever(service, mailIds, verbose=True) logging.info("counting mails") counted_messages, sorted_counted_messages = gb.count_retrieved_messages( mailBox) #CSV writer source: https://pythonspot.com/save-a-dictionary-to-a-file/ logging.info("writing into: " + filename) filename = "counted_messages.csv" w = csv.writer(open(filename, "w")) for key, val in counted_messages.items(): w.writerow([key, val])
def execute(args): try: if (len(args) > 0): pass else: print("not enough args") sys.exit() print("### INIT") time.sleep(5) #Authenticate to your gmail address service = gb.auth_service() print("### GET DATA ") time.sleep(5) # Get all mail ids query = args[0] labelname = args[1] mailIds = gb.list_messages_with_matching_query(service, "me", query=query) #mailIds_glassdoor = gb.list_messages_with_matching_query(service, "me", query='glassdoor') #mailIds_dailycode = gb.list_messages_with_matching_query(service, "me", query='Daily Coding') #label_actions_dailycode = {'removeLabelIds': [labelids["inbox"]], # 'addLabelIds': [labelids["dailycode"]]} # Get label ids """labelids = {"jobapp" : gb.get_id_for_labelname(service, "JobApp"), "inbox" : gb.get_id_for_labelname(service, "INBOX"), "dailycode" : gb.get_id_for_labelname(service, "Daily Code")}""" labelid = gb.get_id_for_labelname(service, labelname) labelid_inbox = gb.get_id_for_labelname(service, "INBOX") label_actions_jobapp = { 'removeLabelIds': [labelid_inbox], 'addLabelIds': [labelid] } # Get mail info from Ids print("# Retrieving: '" + query + "' related mails") mailBox = gb.mailBox_retriever(service, mailIds, verbose=True) print("### PROCESS DATA") time.sleep(5) # find un-labeled mails ("JobApp") and label those for mail in mailBox: if (labelid in mail["labelIds"]): #print("It has JobApp label: " + mail["id"] ) pass else: print("Modifing to JobApp:" + mail["id"]) gb.modify_message_label(service, "me", mail["id"], label_actions_jobapp) #modify_message_label(service, user_id, msg_id, msg_labels) except: exc_info = sys.exc_info() # Display the *original* exception traceback.print_exception(*exc_info) del exc_info