2022-05-07 17:22:39 +02:00
|
|
|
#pragma once
|
|
|
|
|
2023-12-01 15:03:04 +01:00
|
|
|
#include <magic_enum/magic_enum.hpp>
|
2022-05-07 17:22:39 +02:00
|
|
|
#include <QColor>
|
|
|
|
#include <QJsonObject>
|
|
|
|
#include <QString>
|
|
|
|
|
|
|
|
namespace chatterino {
|
|
|
|
|
|
|
|
struct PubSubWhisperMessage {
|
|
|
|
enum class Type {
|
|
|
|
WhisperReceived,
|
|
|
|
WhisperSent,
|
|
|
|
Thread,
|
|
|
|
|
|
|
|
INVALID,
|
|
|
|
};
|
|
|
|
|
|
|
|
QString typeString;
|
|
|
|
Type type = Type::INVALID;
|
|
|
|
|
|
|
|
QString messageID;
|
|
|
|
int id;
|
|
|
|
QString threadID;
|
|
|
|
QString body;
|
|
|
|
QString fromUserID;
|
|
|
|
QString fromUserLogin;
|
|
|
|
QString fromUserDisplayName;
|
|
|
|
QColor fromUserColor;
|
|
|
|
|
2023-08-27 14:07:46 +02:00
|
|
|
PubSubWhisperMessage() = default;
|
|
|
|
explicit PubSubWhisperMessage(const QJsonObject &root);
|
2022-05-07 17:22:39 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace chatterino
|
|
|
|
|
|
|
|
template <>
|
|
|
|
constexpr magic_enum::customize::customize_t
|
|
|
|
magic_enum::customize::enum_name<chatterino::PubSubWhisperMessage::Type>(
|
|
|
|
chatterino::PubSubWhisperMessage::Type value) noexcept
|
|
|
|
{
|
|
|
|
switch (value)
|
|
|
|
{
|
|
|
|
case chatterino::PubSubWhisperMessage::Type::WhisperReceived:
|
|
|
|
return "whisper_received";
|
|
|
|
|
|
|
|
case chatterino::PubSubWhisperMessage::Type::WhisperSent:
|
|
|
|
return "whisper_sent";
|
|
|
|
|
|
|
|
case chatterino::PubSubWhisperMessage::Type::Thread:
|
|
|
|
return "thread";
|
|
|
|
default:
|
|
|
|
return default_tag;
|
|
|
|
}
|
|
|
|
}
|