Compare commits
No commits in common. "70dffdec73dc7ee5604d65202f53f5b59afa5422" and "df69f4160aabb4256ae4d94a1387c31718ee50f8" have entirely different histories.
70dffdec73
...
df69f4160a
4 changed files with 17 additions and 23 deletions
|
@ -3,5 +3,6 @@ repos:
|
||||||
rev: v0.1.0
|
rev: v0.1.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: cargo-fmt
|
- id: cargo-fmt
|
||||||
|
- id: cargo-check
|
||||||
- id: cargo-clippy
|
- id: cargo-clippy
|
||||||
args: ["--all", "--all-features", "--", "-D", "warnings"]
|
args: ["--", "-D", "warnings"]
|
||||||
|
|
27
Cargo.toml
27
Cargo.toml
|
@ -2,7 +2,7 @@
|
||||||
name = "musixmatch-inofficial"
|
name = "musixmatch-inofficial"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["ThetaDev <t.testboy@gmail.com>"]
|
authors = ["ThetaDev"]
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
description = "Inofficial client for the Musixmatch API"
|
description = "Inofficial client for the Musixmatch API"
|
||||||
keywords = ["music", "lyrics"]
|
keywords = ["music", "lyrics"]
|
||||||
|
@ -21,33 +21,24 @@ rustls-tls-webpki-roots = ["reqwest/rustls-tls-webpki-roots"]
|
||||||
rustls-tls-native-roots = ["reqwest/rustls-tls-native-roots"]
|
rustls-tls-native-roots = ["reqwest/rustls-tls-native-roots"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
reqwest = { version = "0.11.11", default-features = false, features = [
|
reqwest = {version = "0.11.11", default-features = false, features = ["json", "gzip", "cookies"]}
|
||||||
"json",
|
tokio = {version = "1.20.0"}
|
||||||
"gzip",
|
|
||||||
"cookies",
|
|
||||||
] }
|
|
||||||
tokio = { version = "1.20.0" }
|
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_json = "1.0.85"
|
serde_json = "1.0.85"
|
||||||
thiserror = "1.0.36"
|
thiserror = "1.0.36"
|
||||||
log = "0.4.17"
|
log = "0.4.17"
|
||||||
time = { version = "0.3.15", features = [
|
time = {version = "0.3.15", features = ["macros", "formatting", "serde", "serde-well-known"]}
|
||||||
"macros",
|
|
||||||
"formatting",
|
|
||||||
"serde",
|
|
||||||
"serde-well-known",
|
|
||||||
] }
|
|
||||||
hmac = "0.12.1"
|
hmac = "0.12.1"
|
||||||
sha1 = "0.10.5"
|
sha1 = "0.10.5"
|
||||||
rand = "0.8.5"
|
rand = "0.8.5"
|
||||||
base64 = "0.21.0"
|
base64 = "0.13.0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
ctor = "0.2.0"
|
ctor = "0.1.23"
|
||||||
rstest = { version = "0.17.0", default-features = false }
|
rstest = {version = "0.15.0", default-features = false}
|
||||||
env_logger = "0.10.0"
|
env_logger = "0.9.1"
|
||||||
dotenvy = "0.15.5"
|
dotenvy = "0.15.5"
|
||||||
tokio = { version = "1.20.0", features = ["macros"] }
|
tokio = {version = "1.20.0", features = ["macros"]}
|
||||||
futures = "0.3.21"
|
futures = "0.3.21"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
|
|
|
@ -415,12 +415,15 @@ fn input(prompt: &str) -> String {
|
||||||
stdin().read_line(&mut input).expect("Failed to read line");
|
stdin().read_line(&mut input).expect("Failed to read line");
|
||||||
// Remove trailing newline
|
// Remove trailing newline
|
||||||
input.pop();
|
input.pop();
|
||||||
input
|
|
||||||
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn input_pwd(prompt: &str) -> String {
|
fn input_pwd(prompt: &str) -> String {
|
||||||
print!("{}", prompt);
|
print!("{}", prompt);
|
||||||
stdout().flush().expect("Failed to flush stdout!");
|
stdout().flush().expect("Failed to flush stdout!");
|
||||||
|
|
||||||
rpassword::read_password().expect("Failed to read password")
|
let input = rpassword::read_password().expect("Failed to read password");
|
||||||
|
|
||||||
|
return input;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ use std::sync::{Arc, RwLock};
|
||||||
|
|
||||||
pub use error::Error;
|
pub use error::Error;
|
||||||
|
|
||||||
use base64::Engine;
|
|
||||||
use hmac::{Hmac, Mac};
|
use hmac::{Hmac, Mac};
|
||||||
use log::{error, info, warn};
|
use log::{error, info, warn};
|
||||||
use rand::{seq::SliceRandom, Rng};
|
use rand::{seq::SliceRandom, Rng};
|
||||||
|
@ -426,7 +425,7 @@ fn sign_url_with_date(url: &mut Url, date: OffsetDateTime) {
|
||||||
mac.update(date.format(YMD_FORMAT).unwrap_or_default().as_bytes());
|
mac.update(date.format(YMD_FORMAT).unwrap_or_default().as_bytes());
|
||||||
|
|
||||||
let sig = mac.finalize().into_bytes();
|
let sig = mac.finalize().into_bytes();
|
||||||
let sig_b64 = base64::engine::general_purpose::STANDARD.encode(sig) + "\n";
|
let sig_b64 = base64::encode(sig) + "\n";
|
||||||
|
|
||||||
url.query_pairs_mut()
|
url.query_pairs_mut()
|
||||||
.append_pair("signature", &sig_b64)
|
.append_pair("signature", &sig_b64)
|
||||||
|
|
Loading…
Reference in a new issue