First working version

- Move from separate dirs for upload to a unified one (identify
  media/metadata files by file extension)
- Prevent uploading when an import is already scheduled
- Allow setting custom, parser-specific settings
- Add CLI
- Implement WebDAV upload
- Implement checking of upload folders for uploadable contents

Close #6, close #7, close #9, close #3, close #1, close #4
This commit is contained in:
2025-02-27 17:29:20 +01:00
parent 9a5c432186
commit 7cfd3bb1de
12 changed files with 553 additions and 72 deletions

View File

@@ -14,8 +14,7 @@ type MDWebDavUploaderConfig struct {
WebDavAuthToken string `json:"token"`
InstitutionId int `json:"institution_id"`
Parser string `json:"parser"`
MetadataFolder string `json:"metadata_folder"`
MediaFolder string `json:"media_folder"`
UploadDir string `json:"upload_directory"`
PublishOnImport bool `json:"visible"`
Settings map[string]string `json:"settings"`
}
@@ -125,19 +124,12 @@ func ValidateConfig(conf MDWebDavUploaderConfig) (MDWebDavUploaderConfig, error)
}
conf.Parser = parserLink
// Validate and clean metadata folder
metadataFolder, mFolderErr := ValidateUploadDir(conf.MetadataFolder)
// Validate and clean upload folder
uploadDir, mFolderErr := ValidateUploadDir(conf.UploadDir)
if mFolderErr != nil {
return conf, mFolderErr
}
conf.MetadataFolder = metadataFolder
// Validate and clean media folder
mediaFolder, mediaFolderErr := ValidateUploadDir(conf.MediaFolder)
if mediaFolderErr != nil {
return conf, mediaFolderErr
}
conf.MediaFolder = mediaFolder
conf.UploadDir = uploadDir
return conf, nil