gitea_get_notifications: improved to display open/open_mine/merged_mine

This commit is contained in:
Oliver Schraml 2022-01-26 09:50:10 +01:00 committed by suchademon
parent 84e727ef68
commit d092346c1f
Signed by: oliver.schraml
GPG Key ID: A55864B79D0D0228
1 changed files with 52 additions and 2 deletions

View File

@ -1,3 +1,53 @@
#!/bin/bash
echo "Gitea: $(tea notification ls --mine | grep -E "^\| [0-9]+.*Pull.*merged" | wc -l)"
exit 0
myuser="${1}"
markmineread=false
open_count=0
merge_count=0
open_notis_count=0
open_noti=$(tea notification ls --mine | grep -E "^\| +[0-9]+.* Pull .* open " | sed -E 's/[ \|]/@@/g;s/@@+/@@/g;s/^@@//g;s/@@$//g')
for merged_noti in $(tea notification ls --mine | grep -E "^\| +[0-9]+.* Pull .* merged " | sed -E 's/[ \|]/@@/g;s/@@+/@@/g;s/^@@//g;s/@@$//g'); do
mark_read=false
noti_id="$(grep -oE "^[0-9]+" <<<"${merged_noti}")"
noti_pr_id="$(grep -oE '@@#[0-9]+@@' <<<"${merged_noti}" | sed -e 's/[@#]//g')"
noti_repo="$(grep -oE '@[a-z0-9]+/[a-z0-9]+$' <<<"${merged_noti}" | sed -e 's/@//g')"
pr_info=$(tea pr ls --state all --repo "${noti_repo}" | grep -E "^\| +${noti_pr_id} .* closed ")
if grep -qE " closed +\| +${myuser} +\|" <<<"${pr_info}"; then
if $markmineread ; then
mark_read=true
else
let merge_count+=1
fi
elif grep -qE " closed +\| +[a-zA-Z]+ [a-zA-Z]+ +\|" <<<"${pr_info}"; then
mark_read=true
fi
if $mark_read ; then
tea notification read ${noti_id} &>/dev/null
fi
if open_merge_noti=$(grep -q " #${noti_pr_id} " <<<"${open_noti}"); then
tea notification read $(sed -E 's/^\| +([0-9]+) .*/\1/g' <<<"${open_merge_noti}") &>/dev/null
fi
done
open_notis=$(tea notification ls --mine | grep -E "^\| +[0-9]+.* Pull .* open " | sed -E 's/[ \|]/@@/g;s/@@+/@@/g;s/^@@//g;s/@@$//g')
if [ -n "${open_notis}" ]; then
open_notis_count=$(wc -l <<<"${open_notis}")
fi
for open_noti in ${open_notis}; do
noti_id="$(grep -oE "^[0-9]+" <<<"${open_noti}")"
noti_pr_id="$(grep -oE '@@#[0-9]+@@' <<<"${open_noti}" | sed -e 's/[@#]//g')"
noti_repo="$(grep -oE '@[a-z0-9]+/[a-z0-9]+$' <<<"${open_noti}" | sed -e 's/@//g')"
pr_info=$(tea pr ls --state all --repo "${noti_repo}" | grep -E "^\| +${noti_pr_id} .* closed ")
if grep -qE " open +\| +${myuser} +\|" <<<"${pr_info}"; then
let open_count+=1
fi
done
echo "GT: ${open_notis_count}/${open_count}/${merge_count}"