rustybook-messenger 0.2.1

Messenger client for Rustybook
Documentation
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,
        }
    }
}