feat: add twitch channel points miner runtime

This commit is contained in:
2026-04-29 22:33:55 +02:00
parent 1147f4d25b
commit b631d201b0
12 changed files with 1640 additions and 19 deletions
+39
View File
@@ -0,0 +1,39 @@
package miner
import "testing"
func TestParseFramePointsEarned(t *testing.T) {
t.Parallel()
frame, err := parseFrame([]byte(`{"type":"MESSAGE","data":{"topic":"community-points-user-v1.viewer","message":"{\"type\":\"points-earned\",\"data\":{\"timestamp\":\"2026-04-29T12:00:00Z\",\"balance\":{\"balance\":42,\"channel_id\":\"123\"}}}"}}`))
if err != nil {
t.Fatal(err)
}
if frame.Event.Topic != "community-points-user-v1" || frame.Event.MessageType != "points-earned" || frame.Event.ChannelID != "123" || frame.Event.Balance != 42 {
t.Fatalf("event = %#v", frame.Event)
}
}
func TestParseFrameClaimAvailable(t *testing.T) {
t.Parallel()
frame, err := parseFrame([]byte(`{"type":"MESSAGE","data":{"topic":"community-points-user-v1.viewer","message":"{\"type\":\"claim-available\",\"data\":{\"timestamp\":\"2026-04-29T12:00:00Z\",\"claim\":{\"id\":\"claim-1\",\"channel_id\":\"123\"}}}"}}`))
if err != nil {
t.Fatal(err)
}
if frame.Event.ClaimID != "claim-1" || frame.Event.ChannelID != "123" {
t.Fatalf("event = %#v", frame.Event)
}
}
func TestParseFrameVideoPlaybackFallsBackToTopicSuffix(t *testing.T) {
t.Parallel()
frame, err := parseFrame([]byte(`{"type":"MESSAGE","data":{"topic":"video-playback-by-id.321","message":"{\"type\":\"stream-down\",\"data\":{\"timestamp\":\"2026-04-29T12:00:00Z\"}}"}}`))
if err != nil {
t.Fatal(err)
}
if frame.Event.Topic != "video-playback-by-id" || frame.Event.ChannelID != "321" || frame.Event.MessageType != "stream-down" {
t.Fatalf("event = %#v", frame.Event)
}
}