reworked suggestions

This commit is contained in:
tabledevil
2020-02-05 22:51:09 +01:00
parent 94b226c580
commit 6f112d1ea7

View File

@@ -12,7 +12,7 @@ config_file_path=os.path.join(os.path.expanduser('~'),".imap_virus_marvin.ini")
dialog=dialog.Dialog() dialog=dialog.Dialog()
dialog.set_background_title("IMAP-Mail-Renamer") dialog.set_background_title("IMAP-Mail-Renamer")
marvin_pattern=re.compile('MARVIN\d{14}_') marvin_pattern=re.compile('MARVIN\d{14}_')
marvin_candidates=re.compile('(([mM][aA][rR][vV][iI][nN].{0,3})?\d{14})') marvin_candidates=re.compile('(?:[mM][aA][rR][vV][iI][nN].{0,3})?(\d{14})')
def edit(num): def edit(num):
pass pass
@@ -119,33 +119,36 @@ def print_mail(num):
dialogit(str(eml)) dialogit(str(eml))
def scan_for_marvins(eml): def scan_for_marvins(eml):
results=marvin_candidates.findall(eml.as_string()) texttosearch="\n".join(get_header(eml,'Subject'))
for part in eml.walk():
if 'text/plain' == part.get_content_type():
texttosearch+="\n"+force_decode(part.get_payload(decode=True))
results=marvin_candidates.findall(texttosearch)
ergebnisse=[] ergebnisse=[]
for x in results: for x in results:
if x[0] not in ergebnisse: if x not in ergebnisse:
ergebnisse.append(x[0]) ergebnisse.append(x)
return ergebnisse return ergebnisse
def edit_mail(num): def edit_mail(num):
global im global im
global config global config
eml=get_mail(num) eml=get_mail(num)
old_subject=get_header(eml,'Subject') old_subject=get_header(eml,'Subject')[0]
results=scan_for_marvins(eml) results=scan_for_marvins(eml)
suggesttext="Found {} possible marvins".format(len(results)) suggesttext="Found {} possible marvins".format(len(results))
suggesttext+="\n" suggesttext+="\n"
suggesttext+="\n".join(results) suggesttext+="\n".join(results)
dialog.msgbox(suggesttext,width=110) suggestes_subject="MARVIN#{}_{}".format(results[0],old_subject)
action,new_subject=dialog.inputbox(suggesttext,init=suggestes_subject,height=30,width=110)
# action,new_subject=dialog.inputbox(suggesttext,init=old_subject) if action == "OK":
# if action == "OK": eml.replace_header('Subject',new_subject)
# eml.replace_header('Subject',new_subject) c,d = im.append('INBOX','', imaplib.Time2Internaldate(time.time()),str(eml).encode('utf-8'))
# c,d = im.append('INBOX','', imaplib.Time2Internaldate(time.time()),str(eml).encode('utf-8')) # c= OK
# # c= OK # d= [b'[APPENDUID 1252405521 2655] APPEND Ok.']
# # d= [b'[APPENDUID 1252405521 2655] APPEND Ok.'] # if append ok delete original mailbox
# # if append ok delete original mailbox if "OK" in c:
# if "OK" in c: delete_mail(num)
# delete_mail(num)
def quit(): def quit():
exit(0) exit(0)
@@ -179,8 +182,8 @@ def make_choice():
im.logout() im.logout()
def main(): def main():
f=open('testmail','rb') # f=open('testmail','rb')
eml=email.message_from_binary_file(f) # eml=email.message_from_binary_file(f)
# dialogit("\n".join(scan_for_marvins(eml))) # dialogit("\n".join(scan_for_marvins(eml)))
make_choice() make_choice()