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

Method block

Telegram/SourceFiles/api/api_blocked_peers.cpp:77–125  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

75}
76
77void BlockedPeers::block(not_null<PeerData*> peer) {
78 if (peer->isBlocked()) {
79 _session->changes().peerUpdated(
80 peer,
81 Data::PeerUpdate::Flag::IsBlocked);
82 return;
83 } else if (blockAlreadySent(peer, true)) {
84 return;
85 }
86 const auto requestId = _api.request(MTPcontacts_Block(
87 MTP_flags(0),
88 peer->input()
89 )).done([=] {
90 const auto data = _blockRequests.take(peer);
91 peer->setIsBlocked(true);
92
93 if (GetEnhancedBool("blocked_user_spoiler_mode")) {
94 if (!blockExist(peer->id.value)) {
95 EnhancedSettings::Manager().addIdToBlocklist(int64(peer->id.value));
96 }
97 auto &histories = _session->data().histories();
98 histories.editHistoriesMessages(peer, true);
99 }
100
101 if (_slice) {
102 _slice->list.insert(
103 _slice->list.begin(),
104 { peer->id, base::unixtime::now() });
105 ++_slice->total;
106 _changes.fire_copy(*_slice);
107 }
108 if (data) {
109 for (const auto &callback : data->callbacks) {
110 callback(false);
111 }
112 }
113 }).fail([=] {
114 if (const auto data = _blockRequests.take(peer)) {
115 for (const auto &callback : data->callbacks) {
116 callback(false);
117 }
118 }
119 }).send();
120
121 _blockRequests.emplace(peer, Request{
122 .requestId = requestId,
123 .blocking = true,
124 });
125}
126
127void BlockedPeers::unblock(
128 not_null<PeerData*> peer,

Callers 9

addBlockUserMethod · 0.45
PeerMenuBlockUserBoxFunction · 0.45
DeleteChatBoxFunction · 0.45
readInboxTillMethod · 0.45
injectMethod · 0.45
BlockNewPeerMethod · 0.45
deleteConfirmedMethod · 0.45
requestTerminateMethod · 0.45
inputMethodEventMethod · 0.45

Calls 15

MTP_flagsFunction · 0.85
GetEnhancedBoolFunction · 0.85
blockExistFunction · 0.85
peerUpdatedMethod · 0.80
setIsBlockedMethod · 0.80
addIdToBlocklistMethod · 0.80
editHistoriesMessagesMethod · 0.80
emplaceMethod · 0.80
ManagerClass · 0.50
isBlockedMethod · 0.45
changesMethod · 0.45
sendMethod · 0.45

Tested by

no test coverage detected