ee4469b385ec4be6f8a46e0a9f0f0b02e49d7311
* Blank slate * Added gitignore * Updated gitignore * Added rust code * Added modules * Fixed build issues * rustfmt * Updated models * Added parsers module * Updated utilities module * Updated main.rs * Updated api_parser and song model * Updated icarus_action model * Updated structs in managers module * Updated main.rs * More changes * Saving changes * Added new struct and methods * More changes. Not functional yet * Changed name of the project * Removed cmake workflow * Adding rust workflow * Adding code to the syncers module * Cargo formatting * Continuing work * Adding code to the syncers module * Added dependencies * Adding more code to the syncers module * Added more code to the syncers module It's not 100 percent done yet, I'll work on other modules * Added more code to the managers module * Added code to request a token * Cargo formatting * Adding more code to multi target upload * Adding more multi-target upload code and formatted code * Added more multi-upload code * cargo fmt * Got uploading functional and cargo fmt-ing * Uploading multi target works, but is buggy Not all of the songs are being uploaded * Added single target upload * Single target upload is functional but need to revisit multi-target upload Multi-target upload is broken now. Needs to be revisited * Fixed multi target upload * Can now retrieve songs * Downloading functionality is working * Delete functionality is operational * Updated README * More cleanup * Added test
IcarusDownloadManager
IcarusDownloadManager is a CLI software client application that has the feature of uploading and downloading songs from the Icarus Music Server.
Built With
- Rust
- Cargo
- futures
- http
- reqwst
- serde
- serde_json
- tokio
- tokio-util
Getting Started
Clone the repo
git clone --recursive https://github.com/kdeng00/IcarusDownloadManager
Build the project:
cd IcarusDownloadManager
cargo build
The program has been built and can be executed by the binary file icarus-dm. For information on how to use icarua-dm, merely execute the program without any command line arguments.
Downloading Song
icarus-dm download -u spacecadet -p stellar40 -h https://icarus.com -b 15
Uploading Song with metadata
icarus-dm upload-meta -u spacecadet -p stellar40 -h https://icarus.com -s /path/of/song.mp3 -t 1 -m /path/to/metadata/config/collection.json -ca /path/to/cover/art/image.png
Uploading Song with metadata from directory
icarus-dm upload-meta -u spacecadet -p stellar40 -h https://icarus.com -smca /path/where/songs/and/metadata/exists/
Retrieving Song in json
icarus-dm retrieve -u spacecadet -p stellar40 -h https://icarus.com -rt songs
Deleting Song
icarus-dm delete -u spacecadet -p stellar40 -h https://icarus.com -D 15
Contributing
Please read CONTRIBUTING.md for details on the code of conduct, and the process for submitting pull requests to the project.
Versioning
v0.4.0
v0.3.2
v0.3.0
v0.2.0
v0.1.2
v0.1.1
v0.1.0
License
This project is licensed under the MIT License - see the LICENSE.md file for details