Initial / README
This commit is contained in:
commit
95a1f08dbf
89
README.md
Normal file
89
README.md
Normal file
@ -0,0 +1,89 @@
|
||||
# Uploader to automate the Upload and Import of Objects in museum-digital via WebDAV
|
||||
|
||||
## Workflow
|
||||
|
||||
### Setup
|
||||
|
||||
Before becoming operational, the app needs to gather the information essential for an upload.
|
||||
It will hence attempt to do so when first run (or unless all relevant information is available).
|
||||
|
||||
#### Required Information for Uploading
|
||||
|
||||
- Link to the given instance of musdb (e.g. https://demo.museum-digital.org/musdb/)
|
||||
- Username
|
||||
- Mail address
|
||||
- Auth token for WebDAV access
|
||||
- Institution ID
|
||||
- Parser
|
||||
- Location of metadata files to upload
|
||||
- Location of images files to upload
|
||||
|
||||
#### Setup workflow
|
||||
|
||||
- First, the app requests the musdb *username* and *password*
|
||||
- It uses those to log in one time, retrieves `institution_id` and `user_mail`
|
||||
via the yet to be created `/user/read/{id}` (see below) API as well as an
|
||||
auth token for WebDAV uploads (via `/user/generate_webdav_access_token/{id}`)
|
||||
- The app verifies that a WebDAV connection can be established and leaves a
|
||||
.txt file in the WebDAV directory to signal, that the import is run via the
|
||||
uploader
|
||||
- The app lists the available parsers and requests the user to select one /
|
||||
enter one's name
|
||||
- The app opens a file selection dialogue querying the user to select a folder
|
||||
to upload metadata from
|
||||
- The app opens a file selection dialogue querying the user to select a folder
|
||||
to upload images from
|
||||
- The thus gathered information is stored in a config file. The password is
|
||||
discarded.
|
||||
|
||||
### Upload workflow
|
||||
|
||||
- Version check (*is the updater up to date*)
|
||||
- Config check (*is all necessary data configured*)
|
||||
- Check the configured location
|
||||
+ If the location does not exist, it displays a verbose warning
|
||||
+ If the metadata location exists and is not empty, the files upload is
|
||||
triggered
|
||||
- Metadata files and image files are uploaded via WebDAV
|
||||
- The script generates the import configuration based on the data gathered
|
||||
during setup
|
||||
|
||||
## Commands
|
||||
|
||||
- [ ] Upload
|
||||
- [ ] Verify ability to connect
|
||||
- [ ] Set optional setting (do the settings need to be validated?)
|
||||
- [ ] List config
|
||||
- [ ] Remove optional setting (in case an erroneous setting value has been set)
|
||||
- [ ] `--version` command to check currently installed version
|
||||
- [ ] Version check (via Gitea release RSS feed)
|
||||
|
||||
## Interface
|
||||
|
||||
- A command line interface is sufficient for this application
|
||||
|
||||
## Libraries/resources to include
|
||||
|
||||
- `requests` / HTTP library
|
||||
- JSON parser
|
||||
- XML parser (for version/update check)
|
||||
- [WebDAV client](https://pypi.org/project/webdav4/)
|
||||
|
||||
Either JSON or XML may also serve to store the config data.
|
||||
|
||||
## Additional, optional features
|
||||
|
||||
- Multilinguality
|
||||
|
||||
## Requirements
|
||||
|
||||
- A museum to try this out with
|
||||
- Scripts connecting this one with the museum's collection management system:
|
||||
+ Runs export periodically, exports metadata to the target metadata folder,
|
||||
copies relevant image files in the image folder. Negotiation of whether objects
|
||||
need to be updated is handled by this script.
|
||||
|
||||
## External requirements
|
||||
|
||||
- [ ] [musdb API: /user/read/{id}](https://gitea.armuli.eu/museum-digital/musdb/issues/1291)
|
||||
- [ ] [musdb API: /list_import_formats](https://gitea.armuli.eu/museum-digital/musdb/issues/1292)
|
Loading…
x
Reference in New Issue
Block a user