809f27cf01
* Queue song (#57) * Added code to queue song * Making functions async * Able to queue song * Cleanup * Link user to queued song (#59) * Renaming queue_song function * Queued song linked to user * Cleanup and code formatting * Queue metadata (#60) * Added code to queue metadata * Code formatting * Queue coverart (#61) * Added queued coverart code * Code formatting and cleanup * Link queued coverart to queued song (#62) * Added code to link queued coverart to queued song * Code formatting * Update queued song status (#63) * Added function call to update queued song status * Added skeleton method * Added more code to the method * Got it working * Code formatting * Multi upload (#64) * Added comments * Added TODO * Got it working * Updated documentation * Version bump * Code formatting and cleanup
82 lines
2.1 KiB
Markdown
82 lines
2.1 KiB
Markdown
# IcarusDownloadManager
|
|
|
|
IcarusDownloadManager is a CLI software client application that has the feature of uploading and downloading songs from the [Icarus](https://github.com/kdeng00/Icarus) Music Server.
|
|
|
|
|
|
## Built With
|
|
|
|
* Rust
|
|
* Cargo
|
|
* futures
|
|
* http
|
|
* reqwst
|
|
* serde
|
|
* serde_json
|
|
* tokio
|
|
* tokio-util
|
|
* icarus_models
|
|
|
|
|
|
### Getting Started
|
|
|
|
Clone the repo
|
|
|
|
```BASH
|
|
git clone git@github.com:kdeng00/IcarusDownloadManager.git
|
|
```
|
|
|
|
|
|
Build the project:
|
|
|
|
```BASH
|
|
cd IcarusDownloadManager
|
|
cargo build
|
|
```
|
|
|
|
Even though this project is open source, there are some libraries that are closed source (may be opened later).
|
|
In order to successfully build it, your ssh public key would be needed to add to the closed libraries. If you
|
|
have interest, something could be worked out to provide access.
|
|
|
|
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
|
|
|
|
```BASH
|
|
icarus-dm download -u spacecadet -p stellar40 -h https://icarus.com -b e8407fc6-edd2-44c1-993f-08dd7324d91a
|
|
```
|
|
|
|
### Uploading Song with metadata
|
|
|
|
```BASH
|
|
icarus-dm upload-meta -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -s /path/of/song.flac -t 1 -m /path/to/metadata/config/collection.json -ca /path/to/cover/art/image.png
|
|
```
|
|
|
|
### Uploading Song with metadata from directory
|
|
|
|
```BASH
|
|
icarus-dm upload-meta -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -smca /path/where/songs/and/metadata/exists/
|
|
```
|
|
|
|
### Retrieving Song in json
|
|
|
|
```Bash
|
|
icarus-dm retrieve -u spacecadet -p stellar40 -h https://icarus.com -rt songs
|
|
```
|
|
|
|
### Deleting Song
|
|
|
|
```BASH
|
|
icarus-dm delete -u spacecadet -p stellar40 -h https://icarus.com -D e8407fc6-edd2-44c1-993f-08dd7324d91a
|
|
```
|
|
|
|
|
|
## Contributing
|
|
|
|
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on the code of conduct, and the process for submitting pull requests to the project.
|
|
|
|
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
|