antonio-antuan / rust-tdlib

Rust client for TDlib
MIT License
56 stars 11 forks source link

Unable to get updates #25

Closed EricDeng1001 closed 1 year ago

EricDeng1001 commented 1 year ago

Problem: when a text message is send to tested account, no update shows up. Info: GetMe works ok. Info: auth data is set up at "tddb_auth". Full src:

use rust_tdlib::types::{
    FormattedText, GetMe, InputMessageContent, InputMessageText, SendMessage, Update,
};
use rust_tdlib::{
    client::{Client, ClientState, SignalAuthStateHandler, Worker},
    tdjson,
    types::TdlibParameters,
};

fn init_log() {
    tdjson::set_log_verbosity_level(1);
    log4rs::init_file("config/log4rs.yml", Default::default()).unwrap();
}
#[tokio::main]
async fn main() {
    init_log();
    let db_dir = "tddb_auth";

    let api_id = ;
    let api_hash = ;

    let tdlib_parameters = TdlibParameters::builder()
        .database_directory(db_dir)
        .use_test_dc(true)
        .api_id(api_id)
        .api_hash(api_hash)
        .system_language_code("en")
        .device_model("Desktop")
        .system_version("Unknown")
        .application_version("1.0.0")
        .enable_storage_optimizer(true)
        .build();

    let (sender, mut receiver) = tokio::sync::mpsc::channel::<Box<Update>>(100);

    let client = Client::builder()
        .with_tdlib_parameters(tdlib_parameters)
        .with_updates_sender(sender)
        .with_auth_state_channel(10)
        .build()
        .unwrap();

    let (sx, rx) = tokio::sync::mpsc::channel(5);
    sx.send("".to_string()).await.unwrap(); // empty encryption key
    let auth_handler = SignalAuthStateHandler::new(rx);
    let mut worker = Worker::builder()
        .with_auth_state_handler(auth_handler)
        .build()
        .unwrap();

    worker.start();

    let client = worker.bind_client(client).await.unwrap();

    let me = client.get_me(GetMe::builder().build()).await.unwrap();
    log::info!("me: {:?}", me);

    let mut wait_messages: i32 = 100;
    while let Some(message) = receiver.recv().await {
        log::info!("updates handler received {:?}", message);
        wait_messages -= 1;
        if wait_messages == 0 {
            break;
        }
    }

    log::info!("stop client");
    client.stop().await.unwrap();
    log::info!("client stopped");
    loop {
        if worker.wait_client_state(&client).await.unwrap() == ClientState::Closed {
            log::info!("closed");
            break;
        }
    }

    log::info!("stop worker");
    worker.stop();
}

full output:

    Finished dev [unoptimized + debuginfo] target(s) in 6.03s
     Running `target/debug/tg_bot_tdlib`
