Update API scheme, add group call admin log events.

This commit is contained in:
John Preston 2020-12-08 12:45:40 +04:00
parent dde94d486b
commit a14a62eefa
4 changed files with 97 additions and 5 deletions

View File

@ -2068,6 +2068,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_admin_log_removed_location_chat" = "{from} removed the group location";
"lng_admin_log_changed_slow_mode" = "{from} changed slow mode to {duration}";
"lng_admin_log_removed_slow_mode" = "{from} disabled slow mode";
"lng_admin_log_started_group_call" = "{from} started a new voice chat";
"lng_admin_log_discarded_group_call" = "{from} discarded a voice chat";
"lng_admin_log_muted_participant" = "{from} muted {user} in a voice chat";
"lng_admin_log_unmuted_participant" = "{from} unmuted {user} in a voice chat";
"lng_admin_log_allowed_unmute_self" = "{from} allowed new voice chat members to speak";
"lng_admin_log_disallowed_unmute_self" = "{from} started muting new voice chat members";
"lng_admin_log_user_with_username" = "{name} ({mention})";
"lng_admin_log_restricted_forever" = "indefinitely";
"lng_admin_log_restricted_until" = "until {date}";

View File

@ -315,7 +315,7 @@ updateNewStickerSet#688a30aa stickerset:messages.StickerSet = Update;
updateStickerSetsOrder#bb2d201 flags:# masks:flags.0?true order:Vector<long> = Update;
updateStickerSets#43ae3dec = Update;
updateSavedGifs#9375341e = Update;
updateBotInlineQuery#54826690 flags:# query_id:long user_id:int query:string geo:flags.0?GeoPoint offset:string = Update;
updateBotInlineQuery#3f2038db flags:# query_id:long user_id:int query:string geo:flags.0?GeoPoint peer_type:flags.1?InlineQueryPeerType offset:string = Update;
updateBotInlineSend#e48f964 flags:# user_id:int query:string geo:flags.0?GeoPoint id:string msg_id:flags.1?InputBotInlineMessageID = Update;
updateEditChannelMessage#1b3f4df7 message:Message pts:int pts_count:int = Update;
updateBotCallbackQuery#e73547e1 flags:# query_id:long user_id:int peer:Peer msg_id:int chat_instance:long data:flags.0?bytes game_short_name:flags.1?string = Update;
@ -879,6 +879,11 @@ channelAdminLogEventActionStopPoll#8f079643 message:Message = ChannelAdminLogEve
channelAdminLogEventActionChangeLinkedChat#a26f881b prev_value:int new_value:int = ChannelAdminLogEventAction;
channelAdminLogEventActionChangeLocation#e6b76ae prev_value:ChannelLocation new_value:ChannelLocation = ChannelAdminLogEventAction;
channelAdminLogEventActionToggleSlowMode#53909779 prev_value:int new_value:int = ChannelAdminLogEventAction;
channelAdminLogEventActionStartGroupCall#23209745 call:InputGroupCall = ChannelAdminLogEventAction;
channelAdminLogEventActionDiscardGroupCall#db9f9140 call:InputGroupCall = ChannelAdminLogEventAction;
channelAdminLogEventActionParticipantMute#f92424d2 participant:GroupCallParticipant = ChannelAdminLogEventAction;
channelAdminLogEventActionParticipantUnmute#e64429c0 participant:GroupCallParticipant = ChannelAdminLogEventAction;
channelAdminLogEventActionToggleGroupCallSetting#56d6a247 join_muted:Bool = ChannelAdminLogEventAction;
channelAdminLogEvent#3b5a3e40 id:long date:int user_id:int action:ChannelAdminLogEventAction = ChannelAdminLogEvent;
@ -1195,6 +1200,12 @@ phone.groupCall#66ab0bfc call:GroupCall participants:Vector<GroupCallParticipant
phone.groupParticipants#9cfeb92d count:int participants:Vector<GroupCallParticipant> next_offset:string users:Vector<User> version:int = phone.GroupParticipants;
inlineQueryPeerTypeSameBotPM#3081ed9d = InlineQueryPeerType;
inlineQueryPeerTypePM#833c0fac = InlineQueryPeerType;
inlineQueryPeerTypeChat#d766c50a = InlineQueryPeerType;
inlineQueryPeerTypeMegagroup#5ec4be43 = InlineQueryPeerType;
inlineQueryPeerTypeBroadcast#6334ee9a = InlineQueryPeerType;
---functions---
invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;

View File

