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

Function WhoReadOrReactedIds

Telegram/SourceFiles/api/api_who_reacted.cpp:427–456  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

425}
426
427[[nodiscard]] auto WhoReadOrReactedIds(
428 not_null<HistoryItem*> item,
429 not_null<QWidget*> context)
430-> rpl::producer<PeersWithReactions> {
431 return rpl::combine(
432 WhoReactedIds(item, {}, context),
433 WhoReadIds(item, context)
434 ) | rpl::map([=](PeersWithReactions &&reacted, Peers &&read) {
435 if (reacted.state == WhoReadState::Unknown
436 || read.state == WhoReadState::Unknown) {
437 return PeersWithReactions{ .state = WhoReadState::Unknown};
438 }
439 auto &list = reacted.list;
440 for (const auto &peerWithDate : read.list) {
441 const auto i = ranges::find(
442 list,
443 peerWithDate.peer,
444 [](const PeerWithReaction &p) {
445 return p.peerWithDate.peer; });
446 if (i == end(list)) {
447 list.push_back({ .peerWithDate = peerWithDate });
448 } else if (!i->peerWithDate.date) {
449 i->peerWithDate.date = peerWithDate.date;
450 i->peerWithDate.dateReacted = peerWithDate.dateReacted;
451 }
452 }
453 reacted.read = std::move(read.list);
454 return std::move(reacted);
455 });
456}
457
458bool UpdateUserpics(
459 not_null<State*> state,

Callers 1

WhoReactedFunction · 0.85

Calls 2

WhoReactedIdsFunction · 0.85
WhoReadIdsFunction · 0.85

Tested by

no test coverage detected