MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / EditMessage

Function EditMessage

Telegram/SourceFiles/api/api_editing.cpp:291–378  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

289
290template <typename DoneCallback, typename FailCallback>
291mtpRequestId EditMessage(
292 not_null<HistoryItem*> item,
293 const TextWithEntities &textWithEntities,
294 Data::WebPageDraft webpage,
295 SendOptions options,
296 DoneCallback &&done,
297 FailCallback &&fail,
298 std::optional<MTPInputMedia> inputMedia = std::nullopt) {
299 if (item->computeSuggestionActions()
300 == SuggestionActions::AcceptAndDecline) {
301 return SuggestMessageOrMedia(
302 item,
303 textWithEntities,
304 webpage,
305 options,
306 std::move(done),
307 std::move(fail),
308 inputMedia);
309 }
310
311 const auto session = &item->history()->session();
312 const auto api = &session->api();
313
314 const auto text = textWithEntities.text;
315 const auto sentEntities = EntitiesToMTP(
316 session,
317 textWithEntities.entities,
318 ConvertOption::SkipLocal);
319 const auto media = item->media();
320
321 const auto updateRecentStickers = inputMedia.has_value()
322 ? Api::HasAttachedStickers(*inputMedia)
323 : false;
324
325 const auto flags = ComputeEditMessageFlags(
326 item,
327 sentEntities,
328 webpage,
329 options,
330 (!text.isEmpty() || media),
331 ((media && inputMedia.has_value())
332 || (!webpage.removed && !webpage.url.isEmpty())),
333 false);
334
335 const auto id = EditMessageRequestId(item);
336 return api->request(MTPmessages_EditMessage(
337 MTP_flags(flags),
338 item->history()->peer->input(),
339 MTP_int(id),
340 MTP_string(text),
341 inputMedia.value_or(Data::WebPageForMTP(webpage, text.isEmpty())),
342 MTPReplyMarkup(),
343 sentEntities,
344 MTP_int(options.scheduled),
345 MTP_int(options.scheduleRepeatPeriod),
346 MTP_int(item->shortcutId()),
347 MTPInputRichMessage()
348 )).done([=](

Callers 5

RescheduleMessageFunction · 0.85
EditCaptionFunction · 0.85
EditTextMessageFunction · 0.85
EditTodoListFunction · 0.85

Calls 15

SuggestMessageOrMediaFunction · 0.85
EntitiesToMTPFunction · 0.85
HasAttachedStickersFunction · 0.85
ComputeEditMessageFlagsFunction · 0.85
EditMessageRequestIdFunction · 0.85
MTP_flagsFunction · 0.85
MTP_stringFunction · 0.85
WebPageForMTPFunction · 0.85
apiMethod · 0.80
has_valueMethod · 0.80
value_orMethod · 0.80

Tested by

no test coverage detected