diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 5b7980406..8f63c3c66 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -2948,6 +2948,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "ktg_settings_external_video_player" = "External video player"; "ktg_settings_external_video_player_about" = "When this option is enabled, autoplay is force-disabled and system video player is used to play videos."; +"ktg_settings_hide_via" = "Send inline results without 'via @bot'"; + "ktg_user_status_unaccessible" = "account inaccessible"; "ktg_settings_show_json_settings" = "Show settings file"; @@ -3118,4 +3120,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "ktg_mute_for_selected_time" = "For selected time"; +"ktg_send_hide_via_message" = "Send without 'via @bot'"; + // Keys finished diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index f3d41cab1..b3ba73c5f 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -83,6 +83,7 @@ "ktg_settings_ffmpeg_multithread_about": "When enabled, CPU and RAM consumption is higher, video decodes faster. When disabled, CPU and RAM consumption is lower, video decodes slower. The more CPU cores you have, the more RAM consumption you have when this option is enabled. You can set exact number of threads in the JSON configuration file.", "ktg_settings_external_video_player": "External video player", "ktg_settings_external_video_player_about": "When this option is enabled, autoplay is force-disabled and system video player is used to play videos.", + "ktg_settings_hide_via": "Send inline results without 'via @bot'", "ktg_settings_adaptive_bubbles": "Adaptive bubbles", "ktg_settings_disable_sound_from_tray": "Disable sound", "ktg_settings_enable_sound_from_tray": "Enable sound", @@ -223,5 +224,6 @@ "ktg_filters_hide_edit_toast": "Edit button is hidden.\nYou can enable it back in Kotatogram Settings.", "ktg_settings_telegram_sites_autologin": "Auto-login on Telegram sites", "ktg_mute_for_selected_time": "For selected time", + "ktg_send_hide_via_message": "Send without 'via @bot'", "dummy_last_string": "" } diff --git a/Telegram/Resources/langs/rewrites/ru.json b/Telegram/Resources/langs/rewrites/ru.json index f5ba64fea..cf484a6e3 100644 --- a/Telegram/Resources/langs/rewrites/ru.json +++ b/Telegram/Resources/langs/rewrites/ru.json @@ -83,6 +83,7 @@ "ktg_settings_ffmpeg_multithread_about": "Когда включено, расход ЦП и ОЗУ выше, видео декодируется быстрее. Когда выключено, расход ЦП и ОЗУ меньше, видео декодируется медленнее. Чем больше у вас ядер ЦП, тем больше расход ОЗУ, когда эта опция включена. Можно закрепить используемое число потоков в конфигурационном файле JSON.", "ktg_settings_external_video_player": "Внешний видеоплеер", "ktg_settings_external_video_player_about": "Когда эта опция включена, автовоспроизведение принудительно отключено и системный видеоплеер используется для проигрывания видео.", + "ktg_settings_hide_via": "Отправлять результаты ботов без 'через @bot'", "ktg_settings_adaptive_bubbles": "Адаптивная ширина сообщений", "ktg_settings_disable_sound_from_tray": "Отключить звук", "ktg_settings_enable_sound_from_tray": "Включить звук", @@ -223,5 +224,6 @@ "ktg_filters_hide_edit_toast": "Кнопка изменения скрыта.\nВы можете включить её обратно в настройках Kotatogram.", "ktg_settings_telegram_sites_autologin": "Авто-вход на сайты Telegram", "ktg_mute_for_selected_time": "На указанное время", + "ktg_send_hide_via_message": "Отправить без \"через @bot\"", "dummy_last_string": "" } diff --git a/Telegram/SourceFiles/api/api_common.h b/Telegram/SourceFiles/api/api_common.h index 63ee24691..2d69e4844 100644 --- a/Telegram/SourceFiles/api/api_common.h +++ b/Telegram/SourceFiles/api/api_common.h @@ -16,6 +16,7 @@ struct SendOptions { bool silent = false; bool handleSupportSwitch = false; bool removeWebPageId = false; + bool hideVia = false; }; enum class SendType { diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 6f8a6b1aa..e80affd1f 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -4862,7 +4862,11 @@ void ApiWrap::sendInlineResult( sendFlags |= MTPmessages_SendInlineBotResult::Flag::f_silent; } if (bot) { - flags |= MTPDmessage::Flag::f_via_bot_id; + if (action.options.hideVia) { + sendFlags |= MTPmessages_SendInlineBotResult::Flag::f_hide_via; + } else { + flags |= MTPDmessage::Flag::f_via_bot_id; + } } if (action.options.scheduled) { flags |= MTPDmessage::Flag::f_from_scheduled; @@ -4885,7 +4889,7 @@ void ApiWrap::sendInlineResult( newId.msg, messageFromId, MTP_int(HistoryItem::NewMessageDate(action.options.scheduled)), - bot ? peerToUser(bot->id) : 0, + bot && !action.options.hideVia ? peerToUser(bot->id) : 0, action.replyTo, messagePostAuthor); diff --git a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp index 35fe93f55..c56bc1b08 100644 --- a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp @@ -449,6 +449,7 @@ void GifsListWidget::selectInlineResult( forceSend |= (QGuiApplication::keyboardModifiers() == Qt::ControlModifier); + options.hideVia = true; auto item = _rows[row].items[column]; if (const auto photo = item->getPhoto()) { using Data::PhotoSize; diff --git a/Telegram/SourceFiles/inline_bots/inline_results_inner.cpp b/Telegram/SourceFiles/inline_bots/inline_results_inner.cpp index 2b76bd072..0c0b4bdd3 100644 --- a/Telegram/SourceFiles/inline_bots/inline_results_inner.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_results_inner.cpp @@ -308,6 +308,9 @@ void Inner::contextMenuEvent(QContextMenuEvent *e) { _menu = base::make_unique_q(this); const auto send = [=](Api::SendOptions options) { + if (cHideVia()) { + options.hideVia = true; + } selectInlineResult(row, column, options, false); }; SendMenu::FillSendMenu( @@ -316,6 +319,10 @@ void Inner::contextMenuEvent(QContextMenuEvent *e) { SendMenu::DefaultSilentCallback(send), SendMenu::DefaultScheduleCallback(this, type, send)); + _menu->addAction(tr::ktg_send_hide_via_message(tr::now), [=] { + send({ .hideVia = true }); + }); + auto item = _rows[row].items[column]; if (const auto previewDocument = item->getPreviewDocument()) { auto callback = [&](const QString &text, Fn &&done) { diff --git a/Telegram/SourceFiles/kotato/json_settings.cpp b/Telegram/SourceFiles/kotato/json_settings.cpp index 53c480de7..ff036ff24 100644 --- a/Telegram/SourceFiles/kotato/json_settings.cpp +++ b/Telegram/SourceFiles/kotato/json_settings.cpp @@ -390,6 +390,7 @@ QByteArray GenerateSettingsJson(bool areDefault = false) { settings.insert(qsl("forward_retain_selection"), cForwardRetainSelection()); settings.insert(qsl("forward_on_click"), cForwardChatOnClick()); settings.insert(qsl("telegram_sites_autologin"), cTelegramSitesAutologin()); + settings.insert(qsl("hide_via"), cHideVia()); settingsFonts.insert(qsl("size"), cFontSize()); settingsFonts.insert(qsl("use_system_font"), cUseSystemFont()); @@ -971,6 +972,11 @@ bool Manager::readCustomFile() { ReadBoolOption(settings, "telegram_sites_autologin", [&](auto v) { cSetTelegramSitesAutologin(v); }); + + ReadBoolOption(settings, "hide_via", [&](auto v) { + cSetHideVia(v); + }); + return true; } diff --git a/Telegram/SourceFiles/kotato/settings.cpp b/Telegram/SourceFiles/kotato/settings.cpp index 76c72b0cc..0080ade95 100644 --- a/Telegram/SourceFiles/kotato/settings.cpp +++ b/Telegram/SourceFiles/kotato/settings.cpp @@ -267,3 +267,5 @@ bool gAutoScrollUnfocused = false; LocalFolderVector gLocalFolders; bool gTelegramSitesAutologin = true; + +bool gHideVia = false; diff --git a/Telegram/SourceFiles/kotato/settings.h b/Telegram/SourceFiles/kotato/settings.h index 85448f02f..74acfe19f 100644 --- a/Telegram/SourceFiles/kotato/settings.h +++ b/Telegram/SourceFiles/kotato/settings.h @@ -179,3 +179,5 @@ using LocalFolderVector = std::vector; DeclareRefSetting(LocalFolderVector, LocalFolders); DeclareSetting(bool, TelegramSitesAutologin); + +DeclareSetting(bool, HideVia); diff --git a/Telegram/SourceFiles/kotato/settings_menu.cpp b/Telegram/SourceFiles/kotato/settings_menu.cpp index fc075c65e..dc0547af6 100644 --- a/Telegram/SourceFiles/kotato/settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/settings_menu.cpp @@ -682,6 +682,11 @@ void SetupKotatoOther(not_null container) { AddSkip(container); AddDividerText(container, tr::ktg_settings_external_video_player_about()); + AddSkip(container); + + SettingsMenuCSwitch(ktg_settings_hide_via, HideVia); + + AddSkip(container); } Kotato::Kotato(