diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 0b6976833..04a47b633 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -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}"; diff --git a/Telegram/Resources/tl/api.tl b/Telegram/Resources/tl/api.tl index 35edc5b54..ddd731705 100644 --- a/Telegram/Resources/tl/api.tl +++ b/Telegram/Resources/tl/api.tl @@ -315,7 +315,7 @@ updateNewStickerSet#688a30aa stickerset:messages.StickerSet = Update; updateStickerSetsOrder#bb2d201 flags:# masks:flags.0?true order:Vector = 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 next_offset:string users:Vector 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; diff --git a/Telegram/SourceFiles/calls/calls_group_call.cpp b/Telegram/SourceFiles/calls/calls_group_call.cpp index cef96ef3b..40e57ffaf 100644 --- a/Telegram/SourceFiles/calls/calls_group_call.cpp +++ b/Telegram/SourceFiles/calls/calls_group_call.cpp @@ -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 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(); diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_item.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_item.cpp index 27df26a23..7ac1783af 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_item.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_item.cpp @@ -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); }); }