(gitHub repository)
This Python script is designed to simplify and streamline metadata entry for DSpace v5.10 repositories. Manual metadata entry in DSpace can be complex and error-prone; this tool automates common tasks[...]
Although DSpace v5.10 is now deprecated, many institutions still rely on it for their digital collections. This script is dedicated solely to DSpace v5.10, addressing its unique requirements and makin[...]
We invite the community to fork this code, use it for your own needs, and contribute improvements – together, we can make metadata entry for DSpace v5.10 repositories effortless and efficient!
This Python script is designed to facilitate the preparation of bibliographic metadata for import into the institutional repository by transforming and enriching data from a CSV file exported from Sco[...]
-
User Interactivity via GUI: The script uses a graphical file dialog (via Tkinter) to let the user select the input CSV file (containing publication metadata, including DOIs) and specify the output file location for the processed[...]
-
Duplicate Checking: For each row in the input CSV, the script checks if the DOI (Digital Object Identifier) already exists in the VinaR repository by sending a POST request to the VinaR REST API. If the DOI already exist[...]
-
Metadata Enrichment: For every DOI that is not a duplicate, the script queries the Scopus API (via Elsevier’s REST API) to retrieve additional metadata, such as authors, page numbers, publication date, abstract, ISSN/IS[...]
-
Data Transformation and Output: The retrieved and processed metadata is formatted according to the requirements of the VinaR repository and written as a new row in the output CSV file. The output CSV includes specific headers needed[...]
-
Error Handling and Logging: The script prints informative messages to the console, such as when DOIs are found to be duplicates, when rows are skipped, or if there are network/API errors.
The .env.example file contains template environment variable definitions required to run the script, such as API keys and endpoint URLs.
Do not store real credentials in .env.example. Instead, copy .env.example to a new file named .env and fill in your actual credentials and settings there.
The script automatically loads variables from your .env file to securely provide access to APIs and services.
Instructions:
- Copy
.env.exampleto a new file named.envin the root project directory. - Edit the
.envfile and enter your API keys, access tokens, and other configuration details as indicated. - Keep your
.envfile private and do not commit it to version control (e.g., GitHub). - The script will use the variables from your
.envfile during execution.
The script was tested and approved on VinaR, the institutional repository of the VINCA Institute of Nuclear Sciences - University of Belgrade.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0