use reqwest::Method;
use serde_json::{Value, json};
use crate::request::{request, CRYPTO_WEAPI, CRYPTO_EAPI, USER_AGENT_PC};
pub async fn get_total_sign_info() ->Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/weapi/point/signed/get";
let data = json!({});
let option = json!({
"crypto": CRYPTO_WEAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}
pub async fn get_today_sign_info() ->Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/weapi/point/today/get";
let data = json!({});
let option = json!({
"crypto": CRYPTO_WEAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}
pub async fn sign() ->Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/weapi/point/dailyTask";
let data = json!({
"type": "0"
});
let option = json!({
"crypto": CRYPTO_WEAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}
pub async fn get_info() ->Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/weapi/v1/user/info";
let data = json!({
});
let option = json!({
"crypto": CRYPTO_WEAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}
pub async fn get_all_tasks() ->Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/weapi/usertool/task/list/all";
let data = json!({
});
let option = json!({
"crypto": CRYPTO_WEAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}
pub async fn get_todo_tasks() ->Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/api/usertool/task/todo/query";
let data = json!({
});
let option = json!({
"crypto": CRYPTO_WEAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}
pub async fn finish_task(task_id: &str) -> Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/weapi/usertool/task/point/receive";
let data = json!({
"userTaskId": task_id
});
let option = json!({
"crypto": CRYPTO_WEAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}
pub async fn get_receipt(limit: i32, offset: i32) -> Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/store/api/point/receipt";
let data = json!({
"limit": limit,
"offset": offset
});
let option = json!({
"crypto": CRYPTO_EAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}
pub async fn get_expense(limit: i32, offset: i32) -> Result<Value, Box<dyn std::error::Error>> {
let url = "https://music.163.com/store/api/point/expense";
let data = json!({
"limit": limit,
"offset": offset
});
let option = json!({
"crypto": CRYPTO_EAPI,
"ua": USER_AGENT_PC,
"cookie": {
}
});
request(Method::POST, url, data, option).await
}