more code tidy-up
This commit is contained in:
parent
2190cac343
commit
04ca14163e
8 changed files with 195 additions and 94 deletions
|
|
@ -124,17 +124,14 @@ func New(ctx context.Context, opts ServiceOptions) (*Service, error) {
|
|||
port: opts.Port,
|
||||
labels: &twitchLabels{
|
||||
LatestFollower: &twitchLabel{
|
||||
Text: "some_follower",
|
||||
C: latestFollowerC,
|
||||
Broadcast: latestFollowerBroadcast,
|
||||
},
|
||||
LatestSubscriber: &twitchLabel{
|
||||
Text: "some_subscriber",
|
||||
C: latestSubscriberC,
|
||||
Broadcast: latestSubscriberBroadcast,
|
||||
},
|
||||
LatestCheer: &twitchLabel{
|
||||
Text: "some_cheer",
|
||||
C: latestCheerC,
|
||||
Broadcast: latestCheerBroadcast,
|
||||
},
|
||||
|
|
@ -176,19 +173,6 @@ func New(ctx context.Context, opts ServiceOptions) (*Service, error) {
|
|||
}
|
||||
}
|
||||
|
||||
if data, err := os.ReadFile(path.Join(DATA_PATH, "state", LABEL_LATEST_FOLLOWER)); err == nil {
|
||||
srv.labels.LatestFollower.Text = string(data)
|
||||
log.Printf("Loaded latest follower: %s", string(data))
|
||||
}
|
||||
if data, err := os.ReadFile(path.Join(DATA_PATH, "state", LABEL_LATEST_SUBSCRIBER)); err == nil {
|
||||
srv.labels.LatestSubscriber.Text = string(data)
|
||||
log.Printf("Loaded latest subscriber: %s", string(data))
|
||||
}
|
||||
if data, err := os.ReadFile(path.Join(DATA_PATH, "state", LABEL_LATEST_CHEER)); err == nil {
|
||||
srv.labels.LatestCheer.Text = string(data)
|
||||
log.Printf("Loaded latest cheer: %s", string(data))
|
||||
}
|
||||
|
||||
return srv, nil
|
||||
}
|
||||
|
||||
|
|
@ -282,27 +266,44 @@ func (srv *Service) Run(ctx context.Context) {
|
|||
if srv.oauthToken == nil || !srv.oauthToken.Valid() {
|
||||
log.Printf("Log in with Twitch: http://localhost:%d/twitch/login", srv.port)
|
||||
} else {
|
||||
srv.start(ctx)
|
||||
if err := srv.start(ctx); err != nil {
|
||||
log.Printf("Failed to start Twitch service: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (srv *Service) start(ctx context.Context) {
|
||||
userIDs, err := srv.userIDsFromNames([]string{ srv.channelName })
|
||||
if err != nil {
|
||||
log.Printf(
|
||||
"Failed to resolve Twitch username \"%s\": %v",
|
||||
srv.channelName,
|
||||
err,
|
||||
)
|
||||
return
|
||||
func (srv *Service) start(ctx context.Context) error {
|
||||
if res, err := srv.getUsers(nil, []string{ srv.channelName }); err == nil {
|
||||
if len(res.Data) == 0 {
|
||||
return fmt.Errorf("resolve username \"%s\", it may not exist?", srv.channelName)
|
||||
}
|
||||
srv.channelID = res.Data[0].ID
|
||||
} else { return fmt.Errorf("fetch Twitch users: %v", err) }
|
||||
|
||||
if res, err := srv.getFollowers(ctx, srv.channelID, 1); err == nil {
|
||||
if len(res.Data) > 0 {
|
||||
srv.labels.LatestFollower.Text = res.Data[0].UserName
|
||||
log.Printf("Loaded latest follower: %s", res.Data[0].UserName)
|
||||
}
|
||||
} else {
|
||||
log.Printf("Failed to fetch latest follower: %v", err)
|
||||
}
|
||||
if len(userIDs) == 0 {
|
||||
fmt.Printf("Failed to resolve username \"%s\", it may not exist?", srv.channelName)
|
||||
return
|
||||
|
||||
// TODO: build satellite service for offline-fetching subscribers and cheers
|
||||
|
||||
if data, err := os.ReadFile(path.Join(DATA_PATH, "state", LABEL_LATEST_SUBSCRIBER)); err == nil {
|
||||
srv.labels.LatestSubscriber.Text = string(data)
|
||||
log.Printf("Loaded latest subscriber: %s", string(data))
|
||||
}
|
||||
|
||||
if data, err := os.ReadFile(path.Join(DATA_PATH, "state", LABEL_LATEST_CHEER)); err == nil {
|
||||
srv.labels.LatestCheer.Text = string(data)
|
||||
log.Printf("Loaded latest cheer: %s", string(data))
|
||||
}
|
||||
srv.channelID = userIDs[0]
|
||||
|
||||
srv.startWebsocketListener(ctx)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (srv *Service) startWebsocketListener(ctx context.Context) {
|
||||
|
|
@ -341,7 +342,7 @@ func (srv *Service) startWebsocketListener(ctx context.Context) {
|
|||
|
||||
srv.subscribeToDefaultEvents(ctx)
|
||||
|
||||
log.Printf("Connected to Twitch as %s.", srv.channelName)
|
||||
log.Printf("Connected to Twitch for channel %s.", srv.channelName)
|
||||
}
|
||||
|
||||
if message.Metadata.MessageType == string(api.NOTIFICATION) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue