X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/4132348c17d6a911c29984f14f3637addfb6e719..ce9777d2eb1dd03c5124dca2add71213b550d59f:/mbsync/post-sync.d/10-youtube.hook diff --git a/mbsync/post-sync.d/10-youtube.hook b/mbsync/post-sync.d/10-youtube.hook new file mode 100755 index 0000000..616a0ed --- /dev/null +++ b/mbsync/post-sync.d/10-youtube.hook @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +maildir="$MAILDIR/gmail" +yt_src_mb=youtube-orig +yt_dst_mb=youtube +yt_parser=$dir/parse-mail.py + +if [[ $mbsync_errno -ne 0 ]]; then + echo "mbsync failed, ignoring post-sync commands." >&2 + exit +fi + +mbsync_args=$* + +if [[ "$mbsync_args" != "gmail" ]]; then + # only run for gmail account + exit +fi + +shopt -s extglob +shopt -s nullglob + +if [[ ! -d "$maildir/$yt_src_mb" ]]; then + echo "No mailbox at '$maildir/$yt_src_mb'" + exit +fi + +for mail in "$maildir"/$yt_src_mb/new/* ; do + mangled_mail=${mail/$yt_src_mb/$yt_dst_mb} + # remove UID for mbsync to regenerate it + mangled_mail="${mangled_mail/,U=+([0-9])}" + + echo -n "Parsing new message '$(basename "$mail")'..." + $yt_parser <"$mail" >"$mangled_mail" + + if [[ $? -eq 0 ]]; then + echo " Success." + else + echo " Failure! Copying message as is." + cp "$mail" "$mangled_mail" + fi + + # sync {a,m}time + touch --reference "$mail" "$mangled_mail" + mv "$mail" "${mail/new/cur}S" +done + +# resync new yt_dst_mb +mbsync -c "$config" gmail-$yt_src_mb gmail-$yt_dst_mb