feat(eventsub): use special flag and timestamps from metadata (#5996)

This commit is contained in:
nerix
2025-02-26 15:40:42 +01:00
committed by GitHub
parent b957af4f50
commit 63b5b2ca6a
33 changed files with 159 additions and 107 deletions
@@ -60,7 +60,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -69,7 +69,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -157,13 +157,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz banned uint128: my reason ",
"searchText": "nerixyz banned uint128: my reason ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "uint128",
"userID": "",
"usernameColor": "#ff000000"
@@ -60,7 +60,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -69,7 +69,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -141,13 +141,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz banned uint128. ",
"searchText": "nerixyz banned uint128. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "uint128",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -111,7 +111,7 @@
"loginName": "",
"messageText": "nerixyz cleared the chat. ",
"searchText": "nerixyz cleared the chat. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "nerixyz",
"userID": "",
"usernameColor": "#ff000000"
@@ -61,7 +61,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -70,7 +70,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -159,13 +159,13 @@
]
}
],
"flags": "System|Timeout|DoNotTriggerNotification",
"flags": "System|Timeout|DoNotTriggerNotification|EventSub",
"id": "",
"localizedName": "",
"loginName": "testaccount_420",
"messageText": "testaccount_420 deleted message from testaccount_420 saying: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…",
"searchText": "testaccount_420 deleted message from testaccount_420 saying: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "testaccount_420",
"userID": "",
"usernameColor": "#ff000000"
@@ -61,7 +61,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -70,7 +70,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -159,13 +159,13 @@
]
}
],
"flags": "System|Timeout|DoNotTriggerNotification",
"flags": "System|Timeout|DoNotTriggerNotification|EventSub",
"id": "",
"localizedName": "",
"loginName": "testaccount_420",
"messageText": "testaccount_420 deleted message from testaccount_420 saying: asd",
"searchText": "testaccount_420 deleted message from testaccount_420 saying: asd",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "testaccount_420",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -148,13 +148,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned off emote-only mode. ",
"searchText": "nerixyz turned off emote-only mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -148,13 +148,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned on emote-only mode. ",
"searchText": "nerixyz turned on emote-only mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -57,7 +57,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -66,7 +66,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -150,13 +150,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned on followers-only mode. ",
"searchText": "nerixyz turned on followers-only mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -148,13 +148,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned off followers-only mode. ",
"searchText": "nerixyz turned off followers-only mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -57,7 +57,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -66,7 +66,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -166,13 +166,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned on followers-only mode. (15 minutes) ",
"searchText": "nerixyz turned on followers-only mode. (15 minutes) ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -60,7 +60,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -69,7 +69,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -191,13 +191,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz banned twitchdev in testaccount_420: a reason 😂 ",
"searchText": "nerixyz banned twitchdev in testaccount_420: a reason 😂 ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "twitchdev",
"userID": "",
"usernameColor": "#ff000000"
@@ -60,7 +60,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -69,7 +69,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -174,13 +174,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz banned twitchdev in testaccount_420. ",
"searchText": "nerixyz banned twitchdev in testaccount_420. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "twitchdev",
"userID": "",
"usernameColor": "#ff000000"
@@ -61,7 +61,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -70,7 +70,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -192,13 +192,13 @@
]
}
],
"flags": "System|Timeout|DoNotTriggerNotification",
"flags": "System|Timeout|DoNotTriggerNotification|EventSub",
"id": "",
"localizedName": "",
"loginName": "testaccount_420",
"messageText": "testaccount_420 deleted message from testaccount_420 in bajlada saying: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…",
"searchText": "testaccount_420 deleted message from testaccount_420 in bajlada saying: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "testaccount_420",
"userID": "",
"usernameColor": "#ff000000"
@@ -61,7 +61,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -70,7 +70,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -192,13 +192,13 @@
]
}
],
"flags": "System|Timeout|DoNotTriggerNotification",
"flags": "System|Timeout|DoNotTriggerNotification|EventSub",
"id": "",
"localizedName": "",
"loginName": "testaccount_420",
"messageText": "testaccount_420 deleted message from testaccount_420 in bajlada saying: dfg",
"searchText": "testaccount_420 deleted message from testaccount_420 in bajlada saying: dfg",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "testaccount_420",
"userID": "",
"usernameColor": "#ff000000"
@@ -59,7 +59,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -68,7 +68,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -173,13 +173,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz unbanned uint128 in testaccount_420. ",
"searchText": "nerixyz unbanned uint128 in testaccount_420. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "uint128",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -148,13 +148,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned off slow mode. ",
"searchText": "nerixyz turned off slow mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -57,7 +57,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -66,7 +66,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -166,13 +166,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned on slow mode. (10 seconds) ",
"searchText": "nerixyz turned on slow mode. (10 seconds) ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -148,13 +148,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned off subscribers-only mode. ",
"searchText": "nerixyz turned off subscribers-only mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -148,13 +148,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned on subscribers-only mode. ",
"searchText": "nerixyz turned on subscribers-only mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -59,7 +59,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -68,7 +68,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -140,13 +140,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz unbanned uint128. ",
"searchText": "nerixyz unbanned uint128. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "uint128",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -148,13 +148,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned off unique-chat mode. ",
"searchText": "nerixyz turned off unique-chat mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -55,7 +55,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -64,7 +64,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -148,13 +148,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "nerixyz",
"messageText": "nerixyz turned on unique-chat mode. ",
"searchText": "nerixyz turned on unique-chat mode. ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -60,7 +60,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -69,7 +69,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -159,13 +159,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "quotrok",
"messageText": "quotrok has warned twitchdev: cut it out ",
"searchText": "quotrok has warned twitchdev: cut it out ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
@@ -60,7 +60,7 @@
"trailingSpace": true,
"type": "TextElement",
"words": [
"0:00"
"12:31"
]
},
"flags": "Timestamp",
@@ -69,7 +69,7 @@
"type": "None",
"value": ""
},
"time": "00:00:00",
"time": "12:31:47",
"tooltip": "",
"trailingSpace": true,
"type": "TimestampElement"
@@ -159,13 +159,13 @@
]
}
],
"flags": "System|Timeout",
"flags": "System|Timeout|EventSub",
"id": "",
"localizedName": "",
"loginName": "quotrok",
"messageText": "quotrok has warned twitchdev: cut it out ",
"searchText": "quotrok has warned twitchdev: cut it out ",
"serverReceivedTime": "1970-01-01T00:00:00Z",
"serverReceivedTime": "2024-05-14T12:31:47Z",
"timeoutUser": "",
"userID": "",
"usernameColor": "#ff000000"
+22
View File
@@ -1,7 +1,11 @@
#include "util/Helpers.hpp"
#include "mocks/BaseApplication.hpp"
#include "Test.hpp"
#include <QDateTime>
#include <QTimeZone>
#include <span>
using namespace chatterino;
@@ -556,3 +560,21 @@ TEST(Helpers, unescapeZeroWidthJoiner)
EXPECT_EQ(actual, c.output);
}
}
TEST(Helpers, chronoToQDateTime)
{
mock::BaseApplication app;
auto epoch = chronoToQDateTime({});
ASSERT_EQ(epoch.timeZone(), QTimeZone::utc());
ASSERT_EQ(epoch.toMSecsSinceEpoch(), 0);
std::chrono::milliseconds somePointSinceEpoch{1740574189131};
auto qPointSinceEpoch = chronoToQDateTime(
std::chrono::system_clock::time_point{somePointSinceEpoch});
ASSERT_EQ(qPointSinceEpoch.timeZone(), QTimeZone::utc());
ASSERT_EQ(qPointSinceEpoch.toMSecsSinceEpoch(),
somePointSinceEpoch.count());
ASSERT_EQ(qPointSinceEpoch.toString(Qt::ISODateWithMs),
"2025-02-26T12:49:49.131Z");
}