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

Method summarize

Telegram/SourceFiles/api/api_transcribes.cpp:239–291  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

237}
238
239void Transcribes::summarize(not_null<HistoryItem*> item) {
240 if (!item->isHistoryEntry() || item->isLocal()) {
241 return;
242 }
243
244 const auto id = item->fullId();
245 const auto translatedTo = item->history()->translatedTo();
246 const auto langCode = translatedTo
247 ? translatedTo.twoLetterCode()
248 : QString();
249 const auto requestId = _api.request(MTPmessages_SummarizeText(
250 langCode.isEmpty()
251 ? MTP_flags(0)
252 : MTP_flags(MTPmessages_summarizeText::Flag::f_to_lang),
253 item->history()->peer->input(),
254 MTP_int(item->id),
255 langCode.isEmpty() ? MTPstring() : MTP_string(langCode),
256 MTPstring() // tone
257 )).done([=](const MTPTextWithEntities &result) {
258 const auto &data = result.data();
259 auto &entry = _summaries[id];
260 entry.requestId = 0;
261 entry.loading = false;
262 entry.premiumRequired = false;
263 entry.languageId = translatedTo;
264 entry.result = TextWithEntities(
265 qs(data.vtext()),
266 Api::EntitiesFromMTP(_session, data.ventities().v));
267 if (const auto item = _session->data().message(id)) {
268 _session->data().requestItemTextRefresh(item);
269 _session->data().requestItemShowHighlight(item);
270 }
271 }).fail([=](const MTP::Error &error) {
272 auto &entry = _summaries[id];
273 if (error.type() == u"SUMMARY_FLOOD_PREMIUM"_q) {
274 entry.premiumRequired = true;
275 }
276 entry.requestId = 0;
277 entry.shown = false;
278 entry.loading = false;
279 if (const auto item = _session->data().message(id)) {
280 _session->data().requestItemTextRefresh(item);
281 }
282 }).send();
283
284 auto &entry = _summaries.emplace(id).first->second;
285 entry.requestId = requestId;
286 entry.shown = true;
287 entry.loading = true;
288
289 item->setHasSummaryEntry();
290 _session->data().requestItemResize(item);
291}
292
293void Transcribes::checkSummaryToTranslate(FullMsgId id) {
294 const auto i = _summaries.find(id);

Callers

nothing calls this directly

Calls 15

MTP_flagsFunction · 0.85
MTP_stringFunction · 0.85
TextWithEntitiesClass · 0.85
qsFunction · 0.85
EntitiesFromMTPFunction · 0.85
isHistoryEntryMethod · 0.80
emplaceMethod · 0.80
setHasSummaryEntryMethod · 0.80
requestItemResizeMethod · 0.80
QStringClass · 0.50

Tested by

no test coverage detected