8
8
"net"
9
9
"net/http"
10
10
"os"
11
+ "strings"
11
12
12
13
"github.com/prometheus/client_golang/prometheus/promhttp"
13
14
"github.com/robfig/cron/v3"
@@ -37,13 +38,18 @@ var (
37
38
flyghtTrackerURL = flag .String ("flyght-tracker-url" , "" , "Flyght Tracker URL" )
38
39
39
40
// POSSE flags
40
- blueskyAuthkey = flag .String ("bsky-authkey" , "" , "Bluesky authkey" )
41
- blueskyHandle = flag .String ("bsky-handle" , "" , "Bluesky handle" )
42
- blueskyPDS = flag .String ("bsky-pds" , "https://bsky.social" , "Bluesky PDS" )
43
- mastodonToken = flag .String ("mastodon-token" , "" , "Mastodon token" )
44
- mastodonURL = flag .String ("mastodon-url" , "" , "Mastodon URL" )
45
- mastodonUsername = flag .String ("mastodon-username" , "" , "Mastodon username" )
46
- mimiAnnounceURL = flag .String ("mimi-announce-url" , "" , "Mimi announce URL" )
41
+ blueskyAuthkey = flag .String ("bsky-authkey" , "" , "Bluesky authkey" )
42
+ blueskyHandle = flag .String ("bsky-handle" , "" , "Bluesky handle" )
43
+ blueskyPDS = flag .String ("bsky-pds" , "https://bsky.social" , "Bluesky PDS" )
44
+ mastodonToken = flag .String ("mastodon-token" , "" , "Mastodon token" )
45
+ mastodonURL = flag .String ("mastodon-url" , "" , "Mastodon URL" )
46
+ mastodonUsername = flag .String ("mastodon-username" , "" , "Mastodon username" )
47
+ mimiAnnounceURL = flag .String ("mimi-announce-url" , "" , "Mimi announce URL" )
48
+ twitchClientID = flag .String ("twitch-client-id" , "" , "twitch.tv client ID" )
49
+ twitchClientSecret = flag .String ("twitch-client-secret" , "" , "twitch.tv client secret" )
50
+ twitchUserID = flag .Int ("twitch-user-id" , 105794391 , "twitch.tv user ID" )
51
+ twitchWebhookSecret = flag .String ("twitch-webhook-secret" , "" , "twitch.tv webhook secret" )
52
+ twitchWebhookURL = flag .String ("twitch-webhook-url" , "" , "URL for Twitch events to be pushed to" )
47
53
)
48
54
49
55
func main () {
@@ -86,17 +92,21 @@ func main() {
86
92
os .Exit (1 )
87
93
}
88
94
89
- te , err := twitchevents .New (ctx , dao , twitchevents.Config {
90
- BlueskyAuthkey : * blueskyAuthkey ,
91
- BlueskyHandle : * blueskyHandle ,
92
- BlueskyPDS : * blueskyPDS ,
93
- MastodonToken : * mastodonToken ,
94
- MastodonURL : * mastodonURL ,
95
- MimiAnnounceURL : * mimiAnnounceURL ,
96
- })
97
- if err != nil {
98
- slog .Error ("failed to create twitch events" , "err" , err )
99
- os .Exit (1 )
95
+ if * twitchClientID != "" {
96
+ te , err := twitchevents .New (ctx , dao , twitchevents.Config {
97
+ BlueskyAuthkey : * blueskyAuthkey ,
98
+ BlueskyHandle : * blueskyHandle ,
99
+ BlueskyPDS : * blueskyPDS ,
100
+ MastodonToken : * mastodonToken ,
101
+ MastodonURL : * mastodonURL ,
102
+ MimiAnnounceURL : * mimiAnnounceURL ,
103
+ })
104
+ if err != nil {
105
+ slog .Error ("failed to create twitch events" , "err" , err )
106
+ os .Exit (1 )
107
+ }
108
+
109
+ mux .Handle ("/twitch" , te )
100
110
}
101
111
102
112
st := switchtracker .New (dao )
@@ -110,9 +120,26 @@ func main() {
110
120
111
121
mux .Handle (announcev1 .AnnouncePathPrefix , announcev1 .NewAnnounceServer (ann ))
112
122
mux .Handle (pb .SwitchTrackerPathPrefix , pb .NewSwitchTrackerServer (st ))
123
+
124
+ // XXX(Xe): shim through old paths
125
+ mux .HandleFunc ("/twirp/within.website.x.mi.SwitchTracker/" , func (w http.ResponseWriter , r * http.Request ) {
126
+ slog .Info ("got here" , "path" , r .URL .Path )
127
+ r .URL .Path = strings .Replace (r .URL .Path , "/twirp/within.website.x.mi.SwitchTracker/" , "/twirp/within.website.x.mi.v1.SwitchTracker/" , - 1 )
128
+ slog .Info ("got here" , "path" , r .URL .Path )
129
+ pb .NewSwitchTrackerServer (st ).ServeHTTP (w , r )
130
+ })
131
+
113
132
mux .Handle (pb .EventsPathPrefix , pb .NewEventsServer (es ))
133
+
134
+ // XXX(Xe): shim through old paths
135
+ mux .HandleFunc ("/twirp/within.website.x.mi.Events/" , func (w http.ResponseWriter , r * http.Request ) {
136
+ slog .Info ("got here" , "path" , r .URL .Path )
137
+ r .URL .Path = strings .Replace (r .URL .Path , "/twirp/within.website.x.mi.Events/" , "/twirp/within.website.x.mi.v1.Events/" , - 1 )
138
+ slog .Info ("got here" , "path" , r .URL .Path )
139
+ pb .NewEventsServer (es ).ServeHTTP (w , r )
140
+ })
141
+
114
142
mux .Handle ("/front" , homefrontshim .New (dao ))
115
- mux .Handle ("/twitch" , te )
116
143
mux .Handle ("/glance" , glance .New (dao ))
117
144
118
145
i := importer .New (dao )
0 commit comments