feat: delete messages from context menu (#5956)

This commit is contained in:
nerix
2025-02-15 19:29:25 +01:00
committed by GitHub
parent 9afd60534a
commit dd6f204adc
8 changed files with 89 additions and 55 deletions
@@ -32,58 +32,7 @@ QString deleteMessages(TwitchChannel *twitchChannel, const QString &messageID)
return "";
}
getHelix()->deleteChatMessages(
twitchChannel->roomId(), user->getUserId(), messageID,
[]() {
// Success handling, we do nothing: IRC/pubsub-edge will dispatch the correct
// events to update state for us.
},
[twitchChannel, messageID](auto error, auto message) {
QString errorMessage = QString("Failed to delete chat messages - ");
switch (error)
{
case HelixDeleteChatMessagesError::UserMissingScope: {
errorMessage +=
"Missing required scope. Re-login with your "
"account and try again.";
}
break;
case HelixDeleteChatMessagesError::UserNotAuthorized: {
errorMessage +=
"you don't have permission to perform that action.";
}
break;
case HelixDeleteChatMessagesError::MessageUnavailable: {
// Override default message prefix to match with IRC message format
errorMessage =
QString("The message %1 does not exist, was deleted, "
"or is too old to be deleted.")
.arg(messageID);
}
break;
case HelixDeleteChatMessagesError::UserNotAuthenticated: {
errorMessage += "you need to re-authenticate.";
}
break;
case HelixDeleteChatMessagesError::Forwarded: {
errorMessage += message;
}
break;
case HelixDeleteChatMessagesError::Unknown:
default: {
errorMessage += "An unknown error has occurred.";
}
break;
}
twitchChannel->addSystemMessage(errorMessage);
});
twitchChannel->deleteMessagesAs(messageID, user.get());
return "";
}