Compare commits
3
Commits
v1.0
...
14c15fca85
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
14c15fca85 | ||
|
|
e8c7115264 | ||
|
|
2c52e3462a |
+22
-3
@@ -65,10 +65,11 @@ void cmd::handle_inline_query(context *ctx, td_api::updateNewInlineQuery &query)
|
||||
std::vector<td_api::object_ptr<td_api::InputInlineQueryResult>> results;
|
||||
if (url::is_url_valid(query.query_)) {
|
||||
uint64_t pendingQueryId = new_pending_query_id();
|
||||
spdlog::debug("inserting new inline query for url {}", query.query_);
|
||||
ctx->inlineQueries.insert(std::pair<uint64_t, pending_inline_query>(pendingQueryId, {query.query_, std::chrono::steady_clock::now() + std::chrono::hours(5)}));
|
||||
|
||||
auto messageButton = td_api::make_object<td_api::inlineKeyboardButton>(
|
||||
"press to shorten",
|
||||
"shorten",
|
||||
static_cast<td_api::object_ptr<td_api::InlineKeyboardButtonType>>(td_api::make_object<td_api::inlineKeyboardButtonTypeCallback>(std::to_string(pendingQueryId)))
|
||||
);
|
||||
|
||||
@@ -91,7 +92,7 @@ void cmd::handle_inline_query(context *ctx, td_api::updateNewInlineQuery &query)
|
||||
)),
|
||||
static_cast<td_api::object_ptr<td_api::InputMessageContent>>(td_api::make_object<td_api::inputMessageText>(
|
||||
td_api::make_object<td_api::formattedText>(
|
||||
query.query_,
|
||||
"press the button to shorten",
|
||||
std::move(std::vector<td_api::object_ptr<td_api::textEntity>>())
|
||||
),
|
||||
td_api::make_object<td_api::linkPreviewOptions>(true, "", false, false, false),
|
||||
@@ -104,7 +105,7 @@ void cmd::handle_inline_query(context *ctx, td_api::updateNewInlineQuery &query)
|
||||
false, // is_personal
|
||||
nullptr, // button
|
||||
std::move(results),
|
||||
600, // cache_time
|
||||
0, // cache_time
|
||||
"" // next_offset
|
||||
), {});
|
||||
}
|
||||
@@ -163,6 +164,24 @@ void cmd::handle_callback_query(context *ctx, td_api::updateNewInlineCallbackQue
|
||||
}
|
||||
}
|
||||
|
||||
void cmd::handle_chosen_inline_result(context *ctx, td_api::updateNewChosenInlineResult &result) {
|
||||
shorten_link(result.query_, ctx, [ctx, inlineMessageId = result.inline_message_id_](std::string url){
|
||||
ctx->tg->send_query(td_api::make_object<td_api::editInlineMessageText>(
|
||||
inlineMessageId,
|
||||
nullptr, // reply_markup
|
||||
static_cast<td_api::object_ptr<td_api::InputMessageContent>>(td_api::make_object<td_api::inputMessageText>(
|
||||
td_api::make_object<td_api::formattedText>(
|
||||
url,
|
||||
std::move(std::vector<td_api::object_ptr<td_api::textEntity>>())
|
||||
),
|
||||
td_api::make_object<td_api::linkPreviewOptions>(true, "", false, false, false),
|
||||
//nullptr,
|
||||
false
|
||||
))
|
||||
), {});
|
||||
});
|
||||
}
|
||||
|
||||
bool cmd::shorten_link(std::string link, context *ctx, std::function<void(std::string)> cb) {
|
||||
spdlog::debug("creating CURL request");
|
||||
CURL *req = curl_easy_init();
|
||||
|
||||
@@ -8,6 +8,7 @@ namespace cmd {
|
||||
void handle_regular_message(context *ctx, td_api::message &msg);
|
||||
void handle_inline_query(context *ctx, td_api::updateNewInlineQuery &query);
|
||||
void handle_callback_query(context *ctx, td_api::updateNewInlineCallbackQuery &query);
|
||||
void handle_chosen_inline_result(context *ctx, td_api::updateNewChosenInlineResult &result);
|
||||
bool shorten_link(std::string link, context *ctx, std::function<void(std::string)> cb);
|
||||
|
||||
uint64_t new_pending_query_id();
|
||||
|
||||
@@ -142,6 +142,9 @@ void async_startup(uv_idle_t *h) {
|
||||
[ctx](td_api::updateNewInlineCallbackQuery &upd) {
|
||||
cmd::handle_callback_query(ctx, upd);
|
||||
},
|
||||
[ctx](td_api::updateNewChosenInlineResult &upd) {
|
||||
cmd::handle_chosen_inline_result(ctx, upd);
|
||||
},
|
||||
[](td_api::Object &obj){}
|
||||
));
|
||||
}, nullptr);
|
||||
|
||||
Reference in New Issue
Block a user