mod bootstrap;
mod extract;
mod http;
mod sequence;
use rustybook_http::client::Client as HttpClient;
pub(super) const DEFAULT_USER_AGENT: &str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36";
#[derive(Debug, Clone)]
pub struct State {
pub user_id: String,
pub user_name: Option<String>,
pub user_agent: String,
pub cookie_header: String,
pub fb_dtsg: Option<String>,
pub lsd: Option<String>,
pub jazoest: Option<String>,
pub client_revision: Option<u64>,
pub mqtt_client_id: String,
pub mqtt_app_id: String,
pub ls_app_id: String,
pub ls_version_id: String,
pub region: String,
pub sequence_id: Option<u64>,
pub(crate) http: Option<HttpClient>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub(super) struct MqttConfig {
pub client_id: String,
pub app_id: String,
pub region: String,
}
impl Default for State {
fn default() -> Self {
Self {
user_id: String::new(),
user_name: None,
user_agent: DEFAULT_USER_AGENT.to_string(),
cookie_header: String::new(),
fb_dtsg: None,
lsd: None,
jazoest: None,
client_revision: None,
mqtt_client_id: String::new(),
mqtt_app_id: String::new(),
ls_app_id: "2220391788200892".to_string(),
ls_version_id: "26461632200121827".to_string(),
region: String::new(),
sequence_id: None,
http: None,
}
}
}