Strip leading @ and trailing , from /user and /usercard commands (#3143)

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
sando 2021-08-08 21:23:54 +10:00 committed by GitHub
parent 6151cd5b05
commit 7309fd8668
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 6 deletions

View file

@ -3,6 +3,7 @@
## Unversioned ## Unversioned
- Minor: Remove TwitchEmotes.com attribution and the open/copy options when right-clicking a Twitch Emote. (#2214, #3136) - Minor: Remove TwitchEmotes.com attribution and the open/copy options when right-clicking a Twitch Emote. (#2214, #3136)
- Minor: Strip leading @ and trailing , from username in /user and /usercard commands. (#3143)
- Minor: Display a system message when reloading subscription emotes to match BTTV/FFZ behavior (#3135) - Minor: Display a system message when reloading subscription emotes to match BTTV/FFZ behavior (#3135)
- Bugfix: Moderation mode and active filters are now preserved when opening a split as a popup. (#3113, #3130) - Bugfix: Moderation mode and active filters are now preserved when opening a split as a popup. (#3113, #3130)
- Bugfix: Fixed a bug that caused all badge highlights to use the same color. (#3132, #3134) - Bugfix: Fixed a bug that caused all badge highlights to use the same color. (#3132, #3134)

View file

@ -70,6 +70,32 @@ static const QStringList twitchDefaultCommands{
static const QStringList whisperCommands{"/w", ".w"}; static const QStringList whisperCommands{"/w", ".w"};
// stripUserName removes any @ prefix or , suffix to make it more suitable for command use
void stripUserName(QString &userName)
{
if (userName.startsWith('@'))
{
userName.remove(0, 1);
}
if (userName.endsWith(','))
{
userName.chop(1);
}
}
// stripChannelName removes any @ prefix or , suffix to make it more suitable for command use
void stripChannelName(QString &channelName)
{
if (channelName.startsWith('@') || channelName.startsWith('#'))
{
channelName.remove(0, 1);
}
if (channelName.endsWith(','))
{
channelName.chop(1);
}
}
void sendWhisperMessage(const QString &text) void sendWhisperMessage(const QString &text)
{ {
// (hemirt) pajlada: "we should not be sending whispers through jtv, but // (hemirt) pajlada: "we should not be sending whispers through jtv, but
@ -430,16 +456,17 @@ void CommandController::initialize(Settings &, Paths &paths)
makeSystemMessage("Usage /user [user] (channel)")); makeSystemMessage("Usage /user [user] (channel)"));
return ""; return "";
} }
QString userName = words[1];
stripUserName(userName);
QString channelName = channel->getName(); QString channelName = channel->getName();
if (words.size() > 2) if (words.size() > 2)
{ {
channelName = words[2]; channelName = words[2];
if (channelName[0] == '#') stripChannelName(channelName);
{
channelName.remove(0, 1);
} }
} openTwitchUsercard(channelName, userName);
openTwitchUsercard(channelName, words[1]);
return ""; return "";
}); });
@ -451,10 +478,12 @@ void CommandController::initialize(Settings &, Paths &paths)
return ""; return "";
} }
QString userName = words[1];
stripUserName(userName);
auto *userPopup = new UserInfoPopup( auto *userPopup = new UserInfoPopup(
getSettings()->autoCloseUserPopup, getSettings()->autoCloseUserPopup,
static_cast<QWidget *>(&(getApp()->windows->getMainWindow()))); static_cast<QWidget *>(&(getApp()->windows->getMainWindow())));
userPopup->setData(words[1], channel); userPopup->setData(userName, channel);
userPopup->move(QCursor::pos()); userPopup->move(QCursor::pos());
userPopup->show(); userPopup->show();
return ""; return "";