Kun Deng ee4469b385 Language Migration (#21)
* 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
2024-06-15 12:22:17 -04:00
2019-03-20 21:01:16 -04:00
2024-06-15 12:22:17 -04:00
2024-06-15 12:22:17 -04:00
2024-06-15 12:22:17 -04:00
2024-06-15 12:22:17 -04:00
2019-03-22 21:55:31 -04:00
2019-03-22 21:54:10 -04:00
2024-06-15 12:22:17 -04:00

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

S
Description
Software client that interfaces with Icarus, an API Music Server
Readme MIT 5.9 MiB
v0.8.4 Latest
2025-10-22 21:40:12 -04:00
Languages
Rust 100%