2022-12-21T13:35:23.346733552+08:00 DEBUG rust_tdlib::client::worker - new client created: 1
2022-12-21T13:35:23.346836158+08:00 DEBUG rust_tdlib::client::worker - new client added
2022-12-21T13:35:23.347597030+08:00 DEBUG rust_tdlib::client::worker - received new auth state: UpdateAuthorizationState { extra: None, client_id: Some(1), authorization_state: WaitTdlibParameters(AuthorizationStateWaitTdlibParameters { extra: None, client_id: None }) }
2022-12-21T13:35:23.347646947+08:00 DEBUG rust_tdlib::client::worker - handling new auth state: WaitTdlibParameters(AuthorizationStateWaitTdlibParameters { extra: None, client_id: None })
2022-12-21T13:35:23.347669625+08:00 DEBUG rust_tdlib::client::worker - going to set tdlib parameters
2022-12-21T13:35:23.348796696+08:00 DEBUG rust_tdlib::client::worker - tdlib parameters set
2022-12-21T13:35:23.348821258+08:00 DEBUG rust_tdlib::client::worker - state changes handled properly
2022-12-21T13:35:23.348838910+08:00 DEBUG rust_tdlib::client::worker - received new auth state: UpdateAuthorizationState { extra: None, client_id: Some(1), authorization_state: WaitEncryptionKey(AuthorizationStateWaitEncryptionKey { extra: None, client_id: None, is_encrypted: true }) }
2022-12-21T13:35:23.348857752+08:00 DEBUG rust_tdlib::client::worker - handling new auth state: WaitEncryptionKey(AuthorizationStateWaitEncryptionKey { extra: None, client_id: None, is_encrypted: true })
2022-12-21T13:35:23.348874695+08:00 INFO rust_tdlib::client::auth_handler - waiting for encryption key
2022-12-21T13:35:23.348893273+08:00 INFO rust_tdlib::client::auth_handler - get encryption key
2022-12-21T13:35:23.348908243+08:00 DEBUG rust_tdlib::client::worker - checking encryption key
2022-12-21T13:35:23.353673320+08:00 DEBUG rust_tdlib::client::worker - encryption key check done
2022-12-21T13:35:23.353716306+08:00 DEBUG rust_tdlib::client::worker - state changes handled properly
2022-12-21T13:35:23.353737978+08:00 DEBUG rust_tdlib::client::worker - received new auth state: UpdateAuthorizationState { extra: None, client_id: Some(1), authorization_state: Ready(AuthorizationStateReady { extra: None, client_id: None }) }
2022-12-21T13:35:23.353759905+08:00 DEBUG rust_tdlib::client::worker - handling new auth state: Ready(AuthorizationStateReady { extra: None, client_id: None })
2022-12-21T13:35:23.353776167+08:00 DEBUG rust_tdlib::client::worker - ready state received, send signal
2022-12-21T13:35:23.353797568+08:00 DEBUG rust_tdlib::client::worker - state changes handled properly
2022-12-21T13:35:24.321004889+08:00 INFO tg_bot_tdlib - me: User { extra: Some("2db0e39b-9391-463e-9cc9-5e1ab361b939"), client_id: Some(1), id: 5000443693, first_name: "Eric", last_name: "Deng", username: "", phone_number: "my phone number", status: Offline(UserStatusOffline { extra: None, client_id: None, was_online: 1671598776 }), profile_photo: None, is_contact: false, is_mutual_contact: false, is_verified: false, is_support: false, restriction_reason: "", is_scam: false, is_fake: false, have_access: true, type_: Regular(UserTypeRegular { extra: None, client_id: None }), language_code: "" }
2022-12-21T13:35:24.321234664+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "version", value: String(OptionValueString { extra: None, client_id: None, value: "1.8.0" }) })
2022-12-21T13:35:24.321293141+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "unix_time", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 1671600919 }) })
2022-12-21T13:35:24.321373277+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "can_archive_and_mute_new_chats_from_unknown_users", value: Boolean(OptionValueBoolean { extra: None, client_id: None, value: true }) })
2022-12-21T13:35:24.321469929+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "t_me_url", value: String(OptionValueString { extra: None, client_id: None, value: "https://t.me/" }) })
2022-12-21T13:35:24.321563653+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "expect_blocking", value: Boolean(OptionValueBoolean { extra: None, client_id: None, value: false }) })
2022-12-21T13:35:24.321660296+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "replies_bot_chat_id", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 708513 }) })
2022-12-21T13:35:24.321753740+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "forwarded_message_count_max", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 100 }) })
2022-12-21T13:35:24.321845712+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "test_mode", value: Boolean(OptionValueBoolean { extra: None, client_id: None, value: true }) })
2022-12-21T13:35:24.321891595+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "pinned_chat_count_max", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 4 }) })
2022-12-21T13:35:24.321915345+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "basic_group_size_max", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 50 }) })
2022-12-21T13:35:24.321936835+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "message_caption_length_max", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 1024 }) })
2022-12-21T13:35:24.321957509+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "message_text_length_max", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 4096 }) })
2022-12-21T13:35:24.321978230+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "call_packet_timeout_ms", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 10000 }) })
2022-12-21T13:35:24.321998622+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "suggested_video_note_length", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 384 }) })
2022-12-21T13:35:24.322019322+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "is_location_visible", value: Boolean(OptionValueBoolean { extra: None, client_id: None, value: false }) })
2022-12-21T13:35:24.322039309+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "suggested_video_note_video_bitrate", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 1000 }) })
2022-12-21T13:35:24.322060258+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "channel_bot_user_id", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 936174 }) })
2022-12-21T13:35:24.322079943+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "telegram_service_notifications_chat_id", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 777000 }) })
2022-12-21T13:35:24.322100050+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "animation_search_bot_username", value: String(OptionValueString { extra: None, client_id: None, value: "contextbot" }) })
2022-12-21T13:35:24.322121864+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "my_id", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 5000443693 }) })
2022-12-21T13:35:24.322151182+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "group_anonymous_bot_user_id", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 552888 }) })
2022-12-21T13:35:24.322170897+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "archive_and_mute_new_chats_from_unknown_users", value: Boolean(OptionValueBoolean { extra: None, client_id: None, value: false }) })
2022-12-21T13:35:24.322240826+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "ignore_sensitive_content_restrictions", value: Boolean(OptionValueBoolean { extra: None, client_id: None, value: false }) })
2022-12-21T13:35:24.322285874+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "suggested_video_note_audio_bitrate", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 64 }) })
2022-12-21T13:35:24.322311491+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "utc_time_offset", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 28800 }) })
2022-12-21T13:35:24.322378927+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "call_connect_timeout_ms", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 30000 }) })
2022-12-21T13:35:24.322470481+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "authorization_date", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 1671598476 }) })
2022-12-21T13:35:24.322561236+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "can_ignore_sensitive_content_restrictions", value: Boolean(OptionValueBoolean { extra: None, client_id: None, value: true }) })
2022-12-21T13:35:24.322608574+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "venue_search_bot_username", value: String(OptionValueString { extra: None, client_id: None, value: "foursquarebot" }) })
2022-12-21T13:35:24.322631994+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "calls_enabled", value: Boolean(OptionValueBoolean { extra: None, client_id: None, value: true }) })
2022-12-21T13:35:24.322651783+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "photo_search_bot_username", value: String(OptionValueString { extra: None, client_id: None, value: "imagebot" }) })
2022-12-21T13:35:24.322672983+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "supergroup_size_max", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 500 }) })
2022-12-21T13:35:24.322695689+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "favorite_stickers_limit", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 5 }) })
2022-12-21T13:35:24.322719931+08:00 INFO tg_bot_tdlib - updates handler received Option(UpdateOption { extra: None, client_id: Some(1), name: "pinned_archived_chat_count_max", value: Integer(OptionValueInteger { extra: None, client_id: None, value: 3 }) })
2022-12-21T13:35:24.322799810+08:00 INFO tg_bot_tdlib - updates handler received HavePendingNotifications(UpdateHavePendingNotifications { extra: None, client_id: Some(1), have_delayed_notifications: false, have_unreceived_notifications: true })
2022-12-21T13:35:24.322884396+08:00 INFO tg_bot_tdlib - updates handler received DiceEmojis(UpdateDiceEmojis { extra: None, client_id: Some(1), emojis: ["🎲", "🎯", "🏀", "⚽", "⚽\u{fe0f}", "🎰", "🎳"] })
2022-12-21T13:35:24.322995353+08:00 INFO tg_bot_tdlib - updates handler received AnimationSearchParameters(UpdateAnimationSearchParameters { extra: None, client_id: Some(1), provider: "tenor", emojis: ["👍", "😘", "😍", "😡", "🥳", "😂", "😮", "🙄", "😎", "👎"] })
2022-12-21T13:35:24.323104497+08:00 INFO tg_bot_tdlib - updates handler received SelectedBackground(UpdateSelectedBackground { extra: None, client_id: Some(1), for_dark_theme: false, background: None })
2022-12-21T13:35:24.323146108+08:00 INFO tg_bot_tdlib - updates handler received SelectedBackground(UpdateSelectedBackground { extra: None, client_id: Some(1), for_dark_theme: true, background: None })
2022-12-21T13:35:24.323165035+08:00 INFO tg_bot_tdlib - updates handler received ChatThemes(UpdateChatThemes { extra: None, client_id: Some(1), chat_themes: [ChatTheme { extra: None, client_id: None, name: "🐥", light_settings: ThemeSettings { extra: None, client_id: None, accent_color: 2732145, background: Some(Background { extra: None, client_id: None, id: 5431458738223448065, is_default: false, is_dark: true, name: "rcbvm_JqYEsBAAAAuCg0h7HhIxQ", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 1, size: 20067, expected_size: 20067, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaaC_jofRkdKs5ZZWNbMdDK0AAgEAAwV0YEv7tdtLMdZqwgEAB20AAyME", unique_id: "AQADAQADBXRgS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 20067 } } }), document: File { extra: None, client_id: None, id: 2, size: 51194, expected_size: 51194, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWmgv46H0ZHSrOWWVjWzHQytAAIBAAMFdGBL-7XbSzHWasIjBA", unique_id: "AgADAQADBXRgSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 51194 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [7977128, 12834723, 14013845, 10866066] }), intensity: 42, is_inverted: false, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 15791825, bottom_color: 15136213, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 5025892 }, dark_settings: ThemeSettings { extra: None, client_id: None, accent_color: 5674079, background: Some(Background { extra: None, client_id: None, id: 5431458738223448065, is_default: false, is_dark: true, name: "rcbvm_JqYEsBAAAAuCg0h7HhIxQ", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 1, size: 20067, expected_size: 20067, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaaC_jofRkdKs5ZZWNbMdDK0AAgEAAwV0YEv7tdtLMdZqwgEAB20AAyME", unique_id: "AQADAQADBXRgS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 20067 } } }), document: File { extra: None, client_id: None, id: 2, size: 51194, expected_size: 51194, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWmgv46H0ZHSrOWWVjWzHQytAAIBAAMFdGBL-7XbSzHWasIjBA", unique_id: "AgADAQADBXRgSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 51194 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [2310725, 7174476, 2047025, 5541474] }), intensity: 58, is_inverted: true, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 2128220, bottom_color: 6192443, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 5674079 } }, ChatTheme { extra: None, client_id: None, name: "⛄", light_settings: ThemeSettings { extra: None, client_id: None, accent_color: 3317463, background: Some(Background { extra: None, client_id: None, id: 5431752389432442881, is_default: false, is_dark: true, name: "ipMwAwV2YUsBAAAAWaE1u0St_fM", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 148, height: 320, file: File { extra: None, client_id: None, id: 3, size: 27697, expected_size: 27697, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaeoc6_ueQwAB2Tn-7kNfOFrCAAIBAAOlYGFLIaUZQsNMalkBAAdtAAMjBA", unique_id: "AQADAQADpWBhS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 27697 } } }), document: File { extra: None, client_id: None, id: 4, size: 100992, expected_size: 100992, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWnqHOv7nkMAAdk5_u5DXzhawgACAQADpWBhSyGlGULDTGpZIwQ", unique_id: "AgADAQADpWBhSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 100992 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [8497648, 10343668, 11460562, 12304367] }), intensity: 41, is_inverted: false, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 15333371, bottom_color: 15727612, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 4367839 }, dark_settings: ThemeSettings { extra: None, client_id: None, accent_color: 5019631, background: Some(Background { extra: None, client_id: None, id: 5431752389432442881, is_default: false, is_dark: true, name: "ipMwAwV2YUsBAAAAWaE1u0St_fM", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 148, height: 320, file: File { extra: None, client_id: None, id: 3, size: 27697, expected_size: 27697, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaeoc6_ueQwAB2Tn-7kNfOFrCAAIBAAOlYGFLIaUZQsNMalkBAAdtAAMjBA", unique_id: "AQADAQADpWBhS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 27697 } } }), document: File { extra: None, client_id: None, id: 4, size: 100992, expected_size: 100992, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWnqHOv7nkMAAdk5_u5DXzhawgACAQADpWBhSyGlGULDTGpZIwQ", unique_id: "AgADAQADpWBhSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 100992 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [5274253, 2109771, 2122357, 1582382] }), intensity: 57, is_inverted: true, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 3305130, bottom_color: 2261394, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 5019631 } }, ChatTheme { extra: None, client_id: None, name: "💎", light_settings: ThemeSettings { extra: None, client_id: None, accent_color: 10776791, background: Some(Background { extra: None, client_id: None, id: 5431672511630671873, is_default: false, is_dark: true, name: "fNEcKF8tYUsBAAAACZfx-Ulx_dg", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 5, size: 21763, expected_size: 21763, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaTS-6lgCh6CD9xKaG0427g4AAgEAAzbGYUsiqF0lsrY5VwEAB20AAyME", unique_id: "AQADAQADNsZhS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 21763 } } }), document: File { extra: None, client_id: None, id: 6, size: 93075, expected_size: 93075, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWk0vupYAoegg_cSmhtONu4OAAIBAAM2xmFLIqhdJbK2OVcjBA", unique_id: "AgADAQADNsZhSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 93075 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [9944811, 11659754, 13021679, 15710172] }), intensity: 50, is_inverted: false, is_moving: false }) }), outgoing_message_fill: Solid(BackgroundFillSolid { extra: None, client_id: None, color: 15136767 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 5550056 }, dark_settings: ThemeSettings { extra: None, client_id: None, accent_color: 8806573, background: Some(Background { extra: None, client_id: None, id: 5431672511630671873, is_default: false, is_dark: true, name: "fNEcKF8tYUsBAAAACZfx-Ulx_dg", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 5, size: 21763, expected_size: 21763, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaTS-6lgCh6CD9xKaG0427g4AAgEAAzbGYUsiqF0lsrY5VwEAB20AAyME", unique_id: "AQADAQADNsZhS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 21763 } } }), document: File { extra: None, client_id: None, id: 6, size: 93075, expected_size: 93075, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWk0vupYAoegg_cSmhtONu4OAAIBAAM2xmFLIqhdJbK2OVcjBA", unique_id: "AgADAQADNsZhSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 93075 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [2499660, 4286356, 1713474, 7295121] }), intensity: 58, is_inverted: true, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 4869798, bottom_color: 2456746, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 8806573 } }, ChatTheme { extra: None, client_id: None, name: "👨\u{200d}🏫", light_settings: ThemeSettings { extra: None, client_id: None, accent_color: 2143654, background: Some(Background { extra: None, client_id: None, id: 5431450947152773121, is_default: false, is_dark: true, name: "uw9kWdxjYEsBAAAAsMQaJOuojNk", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 148, height: 320, file: File { extra: None, client_id: None, id: 7, size: 22921, expected_size: 22921, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaU9yDMWXj4MQDNy2ZPxI03UAAgEAAzgJYEtcJRMpswOUvAEAB20AAyME", unique_id: "AQADAQADOAlgS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 22921 } } }), document: File { extra: None, client_id: None, id: 8, size: 312605, expected_size: 312605, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWlPcgzFl4-DEAzctmT8SNN1AAIBAAM4CWBLXCUTKbMDlLwjBA", unique_id: "AgADAQADOAlgSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 312605 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [13755285, 9556684, 7780582, 9557658] }), intensity: 50, is_inverted: false, is_moving: false }) }), outgoing_message_fill: Solid(BackgroundFillSolid { extra: None, client_id: None, color: 16055267 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 3452533 }, dark_settings: ThemeSettings { extra: None, client_id: None, accent_color: 5083299, background: Some(Background { extra: None, client_id: None, id: 5431450947152773121, is_default: false, is_dark: true, name: "uw9kWdxjYEsBAAAAsMQaJOuojNk", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 148, height: 320, file: File { extra: None, client_id: None, id: 7, size: 22921, expected_size: 22921, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaU9yDMWXj4MQDNy2ZPxI03UAAgEAAzgJYEtcJRMpswOUvAEAB20AAyME", unique_id: "AQADAQADOAlgS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 22921 } } }), document: File { extra: None, client_id: None, id: 8, size: 312605, expected_size: 312605, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWlPcgzFl4-DEAzctmT8SNN1AAIBAAM4CWBLXCUTKbMDlLwjBA", unique_id: "AgADAQADOAlgSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 312605 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [4223869, 1916771, 5797203, 1656130] }), intensity: 61, is_inverted: true, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 3697773, bottom_color: 5732947, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 5083299 } }, ChatTheme { extra: None, client_id: None, name: "🌷", light_settings: ThemeSettings { extra: None, client_id: None, accent_color: 13658513, background: Some(Background { extra: None, client_id: None, id: 5431404655995256833, is_default: false, is_dark: true, name: "fuvAdcI5YEsBAAAA4sz-aqjSKXU", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 9, size: 23099, expected_size: 23099, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaVmU_R_9qfPVCCZ88OSJ4RwAAgEAAzXBYUsXG-K8WjPEwAEAB20AAyME", unique_id: "AQADAQADNcFhS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 23099 } } }), document: File { extra: None, client_id: None, id: 10, size: 51705, expected_size: 51705, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWlZlP0f_anz1QgmfPDkieEcAAIBAAM1wWFLFxvivFozxMAjBA", unique_id: "AgADAQADNcFhSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 51705 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [15511182, 15254915, 15442113, 13087211] }), intensity: 50, is_inverted: false, is_moving: false }) }), outgoing_message_fill: Solid(BackgroundFillSolid { extra: None, client_id: None, color: 16773603 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 13933382 }, dark_settings: ThemeSettings { extra: None, client_id: None, accent_color: 12411780, background: Some(Background { extra: None, client_id: None, id: 5431404655995256833, is_default: false, is_dark: true, name: "fuvAdcI5YEsBAAAA4sz-aqjSKXU", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 9, size: 23099, expected_size: 23099, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaVmU_R_9qfPVCCZ88OSJ4RwAAgEAAzXBYUsXG-K8WjPEwAEAB20AAyME", unique_id: "AQADAQADNcFhS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 23099 } } }), document: File { extra: None, client_id: None, id: 10, size: 51705, expected_size: 51705, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWlZlP0f_anz1QgmfPDkieEcAAIBAAM1wWFLFxvivFozxMAjBA", unique_id: "AgADAQADNcFhSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 51705 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [8085921, 5254203, 10644559, 6042922] }), intensity: 58, is_inverted: true, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 10044247, bottom_color: 12151869, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 12411780 } }, ChatTheme { extra: None, client_id: None, name: "💜", light_settings: ThemeSettings { extra: None, client_id: None, accent_color: 10776791, background: Some(Background { extra: None, client_id: None, id: 5431459257914490881, is_default: false, is_dark: true, name: "E1ZORmtrYEsBAAAAlnN50s9xVI8", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 11, size: 21485, expected_size: 21485, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaYmE2nJkuJFvLOxDFILzKEMAAgEAA2C5YUu2wJRKQ_3i4AEAB20AAyME", unique_id: "AQADAQADYLlhS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 21485 } } }), document: File { extra: None, client_id: None, id: 12, size: 64363, expected_size: 64363, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWmJhNpyZLiRbyzsQxSC8yhDAAIBAANguWFLtsCUSkP94uAjBA", unique_id: "AgADAQADYLlhSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 64363 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [15308995, 15312086, 12034025, 15511668] }), intensity: 57, is_inverted: false, is_moving: false }) }), outgoing_message_fill: Solid(BackgroundFillSolid { extra: None, client_id: None, color: 16772078 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 14248063 }, dark_settings: ThemeSettings { extra: None, client_id: None, accent_color: 8676013, background: Some(Background { extra: None, client_id: None, id: 5431459257914490881, is_default: false, is_dark: true, name: "E1ZORmtrYEsBAAAAlnN50s9xVI8", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 11, size: 21485, expected_size: 21485, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaYmE2nJkuJFvLOxDFILzKEMAAgEAA2C5YUu2wJRKQ_3i4AEAB20AAyME", unique_id: "AQADAQADYLlhS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 21485 } } }), document: File { extra: None, client_id: None, id: 12, size: 64363, expected_size: 64363, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWmJhNpyZLiRbyzsQxSC8yhDAAIBAANguWFLtsCUSkP94uAjBA", unique_id: "AgADAQADYLlhSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 64363 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [7230895, 3616344, 8671107, 5193521] }), intensity: 59, is_inverted: true, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 6701434, bottom_color: 10834805, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 8676013 } }, ChatTheme { extra: None, client_id: None, name: "🎄", light_settings: ThemeSettings { extra: None, client_id: None, accent_color: 5612377, background: Some(Background { extra: None, client_id: None, id: 5431841540068605953, is_default: false, is_dark: true, name: "KsxJCxrHYUsBAAAAQBkOgMUZRYE", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 13, size: 19643, expected_size: 19643, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaZy8DhTUSQlsRCnwKM3fh0QAAgEAAz8MYEsv0rntJe3EjQEAB20AAyME", unique_id: "AQADAQADPwxgS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 19643 } } }), document: File { extra: None, client_id: None, id: 14, size: 104932, expected_size: 104932, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWmcvA4U1EkJbEQp8CjN34dEAAIBAAM_DGBLL9K57SXtxI0jBA", unique_id: "AgADAQADPwxgSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 104932 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [14721899, 15449723, 14718336, 16308350] }), intensity: 64, is_inverted: false, is_moving: false }) }), outgoing_message_fill: Solid(BackgroundFillSolid { extra: None, client_id: None, color: 16775136 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 13539151 }, dark_settings: ThemeSettings { extra: None, client_id: None, accent_color: 5866826, background: Some(Background { extra: None, client_id: None, id: 5431841540068605953, is_default: false, is_dark: true, name: "KsxJCxrHYUsBAAAAQBkOgMUZRYE", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 155, height: 320, file: File { extra: None, client_id: None, id: 13, size: 19643, expected_size: 19643, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaZy8DhTUSQlsRCnwKM3fh0QAAgEAAz8MYEsv0rntJe3EjQEAB20AAyME", unique_id: "AQADAQADPwxgS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 19643 } } }), document: File { extra: None, client_id: None, id: 14, size: 104932, expected_size: 104932, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWmcvA4U1EkJbEQp8CjN34dEAAIBAAM_DGBLL9K57SXtxI0jBA", unique_id: "AgADAQADPwxgSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 104932 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [4155708, 4666134, 7495993, 2439462] }), intensity: 60, is_inverted: true, is_moving: false }) }), outgoing_message_fill: Gradient(BackgroundFillGradient { extra: None, client_id: None, top_color: 11431746, bottom_color: 11371840, rotation_angle: 0 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 5866826 } }, ChatTheme { extra: None, client_id: None, name: "🎮", light_settings: ThemeSettings { extra: None, client_id: None, accent_color: 6916326, background: Some(Background { extra: None, client_id: None, id: 5431860274715951105, is_default: false, is_dark: true, name: "8W_Y_CTYYUsBAAAAVhlSxz_CnZk", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 156, height: 320, file: File { extra: None, client_id: None, id: 15, size: 21843, expected_size: 21843, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaZeEAAFHdj6D4xua34Rx0KQ9AAIBAAPHL2BLtDRmxEd2S-oBAAdtAAMjBA", unique_id: "AQADAQADxy9gS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 21843 } } }), document: File { extra: None, client_id: None, id: 16, size: 78338, expected_size: 78338, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWmXhAABR3Y-g-Mbmt-EcdCkPQACAQADxy9gS7Q0ZsRHdkvqIwQ", unique_id: "AgADAQADxy9gSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 78338 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [4247006, 11306733, 15303896, 14724429] }), intensity: 52, is_inverted: false, is_moving: false }) }), outgoing_message_fill: Solid(BackgroundFillSolid { extra: None, client_id: None, color: 16774101 }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 13410377 }, dark_settings: ThemeSettings { extra: None, client_id: None, accent_color: 7370188, background: Some(Background { extra: None, client_id: None, id: 5431860274715951105, is_default: false, is_dark: true, name: "8W_Y_CTYYUsBAAAAVhlSxz_CnZk", document: Some(Document { extra: None, client_id: None, file_name: "pattern.tgv", mime_type: "application/x-tgwallpattern", minithumbnail: None, thumbnail: Some(Thumbnail { extra: None, client_id: None, format: Png(ThumbnailFormatPng { extra: None, client_id: None }), width: 156, height: 320, file: File { extra: None, client_id: None, id: 15, size: 21843, expected_size: 21843, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "AAMCAQADFQABY6KZaZeEAAFHdj6D4xua34Rx0KQ9AAIBAAPHL2BLtDRmxEd2S-oBAAdtAAMjBA", unique_id: "AQADAQADxy9gS3I", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 21843 } } }), document: File { extra: None, client_id: None, id: 16, size: 78338, expected_size: 78338, local: LocalFile { extra: None, client_id: None, path: "", can_be_downloaded: true, can_be_deleted: false, is_downloading_active: false, is_downloading_completed: false, download_offset: 0, downloaded_prefix_size: 0, downloaded_size: 0 }, remote: RemoteFile { extra: None, client_id: None, id: "EAACAgEAAxUAAWOimWmXhAABR3Y-g-Mbmt-EcdCkPQACAQADxy9gS7Q0ZsRHdkvqIwQ", unique_id: "AgADAQADxy9gSw", is_uploading_active: false, is_uploading_completed: true, uploaded_size: 78338 } } }), type_: Pattern(BackgroundTypePattern { extra: None, client_id: None, fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [4226963, 1326682, 6708886, 3878219] }), intensity: 58, is_inverted: true, is_moving: false }) }), outgoing_message_fill: FreeformGradient(BackgroundFillFreeformGradient { extra: None, client_id: None, colors: [11958341, 9848425, 6375839, 2981550] }), animate_outgoing_message_fill: false, outgoing_message_accent_color: 7370188 } }] })
2022-12-21T13:35:24.325047074+08:00 INFO tg_bot_tdlib - updates handler received ScopeNotificationSettings(UpdateScopeNotificationSettings { extra: None, client_id: Some(1), scope: PrivateChats(NotificationSettingsScopePrivateChats { extra: None, client_id: None }), notification_settings: ScopeNotificationSettings { extra: None, client_id: None, mute_for: 0, sound: "default", show_preview: true, disable_pinned_message_notifications: false, disable_mention_notifications: false } })
2022-12-21T13:35:24.325170125+08:00 INFO tg_bot_tdlib - updates handler received ScopeNotificationSettings(UpdateScopeNotificationSettings { extra: None, client_id: Some(1), scope: GroupChats(NotificationSettingsScopeGroupChats { extra: None, client_id: None }), notification_settings: ScopeNotificationSettings { extra: None, client_id: None, mute_for: 0, sound: "default", show_preview: true, disable_pinned_message_notifications: false, disable_mention_notifications: false } })
2022-12-21T13:35:24.325211698+08:00 INFO tg_bot_tdlib - updates handler received ScopeNotificationSettings(UpdateScopeNotificationSettings { extra: None, client_id: Some(1), scope: ChannelChats(NotificationSettingsScopeChannelChats { extra: None, client_id: None }), notification_settings: ScopeNotificationSettings { extra: None, client_id: None, mute_for: 0, sound: "default", show_preview: true, disable_pinned_message_notifications: false, disable_mention_notifications: false } })
2022-12-21T13:35:24.325233891+08:00 INFO tg_bot_tdlib - updates handler received ChatFilters(UpdateChatFilters { extra: None, client_id: Some(1), chat_filters: [] })
2022-12-21T13:35:24.325253400+08:00 INFO tg_bot_tdlib - updates handler received ConnectionState(UpdateConnectionState { extra: None, client_id: Some(1), state: Connecting(ConnectionStateConnecting { extra: None, client_id: None }) })
2022-12-21T13:35:24.325271145+08:00 INFO tg_bot_tdlib - updates handler received ConnectionState(UpdateConnectionState { extra: None, client_id: Some(1), state: Updating(ConnectionStateUpdating { extra: None, client_id: None }) })
2022-12-21T13:35:24.325286790+08:00 INFO tg_bot_tdlib - updates handler received HavePendingNotifications(UpdateHavePendingNotifications { extra: None, client_id: Some(1), have_delayed_notifications: false, have_unreceived_notifications: false })
2022-12-21T13:35:24.325301578+08:00 INFO tg_bot_tdlib - updates handler received ConnectionState(UpdateConnectionState { extra: None, client_id: Some(1), state: Ready(ConnectionStateReady { extra: None, client_id: None }) })
2022-12-21T13:35:24.325316101+08:00 INFO tg_bot_tdlib - updates handler received SuggestedActions(UpdateSuggestedActions { extra: None, client_id: Some(1), added_actions: [CheckPhoneNumber(SuggestedActionCheckPhoneNumber { extra: None, client_id: None }), ViewChecksHint(SuggestedActionViewChecksHint { extra: None, client_id: None })], removed_actions: [] })
2022-12-21T13:35:24.325375692+08:00 INFO tg_bot_tdlib - updates handler received User(UpdateUser { extra: None, client_id: Some(1), user: User { extra: None, client_id: None, id: 5000443693, first_name: "Eric", last_name: "Deng", username: "", phone_number: "###########", status: Offline(UserStatusOffline { extra: None, client_id: None, was_online: 1671598776 }), profile_photo: None, is_contact: false, is_mutual_contact: false, is_verified: false, is_support: false, restriction_reason: "", is_scam: false, is_fake: false, have_access: true, type_: Regular(UserTypeRegular { extra: None, client_id: None }), language_code: "" } })
EricDeng1001 commented 1 year ago

