11 Commits
Author SHA1 Message Date
phoenix 9be97d7e6f cargo update
Rust / build (pull_request) Successful in 2m14s
2026-07-10 19:22:20 -04:00
phoenix 5079a207bc bump: textsender_models 2026-07-10 19:21:24 -04:00
phoenix 2ee7877769 bump: http 2026-07-10 19:20:48 -04:00
phoenix 1aabf5c7e2 bump: reqwest 2026-07-10 19:20:20 -04:00
phoenix 4885c3ce5f bump: serde_json 2026-07-10 19:19:49 -04:00
phoenix 094e7f9013 bump: tokio 2026-07-10 19:19:21 -04:00
phoenix 919d994e25 bump: uuid 2026-07-10 19:18:52 -04:00
phoenix e32ebfde6f Removing futures 2026-07-10 19:18:07 -04:00
phoenix ed528dd8fd bump: rust ci 2026-07-10 19:16:33 -04:00
phoenix a8ed05c278 tsk-100: Name change (#101)
Rust / build (push) Successful in 1m44s
Rust / build (pull_request) Successful in 3m10s
From `icarus_dm` -> `idm`.

Closes #100

Reviewed-on: phoenix/icarus_dm#101
2026-07-10 19:03:11 -04:00
phoenix 489d13227b Update rust (#99)
Rust / build (pull_request) Failing after 4s
* bump: rust

* bump: rust ci

* Updated License

* bump: reqwest

* bump: tokio

* bump: uuid

* bump: icarus_models

* cargo update

* bump: icarus_dm
2026-05-05 21:05:40 -04:00
6 changed files with 266 additions and 684 deletions
@@ -15,19 +15,17 @@ jobs:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
- name: Install Rust version - uses: actions-rust-lang/setup-rust-toolchain@v1
run: rustup install 1.94 && rustup default 1.94 with:
toolchain: 1.97
- name: Debug secret - uses: Swatinem/rust-cache@v2
run: echo "${{ secrets.MYREPO_TOKEN }}" | head -c 10 ; echo "..."
- name: Build - name: Build
run: | run: |
mkdir -p ~/.ssh mkdir -p ~/.ssh
echo "$EXTREPO_KEY" > ~/.ssh/gitlab_deploy_key echo "$EXTREPO_KEY" > ~/.ssh/gitlab_deploy_key
chmod 600 ~/.ssh/gitlab_deploy_key chmod 600 ~/.ssh/gitlab_deploy_key
ssh-keyscan ${{ vars.MYHOST }}= >> ~/.ssh/known_hosts ssh-keyscan ${{ secrets.MYHOST }}= >> ~/.ssh/known_hosts
eval $(ssh-agent -s) eval $(ssh-agent -s)
ssh-add -v ~/.ssh/gitlab_deploy_key ssh-add -v ~/.ssh/gitlab_deploy_key
Generated
+240 -637
View File
File diff suppressed because it is too large Load Diff
+9 -10
View File
@@ -1,17 +1,16 @@
[package] [package]
name = "icarus-dm" name = "idm"
version = "0.9.0" version = "0.10.0"
rust-version = "1.94" rust-version = "1.95"
edition = "2024" edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
futures = { version = "0.3.32" } http = { version = "1.4.2" }
http = { version = "1.4.0" } reqwest = { version = "0.13.4", features = ["json", "blocking", "multipart", "stream"] }
reqwest = { version = "0.13.2", features = ["json", "blocking", "multipart", "stream"] }
serde = { version = "1.0.228", features = ["derive"] } serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149" serde_json = "1.0.150"
tokio = { version = "1.51", features = ["full"] } tokio = { version = "1.52.3", features = ["full"] }
tokio-util = { version = "0.7.18", features = ["codec"] } tokio-util = { version = "0.7.18", features = ["codec"] }
uuid = { version = "1.23", features = ["v4", "serde"] } uuid = { version = "1.23.4", features = ["v4", "serde"] }
icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.10.0" } icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.11.3" }
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2025 Kun Deng Copyright (c) 2026 Kun Deng
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+9 -27
View File
@@ -1,72 +1,54 @@
# IcarusDownloadManager # idm
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. idm (IcarusDownloadManager) is a CLI software client application that has the feature of uploading and downloading songs from the [icarus](https://git.kundeng.us/phoenix/icarus) Music Server.
## Built With
* Rust
* Cargo
* futures
* http
* reqwst
* serde
* serde_json
* tokio
* tokio-util
* icarus_models
### Getting Started ### Getting Started
Clone the repo Clone the repo
```BASH ```BASH
git clone git@github.com:kdeng00/IcarusDownloadManager.git git clone git@git.kundeng.us:phoenix/idm.git
``` ```
Build the project: Build the project:
```BASH ```BASH
cd IcarusDownloadManager cd idm
cargo build 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 ### Downloading Song
```BASH ```BASH
icarus-dm download -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -b e8407fc6-edd2-44c1-993f-08dd7324d91a idm download -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -b e8407fc6-edd2-44c1-993f-08dd7324d91a
``` ```
### Uploading Song with metadata ### Uploading Song with metadata
```BASH ```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 idm 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 ### Uploading Song with metadata from directory
```BASH ```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/ idm 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 ### Retrieving Song in json
```Bash ```Bash
icarus-dm retrieve -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -rt songs idm retrieve -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -rt songs
``` ```
### Deleting Song ### Deleting Song
```BASH ```BASH
icarus-dm delete -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -D e8407fc6-edd2-44c1-993f-08dd7324d91a idm delete -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -D e8407fc6-edd2-44c1-993f-08dd7324d91a
``` ```
+1 -1
View File
@@ -92,7 +92,7 @@ mod tests {
#[test] #[test]
fn test_minimum_action_and_args() { fn test_minimum_action_and_args() {
let args: Vec<String> = vec![ let args: Vec<String> = vec![
"icarus-dm".to_string(), "idm".to_string(),
"download".to_string(), "download".to_string(),
"-u".to_string(), "-u".to_string(),
"jamborie".to_string(), "jamborie".to_string(),