first try at implementing delete from r2e when project unstarred

This commit is contained in:
CaptainArk 2018-04-19 23:38:17 +02:00
parent b5ec9eda3b
commit 0e2541de76
2 changed files with 16 additions and 7 deletions

View File

@ -4,6 +4,8 @@
Github2eMail is a bash script that parses the GitHub API for projects you've starred and adds them to your rss2email configuration.
The script will also delete projects it has added to your rss2email configuration if you're not starring them on GitHub anymore.
## Dependencies
- [curl](https://github.com/curl/curl)
@ -23,7 +25,3 @@ Run the script.
You're done !
You can also run the script periodically from cron if you want.
## TODO
Remove projects that were added by the script and are no longer starred by the user on GitHub from rss2email configuration.

View File

@ -10,7 +10,7 @@ if [[ -z ${UserName} ]] || [[ $UserName == "changemeplease" ]]; then
fi
GitHubApi="https://api.github.com/users/${UserName}/starred"
LastPage="$(curl -I ${GitHubApi} | grep -Eo 'page=[[:digit:]]+' | tail -n1)"
LastPage="$(curl -sI ${GitHubApi} | grep -Eo 'page=[[:digit:]]+' | tail -n1)"
TempFile=$(mktemp -t github2email.sh.XXXXXXXXXX)
# Checking for dependencies
@ -38,11 +38,22 @@ for Star in $(cat ${TempFile}); do
# Only add a project to r2e config if it does not already exist
IsDeclaredProject="$(r2e list | grep ${ProjectUrl})"
if [[ -z ${IsDeclaredProject} ]]; then
r2e add ${ProjectName} ${ProjectUrl}
r2e add g2e_${ProjectName} ${ProjectUrl}
# We only want to be informed of future releases
r2e run --no-send ${ProjectName}
r2e run --no-send g2e_${ProjectName}
echo "Project ${ProjectName} has been added to rss2email configuration !"
fi
done
# Delete projects that were added to rss2email by this script but are no longer starred on GitHub
AddedProjects="$(r2e list | grep g2e_ | grep -Eo "https://github.com/.*/releases.atom")"
for Projects in ${AddedProjects}; do
StillStaredProject="$(grep ${Projects} ${TempFile})"
if [[ -z $StillStaredProject ]]; then
ProjectToRemove=${StillStaredProject%,*}
r2e delete ${ProjectToRemove}
echo "Project ${ProjectName} has been removed from rss2email configuration !"
fi
done
[[ -f ${TempFile} ]] && rm ${TempFile}