Add support for input.text in commands run with hotkeys (#5130)

This commit is contained in:
Mm2PL 2024-01-26 22:25:11 +00:00 committed by GitHub
parent 5cd4c51f07
commit 7d7f1b3bea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 4 deletions

View file

@ -26,6 +26,7 @@
- Minor: Normalized the input padding between light & dark themes. (#5095)
- Minor: Add `--activate <channel>` (or `-a`) command line option to activate or add a Twitch channel. (#5111)
- Minor: Chatters from recent-messages are now added to autocompletion. (#5116)
- Minor: Added support for the `{input.text}` placeholder in the **Split** -> **Run a command** hotkey. (#5130)
- Bugfix: Fixed an issue where certain emojis did not send to Twitch chat correctly. (#4840)
- Bugfix: Fixed capitalized channel names in log inclusion list not being logged. (#4848)
- Bugfix: Trimmed custom streamlink paths on all platforms making sure you don't accidentally add spaces at the beginning or end of its path. (#4834)

View file

@ -6,6 +6,7 @@
#include "common/network/NetworkResult.hpp"
#include "common/QLogging.hpp"
#include "controllers/accounts/AccountController.hpp"
#include "controllers/commands/Command.hpp"
#include "controllers/commands/CommandController.hpp"
#include "controllers/hotkeys/HotkeyController.hpp"
#include "controllers/notifications/NotificationController.hpp"
@ -684,15 +685,25 @@ void Split::addShortcuts()
}},
{"runCommand",
[this](std::vector<QString> arguments) -> QString {
if (arguments.size() == 0)
if (arguments.empty())
{
qCWarning(chatterinoHotkeys)
<< "runCommand hotkey called without arguments!";
return "runCommand hotkey called without arguments!";
}
QString command = getIApp()->getCommands()->execCommand(
arguments.at(0).replace('\n', ' '), this->getChannel(), false);
this->getChannel()->sendMessage(command);
QString requestedText = arguments.at(0).replace('\n', ' ');
QString inputText = this->getInput().getInputText();
QString message = getIApp()->getCommands()->execCustomCommand(
requestedText.split(' '), Command{"(hotkey)", requestedText},
true, this->getChannel(), nullptr,
{
{"input.text", inputText},
});
message = getIApp()->getCommands()->execCommand(
message, this->getChannel(), false);
this->getChannel()->sendMessage(message);
return "";
}},
{"setChannelNotification",