Receive personalized push alerts on a phone/desktop for new iNaturalist identifications between friends
Push notifications are collected via the iNaturalist API. New observations are collected from the current time to the most recent workflow run in Github Actions. The new observations are collected and sent to a phone/desktop through custom ntfy topics
- iNaturalist API: Collect recent observations from iNaturalist based on username
- GitHub Actions: Schedule how often observations are collected and sent
- ntfy: Sends push notifications to a Phone/Desktop
-
Fork this repository
-
Set Github Secrets for INaturalist username and ntfy topic
-
Add lines for each INaturalist username at the end of the
observation_reporter.yml
# Username (example: EXAMPLE_USERNAME) and NTFY (example: EXAMPLE_NTFY) stored in secrets
python notifications_for_user.py ${{ secrets.EXAMPLE_USERNAME }} ${{ secrets.EXAMPLE_NTFY }} ${{ env.LAST_CREATED_AT }}
Github Action scheduled to retrieve recent observations on a schedule during (day) UTC time
Currently scheduled to check for new observations every ten minutes during UTC North American Daytime (16-23 UTC)
*/10 16-23,0-2 * * *
Note
Every 30 minutes in the northern hemisphere winter months */30 16-23,0-2 * * *
Each observation since previous check is sent as an individual observation to the nfty topic that will be received by a phone/desktop as a custom alert
Note
Github Actions do not always run exactly every ten/thirty minutes (depends on internal Github Runners), but observations will be collected from when the last collection of observations were collected
Important
Github Actions workflows in a public repository are automatically disabled when no repository activity has occurred in 60 days
For developers, to run or test against intaturalist-push-notifications
Github fork, a development environment can be created via conda
First, install Miniconda
Then, using the existing environment.yml
, a new conda environment can be create to run/test scripts against
conda env create --file environment.yml
Once the environment has been built, activate the environment:
conda activate push_notifications