From 7c5680ca4b966675f9bd92cfa727183f08646384 Mon Sep 17 00:00:00 2001 From: Hayaku <84594011+iamtakingithard@users.noreply.github.com> Date: Fri, 24 Mar 2023 18:51:50 +0300 Subject: [PATCH] add random user-agent --- Cargo.lock | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 1 + src/main.rs | 3 ++- 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 3c49a83..0531a07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -499,6 +499,15 @@ dependencies = [ "threadpool", ] +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + [[package]] name = "flate2" version = "1.0.24" @@ -784,6 +793,15 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + [[package]] name = "ipnet" version = "2.5.0" @@ -1080,6 +1098,7 @@ dependencies = [ "regex", "reqwest", "tokio", + "ua_generator", "webp", ] @@ -1334,6 +1353,20 @@ name = "serde" version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "serde_json" @@ -1588,6 +1621,18 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +[[package]] +name = "ua_generator" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d91c667af349d600c11b92b5f937722341d1543deab1db7c63c2a6fcc7e66e8" +dependencies = [ + "fastrand", + "serde", + "serde_json", + "ureq", +] + [[package]] name = "unicode-bidi" version = "0.3.8" @@ -1615,6 +1660,26 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "ureq" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "338b31dd1314f68f3aabf3ed57ab922df95ffcd902476ca7ba3c4ce7b908c46d" +dependencies = [ + "base64 0.13.1", + "brotli-decompressor", + "encoding_rs", + "flate2", + "log", + "once_cell", + "rustls", + "serde", + "serde_json", + "url", + "webpki", + "webpki-roots", +] + [[package]] name = "url" version = "2.3.1" diff --git a/Cargo.toml b/Cargo.toml index 8f795f7..0246026 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ version = "0.1.0" actix-web = "4.3.1" image = "0.24.5" once_cell = "1.17.1" +ua_generator = "0.3.5" qstring = "0.7.2" regex = "1.7.2" reqwest = {version = "0.11.15", features = ["rustls-tls", "stream", "brotli", "gzip"], default-features = false} diff --git a/src/main.rs b/src/main.rs index a61eb9f..7592cab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ use actix_web::http::Method; use actix_web::{web, App, HttpRequest, HttpResponse, HttpResponseBuilder, HttpServer}; use image::EncodableLayout; use once_cell::sync::Lazy; +use ua_generator::ua::spoof_ua; use qstring::QString; use regex::Regex; use reqwest::{Client, Request, Url}; @@ -36,7 +37,7 @@ static RE_DASH_MANIFEST: Lazy = static CLIENT: Lazy = Lazy::new(|| { let builder = Client::builder() - .user_agent("Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"); + .user_agent(spoof_ua()); if env::var("IPV4_ONLY").is_ok() { builder