[nature] Add iNaturalist observation importer and scrobbles

- New nature app with SpeciesObservation model (scrobblable)
- SpeciesObservationLogData for observation-specific fields
- Atom feed parser + iNat REST API enrichment
- Photo download and local storage
- Celery periodic import (every 4 hours)
- Management command: import_from_inaturalist
- Species fields: title, scientific_name, taxon_id, iconic_taxon_name, rank, wikipedia_url
- Log fields: observation_id, photo_urls, quality_grade, place_guess, lat/lon, uri, identifications_count
- Updates existing scrobbles when observation data changes
- iNaturalist user mapping on UserProfile
- Templates, admin, API, URLs
- Default 5 minute run time for species observations
This commit is contained in:
2026-07-16 23:43:21 -04:00
parent 00249e3d3b
commit c3673e2679
28 changed files with 846 additions and 5 deletions

View File

@ -88,7 +88,7 @@ fetching and simple saving.
*** Metadata sources
**** Scraper
* Backlog [1/25] :vrobbler:project:personal:
* Backlog [3/26] :vrobbler:project:personal:
** TODO [#C] After transition to linux add curl_cffi as webpage scrapper again :webpages:metadata:
** TODO [#C] Create small utility to clean up tracks scrobbled with wonky playback times :bug:music:scrobbles:
:PROPERTIES:
@ -596,6 +596,21 @@ The Edit log form should have from top to bottom:
- Expansion ids (which should a multi-select widget of expansions for this game)
- Location (which should be a drop down of BoardGameLocations for this user)
** TODO [#B] Auto sync board game scrobbles to BGG :boardgames:
*** Description
** DONE [#B] Try adding a nature app with Observations and Species
:PROPERTIES:
:ID: 9551cf06-02b7-1bc9-3600-b0407ecc5967
:END:
*** Description
iNaturalist has a feed in atom.
** DONE [#A] Add ability to push one or sync all board game scrobbles to BGG :boardgames:
:PROPERTIES:
:ID: 1f306552-35e8-4a75-a661-b0956e8de967