feat(harvester): add Memovs audiovisual archives API#4024
Open
rerowep wants to merge 1 commit into
Open
Conversation
a072a85 to
6377ef8
Compare
e41e4c2 to
6170f6c
Compare
6170f6c to
f2ff57a
Compare
02670f4 to
07a5ba6
Compare
9de0c23 to
dd9acfe
Compare
dd9acfe to
0861a59
Compare
da8348f to
817eb99
Compare
0473432 to
617a1bc
Compare
6222b76 to
b08d551
Compare
jma
approved these changes
May 28, 2026
PascalRepond
requested changes
May 28, 2026
b08d551 to
74eabef
Compare
PascalRepond
approved these changes
May 28, 2026
8d40235 to
3494bf2
Compare
jma
approved these changes
Jun 1, 2026
Add new API harvester for Médiathèque Valais audiovisual archives (archives.memovs.ch) enabling automatic ingestion of Film, Photo, and Audio metadata from the Memovs digital archives into RERO-ILS. Harvester (api_harvester/memovs/): * ApiMemovs class with pagination, date filtering, and orphan deletion * Celery tasks for scheduled harvest and cleanup of removed records * Configuration as VS-MEMO in apisources.yml with location/item_type PIDs * Alembic migration for default location and item_type PID settings BIBFRAME-to-RERO-ILS transformation (dojson/json/model.py): * Document type detection from bf:content/bf:media/bf:carrier (Film, Audio, Photo, Other) * Provision activity from bf:provisionActivity with date normalisation * Electronic locators for landing page and thumbnail * MEF entity resolution for contributions, subjects, genre/form and places * Fallback to identifiedBy when MEF ref cannot be resolved * Physical description from bf:extent split into extent, otherPhysicalDetails and colorContent * Warning logged when bf:contribution agent carries a URL as rdfs:label Document and item creation (api.py): * Holdings created per document with electronic locations * Items created per bf:hasPart call number, stale items deleted on update * Local fields synced from bf:note annotations (vsavmat, vsavgeo, vsavfonds...) Other changes: * feat(documents): add rpt (Reporter) to contribution roles schema * refactor(documents): load _CONTRIBUTION_ROLE dynamically from JSON schema Co-authored-by: Peter Weber <peter.weber@rero.ch>
3494bf2 to
de758ad
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add new API harvester for Médiathèque Valais audiovisual archives (archives.memovs.ch). This harvester enables automatic ingestion of Film, Photo, and Audio metadata from the Memovs digital archives.
Implementation includes:
Configuration added as VS-MEMO in apisources.yml with endpoint https://archives.memovs.ch/docs/api/ and code 'memovs'.