]> git.rmz.io Git - dotfiles.git/blob - isync/post-sync.d/10-youtube
isync: sync youtube parsing implementation with hactar
[dotfiles.git] / isync / post-sync.d / 10-youtube
1 #!/usr/bin/env bash
2
3 maildir="$MAILDIR/gmail"
4 yt_src_mb=youtube-orig
5 yt_dst_mb=youtube
6 yt_parser=$dir/parse-mail.py
7
8 if [[ $mbsync_errno -ne 0 ]]; then
9 echo "mbsync failed, ignoring post-sync commands." >&2
10 exit
11 fi
12
13 mbsync_args=$*
14
15 if [[ "$mbsync_args" != "gmail" ]]; then
16 # only run for gmail account
17 exit
18 fi
19
20 shopt -s extglob
21 shopt -s nullglob
22
23 if [[ ! -d "$maildir/$yt_src_mb" ]]; then
24 echo "No mailbox at '$maildir/$yt_src_mb'"
25 exit
26 fi
27
28 for mail in "$maildir"/$yt_src_mb/new/* ; do
29 mangled_mail=${mail/$yt_src_mb/$yt_dst_mb}
30 # remove UID for mbsync to regenerate it
31 mangled_mail="${mangled_mail/,U=+([0-9])}"
32
33 echo -n "Parsing new message '$(basename "$mail")'..."
34 $yt_parser <"$mail" >"$mangled_mail"
35
36 if [[ $? -eq 0 ]]; then
37 echo " Success."
38 else
39 echo " Failure! Copying message as is."
40 cp "$mail" "$mangled_mail"
41 fi
42
43 # sync {a,m}time
44 touch --reference "$mail" "$mangled_mail"
45 mv "$mail" "${mail/new/cur}S"
46 done
47
48 # resync new yt_dst_mb
49 mbsync -c "$config" gmail-$yt_src_mb gmail-$yt_dst_mb