mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
Added new api support to text summarizing.
This commit is contained in:
@@ -235,27 +235,25 @@ void Transcribes::summarize(not_null<HistoryItem*> item) {
|
||||
}
|
||||
|
||||
const auto id = item->fullId();
|
||||
const auto requestId = _api.request(MTPmessages_TranslateText(
|
||||
MTP_flags(MTPmessages_TranslateText::Flag::f_peer
|
||||
| MTPmessages_TranslateText::Flag::f_id),
|
||||
const auto langSummary = summaryFromLang(id);
|
||||
const auto requestId = _api.request(MTPmessages_SummarizeText(
|
||||
langSummary.isEmpty()
|
||||
? MTP_flags(0)
|
||||
: MTP_flags(MTPmessages_summarizeText::Flag::f_to_lang),
|
||||
item->history()->peer->input(),
|
||||
MTP_vector<MTPint>(1, MTP_int(item->id)),
|
||||
MTPVector<MTPTextWithEntities>(),
|
||||
MTP_string("sum")
|
||||
)).done([=](const MTPmessages_TranslatedText &result) {
|
||||
const auto &list = result.data().vresult().v;
|
||||
if (!list.isEmpty()) {
|
||||
const auto &tl = list.front().data();
|
||||
auto &entry = _summaries[id];
|
||||
entry.requestId = 0;
|
||||
entry.loading = false;
|
||||
entry.result = TextWithEntities(
|
||||
qs(tl.vtext()),
|
||||
Api::EntitiesFromMTP(_session, tl.ventities().v));
|
||||
if (const auto item = _session->data().message(id)) {
|
||||
_session->data().requestItemResize(item);
|
||||
_session->data().requestItemShowHighlight(item);
|
||||
}
|
||||
MTP_int(item->id),
|
||||
langSummary.isEmpty() ? MTPstring() : MTP_string(langSummary)
|
||||
)).done([=](const MTPTextWithEntities &result) {
|
||||
const auto &data = result.data();
|
||||
auto &entry = _summaries[id];
|
||||
entry.requestId = 0;
|
||||
entry.loading = false;
|
||||
entry.result = TextWithEntities(
|
||||
qs(data.vtext()),
|
||||
Api::EntitiesFromMTP(_session, data.ventities().v));
|
||||
if (const auto item = _session->data().message(id)) {
|
||||
_session->data().requestItemResize(item);
|
||||
_session->data().requestItemShowHighlight(item);
|
||||
}
|
||||
}).fail([=] {
|
||||
auto &entry = _summaries[id];
|
||||
@@ -275,4 +273,13 @@ void Transcribes::summarize(not_null<HistoryItem*> item) {
|
||||
_session->data().requestItemResize(item);
|
||||
}
|
||||
|
||||
void Transcribes::setSummaryFromLang(FullMsgId id, QString &&text) {
|
||||
_summariesFromLang[id] = std::move(text);
|
||||
}
|
||||
|
||||
QString Transcribes::summaryFromLang(FullMsgId id) const {
|
||||
const auto i = _summariesFromLang.find(id);
|
||||
return (i != _summariesFromLang.end()) ? i->second : QString();
|
||||
}
|
||||
|
||||
} // namespace Api
|
||||
|
||||
@@ -44,6 +44,8 @@ public:
|
||||
void toggleSummary(not_null<HistoryItem*> item);
|
||||
[[nodiscard]] const SummaryEntry &summary(
|
||||
not_null<const HistoryItem*> item) const;
|
||||
void setSummaryFromLang(FullMsgId, QString &&summaryFromLang);
|
||||
[[nodiscard]] QString summaryFromLang(FullMsgId) const;
|
||||
|
||||
void apply(const MTPDupdateTranscribedAudio &update);
|
||||
|
||||
@@ -71,6 +73,7 @@ private:
|
||||
base::flat_map<uint64, FullMsgId> _ids;
|
||||
|
||||
base::flat_map<FullMsgId, SummaryEntry> _summaries;
|
||||
base::flat_map<FullMsgId, QString> _summariesFromLang;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user