From 26d254fa1819a04e802a100497242deda0672e69 Mon Sep 17 00:00:00 2001 From: Bence Ferdinandy Date: Mon, 22 Jan 2024 21:02:13 +0100 Subject: [PATCH] aerc: remove the need for syncnotmuchtag.py Originally the syncnotmuchtag.py was required to be able to move messages from the unified notmuch view into other folders (e.g. archive), but still keep in the appropriate account's maildir folder. Utilize the new {{.Filename}} template, that incidentally allows you to grab the appropriate maildir account's name (if the maildir folder on the filesystem has the same name as the account name in aerc). This allows moving with :mv [specificaccount]/folder. Unfortunately, this does not work for gmail due to multiple messages. --- .config/aerc/accounts.conf##c.imap | 2 +- .config/aerc/accounts.conf##default | 2 +- .config/aerc/binds.conf | 54 ++++++------ .config/emailconfiguration/mailsync-high | 2 - .config/emailconfiguration/syncnotmuchtag.py | 91 -------------------- 5 files changed, 31 insertions(+), 120 deletions(-) delete mode 100755 .config/emailconfiguration/syncnotmuchtag.py diff --git a/.config/aerc/accounts.conf##c.imap b/.config/aerc/accounts.conf##c.imap index 2ebc8a9..b40b8be 100644 --- a/.config/aerc/accounts.conf##c.imap +++ b/.config/aerc/accounts.conf##c.imap @@ -47,7 +47,7 @@ pgp-opportunistic-encrypt=false signature-file=~/.config/emailconfiguration/pharmahungary_signature.txt folder-map=~/.config/aerc/imap-folder-map-pharmahungary.conf -[gmail] +[priestoferis] source=imaps+oauthbearer://priestoferis@imap.gmail.com source-cred-cmd="mailctl access priestoferis" outgoing=smtps+oauthbearer://priestoferis@smtp.gmail.com diff --git a/.config/aerc/accounts.conf##default b/.config/aerc/accounts.conf##default index c178ffe..b0ab389 100644 --- a/.config/aerc/accounts.conf##default +++ b/.config/aerc/accounts.conf##default @@ -45,7 +45,7 @@ pgp-auto-sign=false pgp-opportunistic-encrypt=false signature-file=~/.config/emailconfiguration/pharmahungary_signature.txt -[gmail] +[priestoferis] # source=notmuch://~/.mail/ # maildir-store=~/.mail/ # maildir-account-path=priestoferis diff --git a/.config/aerc/binds.conf b/.config/aerc/binds.conf index b115a4c..9557a3b 100644 --- a/.config/aerc/binds.conf +++ b/.config/aerc/binds.conf @@ -60,7 +60,7 @@ tb = :change-tab bence:cf Inbox tp = :change-tab pharmahungary:cf Inbox te = :change-tab elte:cf Inbox tn = :change-tab notmuch:cf Inbox -tg = :change-tab gmail:cf Inbox +tg = :change-tab priestoferis:cf Inbox ü = :vsplit 80 ö = :split 20 @@ -123,18 +123,18 @@ A = :reply -acA {{index (.Filename | split ("/")) 4}} a = :reply -acqA {{index (.Filename | split ("/")) 4}} R = :reply -cA {{index (.Filename | split ("/")) 4}} r = :reply -cqA {{index (.Filename | split ("/")) 4}} -e = :modify-labels Archive aerc -# e = :exec /home/fbence/aerctest.sh -E = unmark -a:mark -T:modify-labels Archive aerc -m1 = :read:modify-labels 1_megválaszolni aerc -m2 = :read:modify-labels 2_rám_vár aerc -m3 = :read:modify-labels 3_másra_vár aerc -m4 = :read:modify-labels 4_olvasni aerc -m5 = :read:modify-labels 5_információ aerc -m6 = :read:modify-labels 6_visszaigazolások aerc -m7 = :read:modify-labels 7_hivatalos+pénzügyek aerc -m8 = :read:modify-labels 8_talán aerc -mi = :read:modify-labels Inbox aerc +e = :mv {{index (.Filename | split ("/")) 4}}/Archive +E = unmark -a:mark -T:mv {{index (.Filename | split ("/")) 4}}/Archive +m1 = :read:mv {{index (.Filename | split ("/")) 4}}/1_megválaszolni +m2 = :read:mv {{index (.Filename | split ("/")) 4}}/2_rám_vár +m3 = :read:mv {{index (.Filename | split ("/")) 4}}/3_másra_vár +m4 = :read:mv {{index (.Filename | split ("/")) 4}}/4_olvasni +m5 = :read:mv {{index (.Filename | split ("/")) 4}}/5_információ +m6 = :read:mv {{index (.Filename | split ("/")) 4}}/6_visszaigazolások +m7 = :read:mv {{index (.Filename | split ("/")) 4}}/7_hivatalos+pénzügyek +m8 = :read:mv {{index (.Filename | split ("/")) 4}}/8_talán +mi = :read:mv {{index (.Filename | split ("/")) 4}}/Inbox +d = :move {{index (.Filename | split ("/")) 4}}/Trash [view] @@ -203,18 +203,22 @@ t0 = :change-tab 0 P = :pipe -m git am -3 [view:account=notmuch] -m1 = :read:modify-labels 1_megválaszolni aerc -m2 = :read:modify-labels 2_rám_vár aerc -m3 = :read:modify-labels 3_másra_vár aerc -m4 = :read:modify-labels 4_olvasni aerc -m5 = :read:modify-labels 5_információ aerc -m6 = :read:modify-labels 6_visszaigazolások aerc -m7 = :read:modify-labels 7_hivatalos+pénzügyek aerc -m8 = :read:modify-labels 8_talán aerc -mi = :read:modify-labels Inbox aerc -e = :read:modify-labels Archive aerc close -E = :unmark -a:mark -T:read:modify-labels Archive aerc close -C = :compose +A = :reply -acA {{index (.Filename | split ("/")) 4}} +a = :reply -acqA {{index (.Filename | split ("/")) 4}} +R = :reply -cA {{index (.Filename | split ("/")) 4}} +r = :reply -cqA {{index (.Filename | split ("/")) 4}} +e = :mv {{index (.Filename | split ("/")) 4}}/Archive +E = unmark -a:mark -T:mv {{index (.Filename | split ("/")) 4}}/Archive +m1 = :read:mv {{index (.Filename | split ("/")) 4}}/1_megválaszolni +m2 = :read:mv {{index (.Filename | split ("/")) 4}}/2_rám_vár +m3 = :read:mv {{index (.Filename | split ("/")) 4}}/3_másra_vár +m4 = :read:mv {{index (.Filename | split ("/")) 4}}/4_olvasni +m5 = :read:mv {{index (.Filename | split ("/")) 4}}/5_információ +m6 = :read:mv {{index (.Filename | split ("/")) 4}}/6_visszaigazolások +m7 = :read:mv {{index (.Filename | split ("/")) 4}}/7_hivatalos+pénzügyek +m8 = :read:mv {{index (.Filename | split ("/")) 4}}/8_talán +mi = :read:mv {{index (.Filename | split ("/")) 4}}/Inbox +d = :move {{index (.Filename | split ("/")) 4}}/Trash [view::passthrough] $noinherit = true diff --git a/.config/emailconfiguration/mailsync-high b/.config/emailconfiguration/mailsync-high index a933e60..c7de04d 100755 --- a/.config/emailconfiguration/mailsync-high +++ b/.config/emailconfiguration/mailsync-high @@ -6,7 +6,5 @@ /home/fbence/.local/bin/msmtp-queue -r 2> >(xargs -r -I{} notify-send "mstmpq error" {} --urgency=critical) # update notmuch /usr/local/bin/notmuch new 2> >(xargs -r -I{} notify-send "notmuch error" {} --urgency=critical) -# snyc up notmuch tags -/home/fbence/.config/emailconfiguration/syncnotmuchtag.py 2> >(xargs -r -I{} notify-send "sync tag error" {} --urgency=critical) # set all unread emails not in mailbox to read fd -E '*/Inbox/' -E '~/.mail/priestoferis' '\d+\.\d+_\d+\.\w+,U=\d+:2,[^S]*$' ~/.mail -x mv {} {}S diff --git a/.config/emailconfiguration/syncnotmuchtag.py b/.config/emailconfiguration/syncnotmuchtag.py deleted file mode 100755 index 2782cd0..0000000 --- a/.config/emailconfiguration/syncnotmuchtag.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env python3 -import os - -from notmuch import Database, Query - -db = Database( - "/home/fbence/.mail/.notmuch", create=False, mode=Database.MODE.READ_WRITE -) - - -def move_maildir(msg, folder): - print(msg, folder) - path = msg.get_filename().replace( - "/.notmuch", "" - ) # get filename returns a single filename, although it could be in multipe places - account = "/".join(path.split("/")[:5]) - account = account.replace("/.notmuch", "") - filename = path.split("/")[-1] - print(filename) - try: - name, _, flags = filename.split(",") - except ValueError: - name, flags = filename.split(",") - - os.rename(path, f"{account}/{folder}/cur/{name}:2,{flags}") - - -# move folders -foldernames = [ - "1_megválaszolni", - "2_rám_vár", - "3_másra_vár", - "4_olvasni", - "5_információ", - "6_visszaigazolások", - "7_hivatalos+pénzügyek", - "Archive", -] -msgs = Query( - db, - "tag:aerc", -).search_messages() - -for msg in msgs: - for t in msg.get_tags(): - if t in foldernames: - move_maildir(msg, t) - break - for f in foldernames: - msg.remove_tag(f) - msg.remove_tag("aerc") - -del msgs -# sync inbox - -path1 = "elte/Inbox/**" -path2 = "priestoferis/Inbox/**" -path4 = "pharmahungary/Inbox/**" -path5 = "bence/Inbox/**" - -msgs = Query( - db, - f"tag:inbox and not (path:{path1} or path:{path2} or path:{path4} or path:{path5})", -).search_messages() - -for msg in msgs: - msg.remove_tag("inbox") - -del msgs - -msgs = Query( - db, - f"(path:{path1} or path:{path2} or path:{path4} or path:{path5}) and not tag:inbox", -).search_messages() - -for msg in msgs: - msg.add_tag("inbox") - -del msgs -# # sync unread -# msgs = Query( -# db, -# f"tag:unread and not (path:{path1} or path:{path2} or path:{path3} or path:{path4})", -# ).search_messages() - -# for msg in msgs: -# msg.remove_tag("unread", sync_maildir_flags=True) -# del msgs - -db.close() -del db