mirror of
https://github.com/Steffo99/patched-porobot.git
synced 2024-12-23 01:54:22 +00:00
Add a way to convert Card
into InlineQueryResult
This commit is contained in:
parent
c945f7e6c5
commit
b2a2535b93
3 changed files with 44 additions and 1 deletions
|
@ -20,7 +20,7 @@ use crate::data::setbundle::supertype::CardSupertype;
|
||||||
/// Render a [Card] in [Telegram Bot HTML].
|
/// Render a [Card] in [Telegram Bot HTML].
|
||||||
///
|
///
|
||||||
/// [Telegram Bot HTML]: https://core.telegram.org/bots/api#html-style
|
/// [Telegram Bot HTML]: https://core.telegram.org/bots/api#html-style
|
||||||
pub fn display_card(card: &Card, globals: &LocalizedGlobalsIndexes) -> String {
|
pub fn display_card(globals: &LocalizedGlobalsIndexes, card: &Card) -> String {
|
||||||
let title = format!(
|
let title = format!(
|
||||||
r#"<a href="{}"><b><i>{}</b></i></a>"#,
|
r#"<a href="{}"><b><i>{}</b></i></a>"#,
|
||||||
&card.main_art().expect("Card to have at least one illustration").card_png,
|
&card.main_art().expect("Card to have at least one illustration").card_png,
|
||||||
|
|
42
src/telegram/inline.rs
Normal file
42
src/telegram/inline.rs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
//! Module defining helper functions for returning [inline mode] results.
|
||||||
|
//!
|
||||||
|
//! [inline mode]: https://core.telegram.org/bots/api#inline-mode
|
||||||
|
|
||||||
|
use teloxide::types::{InlineQueryResult, InlineQueryResultPhoto, InputMessageContent, InputMessageContentText, ParseMode};
|
||||||
|
use crate::data::corebundle::globals::LocalizedGlobalsIndexes;
|
||||||
|
use crate::data::setbundle::card::Card;
|
||||||
|
use crate::telegram::display::display_card;
|
||||||
|
|
||||||
|
|
||||||
|
/// Converts a [Card] into a [InlineQueryResult].
|
||||||
|
pub fn card_to_inlinequeryresult(globals: &LocalizedGlobalsIndexes, card: &Card) -> InlineQueryResult {
|
||||||
|
InlineQueryResult::Photo(InlineQueryResultPhoto {
|
||||||
|
id: card.code.to_owned(),
|
||||||
|
title: Some(card.name.to_owned()),
|
||||||
|
photo_url: card
|
||||||
|
.main_art()
|
||||||
|
.expect("Card to have at least one illustration")
|
||||||
|
.card_jpg().parse()
|
||||||
|
.expect("Card to have a valid card_jpg URL"),
|
||||||
|
thumb_url: card
|
||||||
|
.main_art()
|
||||||
|
.expect("Card to have at least one illustration")
|
||||||
|
.card_jpg().parse()
|
||||||
|
.expect("Card to have a valid card_jpg URL"),
|
||||||
|
photo_width: Some(680),
|
||||||
|
photo_height: Some(1024),
|
||||||
|
|
||||||
|
input_message_content: Some(InputMessageContent::Text(InputMessageContentText {
|
||||||
|
message_text: display_card(&globals, &card),
|
||||||
|
parse_mode: Some(ParseMode::Html),
|
||||||
|
entities: None,
|
||||||
|
disable_web_page_preview: Some(true)
|
||||||
|
})),
|
||||||
|
|
||||||
|
description: None,
|
||||||
|
caption: None,
|
||||||
|
parse_mode: None,
|
||||||
|
caption_entities: None,
|
||||||
|
reply_markup: None,
|
||||||
|
})
|
||||||
|
}
|
|
@ -3,3 +3,4 @@
|
||||||
//! Remember while adding new features to this module that binaries [can only access the public API of the crate](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries).
|
//! Remember while adding new features to this module that binaries [can only access the public API of the crate](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries).
|
||||||
|
|
||||||
pub mod display;
|
pub mod display;
|
||||||
|
pub mod inline;
|
||||||
|
|
Loading…
Reference in a new issue