Update: in tdlib js bindings, I can confirm updates can be recieved

antonio-antuan commented 1 year ago

As you see, updates received properly, including online data, such as UpdateUser. Nevertheless, you specify use_test_dc(true). Actually I couldn't figure out how exactly test dc works, even if auth flow is successfull. Haven't received any updates with this option yet). Could you try not to use test dc?

On Wed, Dec 21, 2022, at 07:43, Eric Deng wrote:

Update: in tdlib js bindings, I can confirm updates can be recieved

— Reply to this email directly, view it on GitHub https://github.com/antonio-antuan/rust-tdlib/issues/25#issuecomment-1360882673, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRBAYDM3WVROV5KNILTMK3WOKKJNANCNFSM6AAAAAATFHV2BA. You are receiving this because you are subscribed to this thread.Message ID: @.***>

EricDeng1001 commented 1 year ago

Thanks! this is exactly the prolem! U are awesome!

EricDeng1001 commented 1 year ago

Another question: how to get UpdateInlineQuery? Or: how to login as bot? I see some js lib provding two methods: login() and loginAsBot()

antonio-antuan commented 1 year ago
  1. I found several methods: send_inline_query_result_message and get_inline_query_results. Try to use them.
  2. I haven't tried to use lib with bots. Diving into the code I found this: https://github.com/antonio-antuan/rust-tdlib/blob/dc3c903e7a712e35a64e644c3bce20462cb2a151/src/client/api.rs#L232. Unfortunatelly, auth flow doesn't support it for now. Looks like I have to implement it. I plan to do it on holidays.
EricDeng1001 commented 1 year ago

Thanks for your great work!

antonio-antuan commented 1 year ago

@EricDeng1001 please check this branch. Example with bot authentication is here. You can try this command to check if bot authentication works correctly: API_ID=FOO API_HASH=BAR BOT_TOKEN=BAZ RUST_LOG=info cargo run --example auth_bot

Please take into account that AuthStateHandler::handle_wait_phone_number changed to AuthStateHandler::handle_wait_client_identifier.

You will most likely see such a warning: "invalid first internal response received" when you try to auth as a bot. It's doesn't matter, but not possible to remove this warn.

antonio-antuan commented 1 year ago

as far as there is no feedback I mark the issue as resolved via #26 , published the feature as the new version - 0.4.2