Initial lookbook implementation

Pinterest-style visual bookmarking app with:
- URL metadata extraction (OG/Twitter meta, oEmbed fallback)
- Image caching in Postgres with 480px thumbnails
- Multi-tag filtering with Ctrl/Cmd for OR mode
- Fuzzy tag suggestions and inline tag editing
- Browser console auth() with first-use password setup
- Brutalist UI with Commit Mono font and Pico CSS
- Light/dark mode via browser preference
This commit is contained in:
soup 2026-01-16 21:14:23 -05:00
commit fc625fb9cf
Signed by: soup
SSH key fingerprint: SHA256:GYxje8eQkJ6HZKzVWDdyOUF1TyDiprruGhE0Ym8qYDY
486 changed files with 195373 additions and 0 deletions

46
vendor/github.com/pressly/goose/v3/db.go generated vendored Normal file
View file

@ -0,0 +1,46 @@
package goose
import (
"database/sql"
"fmt"
)
// OpenDBWithDriver creates a connection to a database, and modifies goose internals to be
// compatible with the supplied driver by calling SetDialect.
func OpenDBWithDriver(driver string, dbstring string) (*sql.DB, error) {
if err := SetDialect(driver); err != nil {
return nil, err
}
// The Go ecosystem has added more and more drivers over the years. As a result, there's no
// longer a one-to-one match between the driver name and the dialect name. For instance, there's
// no "redshift" driver, but that's the internal dialect name within goose. Hence, we need to
// convert the dialect name to a supported driver name. This conversion is a best-effort
// attempt, as we can't support both lib/pq and pgx, which some users might have.
//
// We recommend users to create a [NewProvider] with the desired dialect, open a connection
// using their preferred driver, and provide the *sql.DB to goose. This approach removes the
// need for mapping dialects to drivers, rendering this function unnecessary.
switch driver {
case "mssql":
driver = "sqlserver"
case "tidb":
driver = "mysql"
case "turso":
driver = "libsql"
case "sqlite3":
driver = "sqlite"
case "postgres", "redshift":
driver = "pgx"
case "starrocks":
driver = "mysql"
}
switch driver {
case "postgres", "pgx", "sqlite3", "sqlite", "mysql", "sqlserver", "clickhouse", "vertica", "azuresql", "ydb", "libsql", "starrocks":
return sql.Open(driver, dbstring)
default:
return nil, fmt.Errorf("unsupported driver %s", driver)
}
}