fork
Configure Feed
Select the types of activity you want to include in your feed.
Monorepo for Tangled
tangled.org
fork
Configure Feed
Select the types of activity you want to include in your feed.
1package db
2
3import (
4 "database/sql"
5
6 _ "github.com/mattn/go-sqlite3"
7)
8
9type DB struct {
10 db *sql.DB
11}
12
13func Setup(dbPath string) (*DB, error) {
14 db, err := sql.Open("sqlite3", dbPath)
15 if err != nil {
16 return nil, err
17 }
18
19 _, err = db.Exec(`
20 pragma journal_mode = WAL;
21 pragma synchronous = normal;
22 pragma foreign_keys = on;
23 pragma temp_store = memory;
24 pragma mmap_size = 30000000000;
25 pragma page_size = 32768;
26 pragma auto_vacuum = incremental;
27 pragma busy_timeout = 5000;
28
29 create table if not exists known_dids (
30 did text primary key
31 );
32
33 create table if not exists public_keys (
34 id integer primary key autoincrement,
35 did text not null,
36 key text not null,
37 created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
38 unique(did, key),
39 foreign key (did) references known_dids(did) on delete cascade
40 );
41
42 create table if not exists _jetstream (
43 id integer primary key autoincrement,
44 last_time_us integer not null
45 );
46 `)
47 if err != nil {
48 return nil, err
49 }
50
51 return &DB{db: db}, nil
52}