mirror of
https://git.sr.ht/~ashkeel/strimertul
synced 2024-09-20 02:00:49 +00:00
change: better log messages, tuned reconnection logic on eventsub, updated to kv v10
This commit is contained in:
parent
c2eca501ac
commit
ba3b9c673a
11 changed files with 51 additions and 61 deletions
|
@ -5,7 +5,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
jsoniter "github.com/json-iterator/go"
|
jsoniter "github.com/json-iterator/go"
|
||||||
kv "github.com/strimertul/kilovolt/v9"
|
kv "github.com/strimertul/kilovolt/v10"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
kv "github.com/strimertul/kilovolt/v9"
|
kv "github.com/strimertul/kilovolt/v10"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
"github.com/strimertul/strimertul/utils"
|
"github.com/strimertul/strimertul/utils"
|
||||||
|
|
||||||
"github.com/cockroachdb/pebble"
|
"github.com/cockroachdb/pebble"
|
||||||
kv "github.com/strimertul/kilovolt/v9"
|
kv "github.com/strimertul/kilovolt/v10"
|
||||||
pebble_driver "github.com/strimertul/kv-pebble"
|
pebble_driver "github.com/strimertul/kv-pebble"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
6
go.mod
6
go.mod
|
@ -6,15 +6,15 @@ require (
|
||||||
git.sr.ht/~hamcha/containers v0.3.2
|
git.sr.ht/~hamcha/containers v0.3.2
|
||||||
github.com/Masterminds/sprig/v3 v3.2.3
|
github.com/Masterminds/sprig/v3 v3.2.3
|
||||||
github.com/apenwarr/fixconsole v0.0.0-20191012055117-5a9f6489cc29
|
github.com/apenwarr/fixconsole v0.0.0-20191012055117-5a9f6489cc29
|
||||||
github.com/cockroachdb/pebble v0.0.0-20230209222158-0568b5fd3d14
|
github.com/cockroachdb/pebble v0.0.0-20230418161327-101876aa7088
|
||||||
github.com/gempir/go-twitch-irc/v4 v4.0.0
|
github.com/gempir/go-twitch-irc/v4 v4.0.0
|
||||||
github.com/gorilla/websocket v1.5.0
|
github.com/gorilla/websocket v1.5.0
|
||||||
github.com/hashicorp/golang-lru/v2 v2.0.2
|
github.com/hashicorp/golang-lru/v2 v2.0.2
|
||||||
github.com/json-iterator/go v1.1.12
|
github.com/json-iterator/go v1.1.12
|
||||||
github.com/nicklaw5/helix/v2 v2.22.0
|
github.com/nicklaw5/helix/v2 v2.22.0
|
||||||
github.com/postfinance/single v0.0.2
|
github.com/postfinance/single v0.0.2
|
||||||
github.com/strimertul/kilovolt/v9 v9.1.0
|
github.com/strimertul/kilovolt/v10 v10.0.0
|
||||||
github.com/strimertul/kv-pebble v1.2.1
|
github.com/strimertul/kv-pebble v1.2.2
|
||||||
github.com/urfave/cli/v2 v2.25.1
|
github.com/urfave/cli/v2 v2.25.1
|
||||||
github.com/wailsapp/wails/v2 v2.4.1
|
github.com/wailsapp/wails/v2 v2.4.1
|
||||||
go.uber.org/zap v1.24.0
|
go.uber.org/zap v1.24.0
|
||||||
|
|
24
go.sum
24
go.sum
|
@ -25,7 +25,6 @@ github.com/ashkeel/helix/v2 v2.20.0-ws h1:IvwMHs4PBCoVgu0IVlTZGyQG8h40zBY/FYmRXG
|
||||||
github.com/ashkeel/helix/v2 v2.20.0-ws/go.mod h1:zZcKsyyBWDli34x3QleYsVMiiNGMXPAEU5NjsiZDtvY=
|
github.com/ashkeel/helix/v2 v2.20.0-ws/go.mod h1:zZcKsyyBWDli34x3QleYsVMiiNGMXPAEU5NjsiZDtvY=
|
||||||
github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g=
|
github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY=
|
github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY=
|
||||||
|
@ -42,8 +41,8 @@ github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZO
|
||||||
github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
|
github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
|
||||||
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=
|
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=
|
||||||
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
|
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
|
||||||
github.com/cockroachdb/pebble v0.0.0-20230209222158-0568b5fd3d14 h1:4spJmU4jzTXRbaQV9yrGHBDL/nTgaebjbW4Qidtkz0w=
|
github.com/cockroachdb/pebble v0.0.0-20230418161327-101876aa7088 h1:/e1HsWCYnzjiU4G3BliGLb2f9vB5Ar2yvLJ0rqACwgs=
|
||||||
github.com/cockroachdb/pebble v0.0.0-20230209222158-0568b5fd3d14/go.mod h1:Nb5lgvnQ2+oGlE/EyZy4+2/CxRh9KfvCXnag1vtpxVM=
|
github.com/cockroachdb/pebble v0.0.0-20230418161327-101876aa7088/go.mod h1:9lRMC4XN3/BLPtIp6kAKwIaHu369NOf2rMucPzipz50=
|
||||||
github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ=
|
github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ=
|
||||||
github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
|
github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
|
||||||
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=
|
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=
|
||||||
|
@ -291,19 +290,17 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
|
||||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||||
github.com/strimertul/kilovolt/v9 v9.1.0 h1:g4oHaNodr2KxygbHTIr1vN4AyNRfBM02dvw5FYtF+6s=
|
github.com/strimertul/kilovolt/v10 v10.0.0 h1:VGUFZ1/s4IDAYp9kqZQosoelRqXA/cN2JP41BgLc4yQ=
|
||||||
github.com/strimertul/kilovolt/v9 v9.1.0/go.mod h1:i9cizfUV9B+XYkmLSPr2dhNe8kt4R0xjG2kCZb7XoZg=
|
github.com/strimertul/kilovolt/v10 v10.0.0/go.mod h1:lB+aF6VpoMfxkK+DFVzIB9yOW0nNaZOtFt395Cf+Hyk=
|
||||||
github.com/strimertul/kv-pebble v1.2.1 h1:Xqn73U6nAqrBnQxr9TrM7x1WfP26ko9Cd51340B2/o8=
|
github.com/strimertul/kv-pebble v1.2.2 h1:/vV8a1gObO4os3gB3NT9GWAmWbi+VsSS7wvb6G+HOzM=
|
||||||
github.com/strimertul/kv-pebble v1.2.1/go.mod h1:lfyBKJ4uVs/KsTuLPR1TTYRe3mZzP9auLDbZD9zym+0=
|
github.com/strimertul/kv-pebble v1.2.2/go.mod h1:I6VvL0/UXW007BEEf1liHYKZcKqQypRt+9pxJkbmvZQ=
|
||||||
github.com/tkrajina/go-reflector v0.5.6 h1:hKQ0gyocG7vgMD2M3dRlYN6WBBOmdoOzJ6njQSepKdE=
|
github.com/tkrajina/go-reflector v0.5.6 h1:hKQ0gyocG7vgMD2M3dRlYN6WBBOmdoOzJ6njQSepKdE=
|
||||||
github.com/tkrajina/go-reflector v0.5.6/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4=
|
github.com/tkrajina/go-reflector v0.5.6/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4=
|
||||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
||||||
|
@ -339,17 +336,11 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
|
||||||
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||||
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
|
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
|
||||||
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
|
|
||||||
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
|
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
|
||||||
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
|
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
|
||||||
go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY=
|
|
||||||
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
|
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
|
||||||
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
|
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
|
||||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
|
@ -369,7 +360,6 @@ golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZ
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
@ -467,7 +457,6 @@ golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapK
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
@ -519,6 +508,5 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
|
|
||||||
"git.sr.ht/~hamcha/containers/sync"
|
"git.sr.ht/~hamcha/containers/sync"
|
||||||
jsoniter "github.com/json-iterator/go"
|
jsoniter "github.com/json-iterator/go"
|
||||||
kv "github.com/strimertul/kilovolt/v9"
|
kv "github.com/strimertul/kilovolt/v10"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
"github.com/strimertul/strimertul/database"
|
"github.com/strimertul/strimertul/database"
|
||||||
|
|
|
@ -18,7 +18,7 @@ import (
|
||||||
func (m *Manager) SetupTwitch() {
|
func (m *Manager) SetupTwitch() {
|
||||||
bot := m.twitchManager.Client().Bot
|
bot := m.twitchManager.Client().Bot
|
||||||
if bot == nil {
|
if bot == nil {
|
||||||
m.logger.Warn("bot is offline or not configured, could not setup commands")
|
m.logger.Warn("Twitch bot is offline or not configured, could not setup commands")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ func (m *Manager) SetupTwitch() {
|
||||||
for {
|
for {
|
||||||
userClient, err := client.GetUserClient(false)
|
userClient, err := client.GetUserClient(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.logger.Error("could not get user api client for list of chatters", zap.Error(err))
|
m.logger.Error("Could not get user api client for list of chatters", zap.Error(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
res, err := userClient.GetChannelChatChatters(&helix.GetChatChattersParams{
|
res, err := userClient.GetChannelChatChatters(&helix.GetChatChattersParams{
|
||||||
|
@ -96,7 +96,7 @@ func (m *Manager) SetupTwitch() {
|
||||||
After: cursor,
|
After: cursor,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.logger.Error("could not retrieve list of chatters", zap.Error(err))
|
m.logger.Error("Could not retrieve list of chatters", zap.Error(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, user := range res.Data.Chatters {
|
for _, user := range res.Data.Chatters {
|
||||||
|
@ -132,13 +132,13 @@ func (m *Manager) SetupTwitch() {
|
||||||
if len(users) > 0 {
|
if len(users) > 0 {
|
||||||
err := m.GivePoints(pointsToGive)
|
err := m.GivePoints(pointsToGive)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.logger.Error("error giving points to user", zap.Error(err))
|
m.logger.Error("Error awarding loyalty points to user", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
m.logger.Info("loyalty twitch setup completed")
|
m.logger.Info("Loyalty system integration with Twitch is ready")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Manager) StopTwitch() {
|
func (m *Manager) StopTwitch() {
|
||||||
|
|
3
main.go
3
main.go
|
@ -91,12 +91,11 @@ func main() {
|
||||||
level = zapcore.InfoLevel
|
level = zapcore.InfoLevel
|
||||||
}
|
}
|
||||||
initLogger(level)
|
initLogger(level)
|
||||||
logger.Info("app started", zap.String("version", appVersion))
|
|
||||||
|
|
||||||
// Create file for panics
|
// Create file for panics
|
||||||
panicLog, err = os.OpenFile(panicFilename, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0o666)
|
panicLog, err = os.OpenFile(panicFilename, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0o666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Warn("could not create panic log", zap.Error(err))
|
logger.Warn("Could not create panic log", zap.Error(err))
|
||||||
} else {
|
} else {
|
||||||
utils.RedirectStderr(panicLog)
|
utils.RedirectStderr(panicLog)
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ func newBot(api *Client, config BotConfig) *Bot {
|
||||||
|
|
||||||
// Ignore messages for a while or twitch will get mad!
|
// Ignore messages for a while or twitch will get mad!
|
||||||
if message.Time.Before(bot.lastMessage.Get().Add(time.Second * 2)) {
|
if message.Time.Before(bot.lastMessage.Get().Add(time.Second * 2)) {
|
||||||
bot.logger.Debug("message received too soon, ignoring")
|
bot.logger.Debug("Message received too soon, ignoring")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ func newBot(api *Client, config BotConfig) *Bot {
|
||||||
|
|
||||||
err := bot.api.db.PutJSON(ChatEventKey, message)
|
err := bot.api.db.PutJSON(ChatEventKey, message)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
bot.logger.Warn("could not save chat message to key", zap.String("key", ChatEventKey), zap.Error(err))
|
bot.logger.Warn("Could not save chat message to key", zap.String("key", ChatEventKey), zap.Error(err))
|
||||||
}
|
}
|
||||||
if bot.Config.ChatHistory > 0 {
|
if bot.Config.ChatHistory > 0 {
|
||||||
history := bot.chatHistory.Get()
|
history := bot.chatHistory.Get()
|
||||||
|
@ -150,7 +150,7 @@ func newBot(api *Client, config BotConfig) *Bot {
|
||||||
bot.chatHistory.Set(append(history, message))
|
bot.chatHistory.Set(append(history, message))
|
||||||
err = bot.api.db.PutJSON(ChatHistoryKey, bot.chatHistory.Get())
|
err = bot.api.db.PutJSON(ChatHistoryKey, bot.chatHistory.Get())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
bot.logger.Warn("could not save message to chat history", zap.Error(err))
|
bot.logger.Warn("Could not save message to chat history", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,17 +161,17 @@ func newBot(api *Client, config BotConfig) *Bot {
|
||||||
|
|
||||||
client.OnUserJoinMessage(func(message irc.UserJoinMessage) {
|
client.OnUserJoinMessage(func(message irc.UserJoinMessage) {
|
||||||
if strings.ToLower(message.User) == bot.username {
|
if strings.ToLower(message.User) == bot.username {
|
||||||
bot.logger.Info("joined channel", zap.String("channel", message.Channel))
|
bot.logger.Info("Twitch bot joined channel", zap.String("channel", message.Channel))
|
||||||
} else {
|
} else {
|
||||||
bot.logger.Debug("user joined channel", zap.String("channel", message.Channel), zap.String("username", message.User))
|
bot.logger.Debug("User joined channel", zap.String("channel", message.Channel), zap.String("username", message.User))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
client.OnUserPartMessage(func(message irc.UserPartMessage) {
|
client.OnUserPartMessage(func(message irc.UserPartMessage) {
|
||||||
if strings.ToLower(message.User) == bot.username {
|
if strings.ToLower(message.User) == bot.username {
|
||||||
bot.logger.Info("left channel", zap.String("channel", message.Channel))
|
bot.logger.Info("Twitch bot left channel", zap.String("channel", message.Channel))
|
||||||
} else {
|
} else {
|
||||||
bot.logger.Debug("user left channel", zap.String("channel", message.Channel), zap.String("username", message.User))
|
bot.logger.Debug("User left channel", zap.String("channel", message.Channel), zap.String("username", message.User))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -189,22 +189,22 @@ func newBot(api *Client, config BotConfig) *Bot {
|
||||||
if errors.Is(err, database.ErrEmptyKey) {
|
if errors.Is(err, database.ErrEmptyKey) {
|
||||||
customCommands = make(map[string]BotCustomCommand)
|
customCommands = make(map[string]BotCustomCommand)
|
||||||
} else {
|
} else {
|
||||||
bot.logger.Error("failed to load custom commands", zap.Error(err))
|
bot.logger.Error("Failed to load custom commands", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bot.customCommands.Set(customCommands)
|
bot.customCommands.Set(customCommands)
|
||||||
|
|
||||||
err = bot.updateTemplates()
|
err = bot.updateTemplates()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
bot.logger.Error("failed to parse custom commands", zap.Error(err))
|
bot.logger.Error("Failed to parse custom commands", zap.Error(err))
|
||||||
}
|
}
|
||||||
err, bot.cancelUpdateSub = api.db.SubscribeKey(CustomCommandsKey, bot.updateCommands)
|
err, bot.cancelUpdateSub = api.db.SubscribeKey(CustomCommandsKey, bot.updateCommands)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
bot.logger.Error("could not set-up bot command reload subscription", zap.Error(err))
|
bot.logger.Error("Could not set-up bot command reload subscription", zap.Error(err))
|
||||||
}
|
}
|
||||||
err, bot.cancelWriteRPCSub = api.db.SubscribeKey(WriteMessageRPC, bot.handleWriteMessageRPC)
|
err, bot.cancelWriteRPCSub = api.db.SubscribeKey(WriteMessageRPC, bot.handleWriteMessageRPC)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
bot.logger.Error("could not set-up bot command reload subscription", zap.Error(err))
|
bot.logger.Error("Could not set-up bot command reload subscription", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
return bot
|
return bot
|
||||||
|
@ -229,12 +229,12 @@ func (b *Bot) Close() error {
|
||||||
func (b *Bot) updateCommands(value string) {
|
func (b *Bot) updateCommands(value string) {
|
||||||
err := utils.LoadJSONToWrapped[map[string]BotCustomCommand](value, b.customCommands)
|
err := utils.LoadJSONToWrapped[map[string]BotCustomCommand](value, b.customCommands)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.logger.Error("failed to decode new custom commands", zap.Error(err))
|
b.logger.Error("Failed to decode new custom commands", zap.Error(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Recreate templates
|
// Recreate templates
|
||||||
if err := b.updateTemplates(); err != nil {
|
if err := b.updateTemplates(); err != nil {
|
||||||
b.logger.Error("failed to update custom commands templates", zap.Error(err))
|
b.logger.Error("Failed to update custom commands templates", zap.Error(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -258,7 +258,11 @@ func (b *Bot) updateTemplates() error {
|
||||||
func (b *Bot) Connect() {
|
func (b *Bot) Connect() {
|
||||||
err := b.Client.Connect()
|
err := b.Client.Connect()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.logger.Error("bot connection ended", zap.Error(err))
|
if errors.Is(err, irc.ErrClientDisconnected) {
|
||||||
|
b.logger.Info("Twitch bot connection terminated", zap.Error(err))
|
||||||
|
} else {
|
||||||
|
b.logger.Error("Twitch bot connection terminated unexpectedly", zap.Error(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,7 @@ func (c *Client) eventSubLoop(userClient *helix.Client) {
|
||||||
for endpoint != "" {
|
for endpoint != "" {
|
||||||
endpoint, connection, err = c.connectWebsocket(endpoint, connection, userClient)
|
endpoint, connection, err = c.connectWebsocket(endpoint, connection, userClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("eventsub ws read error", zap.Error(err))
|
c.logger.Error("EventSub websocket read error", zap.Error(err))
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if connection != nil {
|
if connection != nil {
|
||||||
|
@ -33,7 +32,7 @@ func (c *Client) eventSubLoop(userClient *helix.Client) {
|
||||||
func (c *Client) connectWebsocket(url string, oldConnection *websocket.Conn, userClient *helix.Client) (string, *websocket.Conn, error) {
|
func (c *Client) connectWebsocket(url string, oldConnection *websocket.Conn, userClient *helix.Client) (string, *websocket.Conn, error) {
|
||||||
connection, _, err := websocket.DefaultDialer.Dial(url, nil)
|
connection, _, err := websocket.DefaultDialer.Dial(url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("could not connect to eventsub ws", zap.Error(err))
|
c.logger.Error("Could not establish a connection to the EventSub websocket", zap.Error(err))
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,14 +64,14 @@ func (c *Client) connectWebsocket(url string, oldConnection *websocket.Conn, use
|
||||||
case <-c.ctx.Done():
|
case <-c.ctx.Done():
|
||||||
return "", nil, nil
|
return "", nil, nil
|
||||||
case err = <-wsErr:
|
case err = <-wsErr:
|
||||||
return "", nil, err
|
return url, nil, err // Return the endpoint so we can reconnect
|
||||||
case messageData = <-received:
|
case messageData = <-received:
|
||||||
}
|
}
|
||||||
|
|
||||||
var wsMessage EventSubWebsocketMessage
|
var wsMessage EventSubWebsocketMessage
|
||||||
err = json.Unmarshal(messageData, &wsMessage)
|
err = json.Unmarshal(messageData, &wsMessage)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("eventsub ws decode error", zap.Error(err))
|
c.logger.Error("Error decoding EventSub message", zap.Error(err))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,10 +82,10 @@ func (c *Client) connectWebsocket(url string, oldConnection *websocket.Conn, use
|
||||||
var welcomeData WelcomeMessagePayload
|
var welcomeData WelcomeMessagePayload
|
||||||
err = json.Unmarshal(wsMessage.Payload, &welcomeData)
|
err = json.Unmarshal(wsMessage.Payload, &welcomeData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("eventsub ws decode error", zap.String("message-type", wsMessage.Metadata.MessageType), zap.Error(err))
|
c.logger.Error("Error decoding EventSub message", zap.String("message-type", wsMessage.Metadata.MessageType), zap.Error(err))
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
c.logger.Info("eventsub ws connection established", zap.String("session-id", welcomeData.Session.Id))
|
c.logger.Info("Connection to EventSub websocket established", zap.String("session-id", welcomeData.Session.Id))
|
||||||
|
|
||||||
if oldConnection != nil {
|
if oldConnection != nil {
|
||||||
utils.Close(oldConnection, c.logger)
|
utils.Close(oldConnection, c.logger)
|
||||||
|
@ -94,17 +93,17 @@ func (c *Client) connectWebsocket(url string, oldConnection *websocket.Conn, use
|
||||||
// Add subscription to websocket session
|
// Add subscription to websocket session
|
||||||
err = c.addSubscriptionsForSession(userClient, welcomeData.Session.Id)
|
err = c.addSubscriptionsForSession(userClient, welcomeData.Session.Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("could not add subscriptions", zap.Error(err))
|
c.logger.Error("Could not add subscriptions", zap.Error(err))
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case "session_reconnect":
|
case "session_reconnect":
|
||||||
var reconnectData WelcomeMessagePayload
|
var reconnectData WelcomeMessagePayload
|
||||||
err = json.Unmarshal(wsMessage.Payload, &reconnectData)
|
err = json.Unmarshal(wsMessage.Payload, &reconnectData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("eventsub ws decode error", zap.String("message-type", wsMessage.Metadata.MessageType), zap.Error(err))
|
c.logger.Error("Error decoding EventSub message", zap.String("message-type", wsMessage.Metadata.MessageType), zap.Error(err))
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
c.logger.Info("eventsub ws connection reset requested", zap.String("session-id", reconnectData.Session.Id), zap.String("reconnect-url", reconnectData.Session.ReconnectUrl))
|
c.logger.Info("EventSub websocket requested a reconnection", zap.String("session-id", reconnectData.Session.Id), zap.String("reconnect-url", reconnectData.Session.ReconnectUrl))
|
||||||
|
|
||||||
return reconnectData.Session.ReconnectUrl, connection, nil
|
return reconnectData.Session.ReconnectUrl, connection, nil
|
||||||
case "notification":
|
case "notification":
|
||||||
|
@ -129,13 +128,13 @@ func (c *Client) processEvent(message EventSubWebsocketMessage) {
|
||||||
var notificationData NotificationMessagePayload
|
var notificationData NotificationMessagePayload
|
||||||
err := json.Unmarshal(message.Payload, ¬ificationData)
|
err := json.Unmarshal(message.Payload, ¬ificationData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("eventsub ws decode error", zap.String("message-type", message.Metadata.MessageType), zap.Error(err))
|
c.logger.Error("Error decoding EventSub message", zap.String("message-type", message.Metadata.MessageType), zap.Error(err))
|
||||||
}
|
}
|
||||||
notificationData.Date = time.Now()
|
notificationData.Date = time.Now()
|
||||||
|
|
||||||
err = c.db.PutJSON(EventSubEventKey, notificationData)
|
err = c.db.PutJSON(EventSubEventKey, notificationData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("error saving event to db", zap.String("key", EventSubEventKey), zap.Error(err))
|
c.logger.Error("Error storing event to database", zap.String("key", EventSubEventKey), zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
var archive []NotificationMessagePayload
|
var archive []NotificationMessagePayload
|
||||||
|
@ -149,7 +148,7 @@ func (c *Client) processEvent(message EventSubWebsocketMessage) {
|
||||||
}
|
}
|
||||||
err = c.db.PutJSON(EventSubHistoryKey, archive)
|
err = c.db.PutJSON(EventSubHistoryKey, archive)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("error saving event to db", zap.String("key", EventSubHistoryKey), zap.Error(err))
|
c.logger.Error("Error storing event to database", zap.String("key", EventSubHistoryKey), zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,7 +171,7 @@ func (c *Client) addSubscriptionsForSession(userClient *helix.Client, session st
|
||||||
Condition: topicCondition(topic, c.User.ID),
|
Condition: topicCondition(topic, c.User.ID),
|
||||||
})
|
})
|
||||||
if sub.Error != "" || sub.ErrorMessage != "" {
|
if sub.Error != "" || sub.ErrorMessage != "" {
|
||||||
c.logger.Error("subscription error", zap.String("topic", topic), zap.String("topic-version", version), zap.String("err", sub.Error), zap.String("message", sub.ErrorMessage))
|
c.logger.Error("EventSub Subscription error", zap.String("topic", topic), zap.String("topic-version", version), zap.String("err", sub.Error), zap.String("message", sub.ErrorMessage))
|
||||||
return fmt.Errorf("%s: %s", sub.Error, sub.ErrorMessage)
|
return fmt.Errorf("%s: %s", sub.Error, sub.ErrorMessage)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -229,7 +229,7 @@ func newClient(config Config, db *database.LocalDBClient, server *http.Server, l
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) runStatusPoll() {
|
func (c *Client) runStatusPoll() {
|
||||||
c.logger.Info("status poll started")
|
c.logger.Info("Started polling for stream status")
|
||||||
for {
|
for {
|
||||||
// Make sure we're configured and connected properly first
|
// Make sure we're configured and connected properly first
|
||||||
if !c.Config.Get().Enabled || c.Bot == nil || c.Bot.Config.Channel == "" {
|
if !c.Config.Get().Enabled || c.Bot == nil || c.Bot.Config.Channel == "" {
|
||||||
|
|
Loading…
Reference in a new issue