@ -147,7 +147,7 @@ void GroupCall::start() {
LOG(("Call Error: Could not create, error: %1"
).arg(error.type()));
hangup();
if (error.type() == u"GROUP_CALL_ANONYMOUS_FORBIDDEN"_q) {
if (error.type() == u"GROUPCALL_ANONYMOUS_FORBIDDEN"_q) {
Ui::ShowMultilineToast({
.text = tr::lng_group_call_no_anonymous(tr::now),
});
@ -236,7 +236,7 @@ void GroupCall::rejoin() {
hangup();
Ui::ShowMultilineToast({
.text = (type == u"GROUP_CALL_ANONYMOUS_FORBIDDEN"_q
.text = (type == u"GROUPCALL_ANONYMOUS_FORBIDDEN"_q
? tr::lng_group_call_no_anonymous(tr::now)
: type == u"GROUPCALL_PARTICIPANTS_TOO_MUCH"_q
? tr::lng_group_call_too_many(tr::now)
@ -662,7 +662,7 @@ void GroupCall::sendMutedUpdate() {
_channel->session().api().applyUpdates(result);
}).fail([=](const RPCError &error) {
_updateMuteRequestId = 0;
if (error.type() == u"GROUP_CALL_FORBIDDEN"_q) {
if (error.type() == u"GROUPCALL_FORBIDDEN"_q) {
LOG(("Call Info: Rejoin after error '%1' in editGroupCallMember."
).arg(error.type()));
rejoin();
@ -694,7 +694,7 @@ void GroupCall::toggleMute(not_null<UserData*> user, bool mute) {
)).done([=](const MTPUpdates &result) {
_channel->session().api().applyUpdates(result);
}).fail([=](const RPCError &error) {
if (error.type() == u"GROUP_CALL_FORBIDDEN"_q) {
if (error.type() == u"GROUPCALL_FORBIDDEN"_q) {
LOG(("Call Info: Rejoin after error '%1' in editGroupCallMember."
).arg(error.type()));
rejoin();

View File

@ -824,6 +824,71 @@ void GenerateItems(
}
};
auto createStartGroupCall = [&](const MTPDchannelAdminLogEventActionStartGroupCall &data) {
const auto text = tr::lng_admin_log_started_group_call(tr::now, lt_from, fromLinkText);
addSimpleServiceMessage(text);
};
auto createDiscardGroupCall = [&](const MTPDchannelAdminLogEventActionDiscardGroupCall &data) {
const auto text = tr::lng_admin_log_discarded_group_call(tr::now, lt_from, fromLinkText);
addSimpleServiceMessage(text);
};
auto createParticipantMute = [&](const MTPDchannelAdminLogEventActionParticipantMute &data) {
data.vparticipant().match([&](const MTPDgroupCallParticipant &data) {
const auto user = history->owner().user(data.vuser_id().v);
const auto userLink = user->createOpenLink();
const auto userLinkText = textcmdLink(1, user->name);
auto text = tr::lng_admin_log_muted_participant(
tr::now,
lt_from,
fromLinkText,
lt_user,
userLinkText);
auto message = HistoryService::PreparedText{ text };
message.links.push_back(fromLink);
message.links.push_back(userLink);
addPart(history->makeServiceMessage(
history->nextNonHistoryEntryId(),
MTPDmessage_ClientFlag::f_admin_log_entry,
date,
message,
MTPDmessage::Flags(0),
peerToUser(from->id)));
});
};
auto createParticipantUnmute = [&](const MTPDchannelAdminLogEventActionParticipantUnmute &data) {
data.vparticipant().match([&](const MTPDgroupCallParticipant &data) {
const auto user = history->owner().user(data.vuser_id().v);
const auto userLink = user->createOpenLink();
const auto userLinkText = textcmdLink(1, user->name);
auto text = tr::lng_admin_log_unmuted_participant(
tr::now,
lt_from,
fromLinkText,
lt_user,
userLinkText);
auto message = HistoryService::PreparedText{ text };
message.links.push_back(fromLink);
message.links.push_back(userLink);
addPart(history->makeServiceMessage(
history->nextNonHistoryEntryId(),
MTPDmessage_ClientFlag::f_admin_log_entry,
date,
message,
MTPDmessage::Flags(0),
peerToUser(from->id)));
});
};
auto createToggleGroupCallSetting = [&](const MTPDchannelAdminLogEventActionToggleGroupCallSetting &data) {
const auto text = mtpIsTrue(data.vjoin_muted())
? tr::lng_admin_log_disallowed_unmute_self(tr::now, lt_from, fromLinkText)
: tr::lng_admin_log_allowed_unmute_self(tr::now, lt_from, fromLinkText);
addSimpleServiceMessage(text);
};
action.match([&](const MTPDchannelAdminLogEventActionChangeTitle &data) {
createChangeTitle(data);
}, [&](const MTPDchannelAdminLogEventActionChangeAbout &data) {
@ -866,6 +931,16 @@ void GenerateItems(
createChangeLocation(data);
}, [&](const MTPDchannelAdminLogEventActionToggleSlowMode &data) {
createToggleSlowMode(data);
}, [&](const MTPDchannelAdminLogEventActionStartGroupCall &data) {
createStartGroupCall(data);
}, [&](const MTPDchannelAdminLogEventActionDiscardGroupCall &data) {
createDiscardGroupCall(data);
}, [&](const MTPDchannelAdminLogEventActionParticipantMute &data) {
createParticipantMute(data);
}, [&](const MTPDchannelAdminLogEventActionParticipantUnmute &data) {
createParticipantUnmute(data);
}, [&](const MTPDchannelAdminLogEventActionToggleGroupCallSetting &data) {
createToggleGroupCallSetting(data);
});
}