recycleactor commited on
Commit
3d8ea87
·
verified ·
1 Parent(s): 39e3072

Upload main.rs

Browse files
Files changed (1) hide show
  1. src/main.rs +4 -43
src/main.rs CHANGED
@@ -969,20 +969,6 @@ async fn gw_light_call(
969
  let url = "https://www.deezer.com/ajax/gw-light.php";
970
  let url_deezer = "https://www.deezer.com".parse::<Url>().unwrap();
971
 
972
- fn cookie_value(jar: &Jar, url: &Url, key: &str) -> Option<String> {
973
- let Some(hv) = jar.cookies(url) else { return None };
974
- let Ok(s) = hv.to_str() else { return None };
975
- for part in s.split(';') {
976
- let p = part.trim();
977
- if let Some(rest) = p.strip_prefix(&format!("{key}=")) {
978
- if !rest.is_empty() {
979
- return Some(rest.to_string());
980
- }
981
- }
982
- }
983
- None
984
- }
985
-
986
  fn cid() -> String {
987
  SystemTime::now()
988
  .duration_since(UNIX_EPOCH)
@@ -992,7 +978,6 @@ async fn gw_light_call(
992
 
993
  async fn do_req(
994
  client: &reqwest::Client,
995
- jar: &Arc<Jar>,
996
  url_deezer: &Url,
997
  url: &str,
998
  method: &str,
@@ -1010,17 +995,6 @@ async fn gw_light_call(
1010
  .header("Content-Type", "text/plain;charset=UTF-8")
1011
  .body(params.to_string())
1012
  };
1013
-
1014
- let sid = cookie_value(jar, url_deezer, "sid").unwrap_or_default();
1015
- let arl = cookie_value(jar, url_deezer, "arl").unwrap_or_default();
1016
- if !sid.is_empty() || !arl.is_empty() {
1017
- let mut parts: Vec<String> = Vec::new();
1018
- parts.push(format!("arl={arl}"));
1019
- if !sid.is_empty() {
1020
- parts.push(format!("sid={sid}"));
1021
- }
1022
- req = req.header("Cookie", parts.join("; "));
1023
- }
1024
  if let Some(uid) = user_id.filter(|s| !s.trim().is_empty()) {
1025
  req = req.header("x-deezer-user", uid);
1026
  }
@@ -1054,19 +1028,6 @@ async fn gw_light_call(
1054
  .await
1055
  .map_err(|_| "network".to_string())?;
1056
 
1057
- if method == "deezer.getUserData" {
1058
- for v in r.headers().get_all("set-cookie").iter() {
1059
- if let Ok(s) = v.to_str() {
1060
- if s.starts_with("sid=") {
1061
- let cookie = s.split(';').next().unwrap_or("").trim();
1062
- if !cookie.is_empty() {
1063
- jar.add_cookie_str(&format!("{cookie}; Domain=.deezer.com"), url_deezer);
1064
- }
1065
- }
1066
- }
1067
- }
1068
- }
1069
-
1070
  let status = r.status();
1071
  let text = r.text().await.map_err(|_| "read".to_string())?;
1072
  let json: GwResp = serde_json::from_str(&text).map_err(|_| {
@@ -1085,17 +1046,17 @@ async fn gw_light_call(
1085
  }
1086
 
1087
  if method == "deezer.getUserData" {
1088
- match do_req(client, jar, &url_deezer, url, method, api_token, &params, true, None).await {
1089
  Ok(v) => Ok(v),
1090
- Err(e1) => match do_req(client, jar, &url_deezer, url, method, api_token, &params, false, None).await {
1091
  Ok(v) => Ok(v),
1092
  Err(e2) => Err(format!("getUserData:{e1}; fallback:{e2}")),
1093
  },
1094
  }
1095
  } else {
1096
- match do_req(client, jar, &url_deezer, url, method, api_token, &params, false, None).await {
1097
  Ok(v) => Ok(v),
1098
- Err(e1) => match do_req(client, jar, &url_deezer, url, method, api_token, &params, false, None).await {
1099
  Ok(v) => Ok(v),
1100
  Err(e2) => Err(format!("{e1}; retry:{e2}")),
1101
  },
 
969
  let url = "https://www.deezer.com/ajax/gw-light.php";
970
  let url_deezer = "https://www.deezer.com".parse::<Url>().unwrap();
971
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
972
  fn cid() -> String {
973
  SystemTime::now()
974
  .duration_since(UNIX_EPOCH)
 
978
 
979
  async fn do_req(
980
  client: &reqwest::Client,
 
981
  url_deezer: &Url,
982
  url: &str,
983
  method: &str,
 
995
  .header("Content-Type", "text/plain;charset=UTF-8")
996
  .body(params.to_string())
997
  };
 
 
 
 
 
 
 
 
 
 
 
998
  if let Some(uid) = user_id.filter(|s| !s.trim().is_empty()) {
999
  req = req.header("x-deezer-user", uid);
1000
  }
 
1028
  .await
1029
  .map_err(|_| "network".to_string())?;
1030
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1031
  let status = r.status();
1032
  let text = r.text().await.map_err(|_| "read".to_string())?;
1033
  let json: GwResp = serde_json::from_str(&text).map_err(|_| {
 
1046
  }
1047
 
1048
  if method == "deezer.getUserData" {
1049
+ match do_req(client, &url_deezer, url, method, api_token, &params, true, None).await {
1050
  Ok(v) => Ok(v),
1051
+ Err(e1) => match do_req(client, &url_deezer, url, method, api_token, &params, false, None).await {
1052
  Ok(v) => Ok(v),
1053
  Err(e2) => Err(format!("getUserData:{e1}; fallback:{e2}")),
1054
  },
1055
  }
1056
  } else {
1057
+ match do_req(client, &url_deezer, url, method, api_token, &params, false, None).await {
1058
  Ok(v) => Ok(v),
1059
+ Err(e1) => match do_req(client, &url_deezer, url, method, api_token, &params, false, None).await {
1060
  Ok(v) => Ok(v),
1061
  Err(e2) => Err(format!("{e1}; retry:{e2}")),
1062
  },