+6
-2
Makefile
+6
-2
Makefile
···
1
1
all: bin/mostliked bin/feedweb
2
2
3
-
bin/mostliked: cmd/mostliked/*.go pkg/mostliked/*.go
3
+
bin/mostliked: cmd/mostliked/*.go pkg/mostliked/*.go db/mostliked/*.go
4
4
go build -o $@ ./cmd/mostliked
5
5
6
-
bin/feedweb: cmd/feedweb/*.go pkg/*/*.go mostliked/*.go
6
+
bin/feedweb: cmd/feedweb/*.go pkg/*/*.go db/*/*.go
7
7
go build -o $@ ./cmd/feedweb
8
+
9
+
.PHONY: clean
10
+
clean:
11
+
rm bin/*
+1
-1
cmd/feedweb/feedweb.go
cmd/feedweb/main.go
+1
-1
cmd/feedweb/feedweb.go
cmd/feedweb/main.go
+30
cmd/mostliked/main.go
+30
cmd/mostliked/main.go
···
1
+
package main
2
+
3
+
import (
4
+
"log"
5
+
6
+
"github.com/gorilla/websocket"
7
+
8
+
"github.com/edavis/bsky-feeds/pkg/mostliked"
9
+
)
10
+
11
+
func main() {
12
+
conn, _, err := websocket.DefaultDialer.Dial("ws://localhost:6008/subscribe?wantedCollections=app.bsky.feed.post&wantedCollections=app.bsky.feed.like", nil)
13
+
if err != nil {
14
+
log.Fatal("websocket connection error:", err)
15
+
}
16
+
defer conn.Close()
17
+
18
+
jetstreamEvents := make(chan []byte)
19
+
go mostliked.Handler(jetstreamEvents)
20
+
21
+
log.Println("starting up")
22
+
for {
23
+
_, message, err := conn.ReadMessage()
24
+
if err != nil {
25
+
log.Println("error reading from websocket:", err)
26
+
break
27
+
}
28
+
jetstreamEvents <- message
29
+
}
30
+
}
+4
-26
cmd/mostliked/mostliked.go
pkg/mostliked/handler.go
+4
-26
cmd/mostliked/mostliked.go
pkg/mostliked/handler.go
···
1
-
package main
1
+
package mostliked
2
2
3
3
import (
4
4
"context"
···
12
12
13
13
appbsky "github.com/bluesky-social/indigo/api/bsky"
14
14
jetstream "github.com/bluesky-social/jetstream/pkg/models"
15
-
db "github.com/edavis/bsky-feeds/pkg/mostliked"
16
-
"github.com/gorilla/websocket"
15
+
db "github.com/edavis/bsky-feeds/db/mostliked"
17
16
"github.com/karlseguin/ccache/v3"
18
17
_ "github.com/mattn/go-sqlite3"
19
18
"github.com/pemistahl/lingua-go"
···
91
90
return ""
92
91
}
93
92
94
-
func processEvents(events <-chan []byte) {
93
+
func Handler(events <-chan []byte) {
95
94
ctx := context.Background()
96
95
97
-
dbCnx, err := sql.Open("sqlite3", "db/mostliked.db?_journal=WAL&_fk=on")
96
+
dbCnx, err := sql.Open("sqlite3", "data/mostliked.db?_journal=WAL&_fk=on")
98
97
if err != nil {
99
98
log.Fatal("error opening db")
100
99
}
···
197
196
}
198
197
}
199
198
}
200
-
201
-
func main() {
202
-
conn, _, err := websocket.DefaultDialer.Dial("ws://localhost:6008/subscribe?wantedCollections=app.bsky.feed.post&wantedCollections=app.bsky.feed.like", nil)
203
-
if err != nil {
204
-
log.Fatal("websocket connection error:", err)
205
-
}
206
-
defer conn.Close()
207
-
208
-
jetstreamEvents := make(chan []byte)
209
-
go processEvents(jetstreamEvents)
210
-
211
-
log.Println("starting up")
212
-
for {
213
-
_, message, err := conn.ReadMessage()
214
-
if err != nil {
215
-
log.Println("error reading from websocket:", err)
216
-
break
217
-
}
218
-
jetstreamEvents <- message
219
-
}
220
-
}
cmd/mostliked/query.sql
pkg/mostliked/query.sql
cmd/mostliked/query.sql
pkg/mostliked/query.sql
cmd/mostliked/schema.sql
pkg/mostliked/schema.sql
cmd/mostliked/schema.sql
pkg/mostliked/schema.sql
+2
-2
mostliked/feed.go
pkg/mostliked/view.go
+2
-2
mostliked/feed.go
pkg/mostliked/view.go
···
6
6
"log"
7
7
"strconv"
8
8
9
-
db "github.com/edavis/bsky-feeds/pkg/mostliked"
9
+
db "github.com/edavis/bsky-feeds/db/mostliked"
10
10
_ "github.com/mattn/go-sqlite3"
11
11
)
12
12
···
18
18
19
19
func Feed(args FeedViewParams) []string {
20
20
ctx := context.Background()
21
-
dbCnx, err := sql.Open("sqlite3", "db/mostliked.db?_journal=WAL&_fk=on")
21
+
dbCnx, err := sql.Open("sqlite3", "data/mostliked.db?_journal=WAL&_fk=on")
22
22
if err != nil {
23
23
log.Fatal("error opening db")
24
24
}
pkg/mostliked/db.go
db/mostliked/db.go
pkg/mostliked/db.go
db/mostliked/db.go
pkg/mostliked/models.go
db/mostliked/models.go
pkg/mostliked/models.go
db/mostliked/models.go
pkg/mostliked/query.sql.go
db/mostliked/query.sql.go
pkg/mostliked/query.sql.go
db/mostliked/query.sql.go
+3
-3
sqlc.yaml
+3
-3
sqlc.yaml