Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/emulation/device/chrome/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ mod header;
use header::*;
use tls::*;

use super::{emulation_imports::*, http2_imports::*, *};
use super::*;

mod_generator!(
v100,
Expand Down
2 changes: 1 addition & 1 deletion src/emulation/device/chrome/tls.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use super::tls_imports::*;
use super::*;

macro_rules! tls_options {
(@build $builder:expr) => {
Expand Down
2 changes: 1 addition & 1 deletion src/emulation/device/firefox/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ mod header;
use header::*;
use tls::*;

use super::{emulation_imports::*, http2_imports::*, *};
use super::*;

macro_rules! mod_generator {
(
Expand Down
2 changes: 1 addition & 1 deletion src/emulation/device/firefox/tls.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use super::tls_imports::*;
use super::*;

macro_rules! tls_options {
(@build $builder:expr) => {
Expand Down
39 changes: 14 additions & 25 deletions src/emulation/device/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
//! Emulation for different browsers.
#![allow(missing_debug_implementations)]
#![allow(missing_docs)]

#[macro_use]
mod macros;
Expand All @@ -10,29 +8,20 @@ pub mod okhttp;
pub mod opera;
pub mod safari;

mod emulation_imports {
#[cfg(all(feature = "gzip", feature = "deflate", feature = "brotli"))]
pub use wreq::header::ACCEPT_ENCODING;
pub use wreq::{
Emulation,
header::{ACCEPT, ACCEPT_LANGUAGE, HeaderMap, HeaderName, HeaderValue, USER_AGENT},
http2::Http2Options,
};

pub use crate::emulation::{EmulationOS, EmulationOption};
}

mod tls_imports {
pub use typed_builder::TypedBuilder;
pub use wreq::tls::{
pub use typed_builder::TypedBuilder;
#[cfg(all(feature = "gzip", feature = "deflate", feature = "brotli"))]
pub use wreq::header::ACCEPT_ENCODING;
pub use wreq::{
Emulation,
header::{ACCEPT, ACCEPT_LANGUAGE, HeaderMap, HeaderName, HeaderValue, USER_AGENT},
http2::{
Http2Options, Priorities, Priority, PseudoId, PseudoOrder, SettingId, SettingsOrder,
StreamDependency, StreamId,
},
tls::{
AlpnProtocol, AlpsProtocol, CertificateCompressionAlgorithm, ExtensionType, TlsOptions,
TlsVersion,
};
}
},
};

mod http2_imports {
pub use wreq::http2::{
Priorities, Priority, PseudoId, PseudoOrder, SettingId, SettingsOrder, StreamDependency,
StreamId,
};
}
pub use crate::emulation::{EmulationOS, EmulationOption};
4 changes: 2 additions & 2 deletions src/emulation/device/okhttp/mod.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use super::*;

macro_rules! mod_generator {
($mod_name:ident, $cipher:expr, $ua:expr) => {
pub(crate) mod $mod_name {
Expand All @@ -9,8 +11,6 @@ macro_rules! mod_generator {
};
}

use super::{emulation_imports::*, http2_imports::*, tls_imports::*};

const CURVES: &str = join!(":", "X25519", "P-256", "P-384");

const SIGALGS_LIST: &str = join!(
Expand Down
2 changes: 1 addition & 1 deletion src/emulation/device/opera/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ mod header;
use header::*;
use tls::*;

use super::{emulation_imports::*, http2_imports::*, *};
use super::*;

mod_generator!(
opera116,
Expand Down
4 changes: 2 additions & 2 deletions src/emulation/device/opera/tls.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use super::tls_imports::*;
use super::*;

macro_rules! tls_options {
($curves:expr) => {
Expand All @@ -12,7 +12,7 @@ macro_rules! tls_options {
};
}

pub const CURVES: &'static str = join!(":", "X25519MLKEM768", "X25519", "P-256", "P-384");
pub const CURVES: &str = join!(":", "X25519MLKEM768", "X25519", "P-256", "P-384");

pub const CIPHER_LIST: &str = join!(
":",
Expand Down
16 changes: 15 additions & 1 deletion src/emulation/device/safari/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ mod header;
use header::*;
use tls::*;

use super::{emulation_imports::*, http2_imports::*, *};
use super::*;

macro_rules! mod_generator {
($mod_name:ident, $tls_options:expr, $http2_options:expr, $header_initializer:ident, $ua:expr) => {
Expand Down Expand Up @@ -208,3 +208,17 @@ mod_generator!(
header_initializer_for_18,
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15"
);

mod_generator!(
safari_ipad_26,
safari26::build_emulation,
header_initializer_for_18,
"Mozilla/5.0 (iPad; CPU OS 18_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1"
);

mod_generator!(
safari_ios_26,
safari26::build_emulation,
header_initializer_for_18,
"Mozilla/5.0 (iPhone; CPU iPhone OS 26_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1"
);
2 changes: 1 addition & 1 deletion src/emulation/device/safari/tls.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use super::tls_imports::*;
use super::*;

macro_rules! tls_options {
(1, $cipher_list:expr) => {
Expand Down
2 changes: 2 additions & 0 deletions src/emulation/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,8 @@ define_enum!(
Safari18_3_1 => ("safari_18.3.1", safari18_3_1::emulation),
Safari18_5 => ("safari_18.5", safari18_5::emulation),
Safari26 => ("safari_26", safari26::emulation),
SafariIPad26 => ("safari_ipad_26", safari_ipad_26::emulation),
SafariIos26 => ("safari_ios_26", safari_ios_26::emulation),

// Firefox versions
Firefox109 => ("firefox_109", ff109::emulation),
Expand Down
5 changes: 5 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
#![deny(unused)]
#![deny(unsafe_code)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(test, deny(warnings))]
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
#![doc = include_str!("../README.md")]

#[cfg(feature = "emulation")]
Expand Down
Loading