nandi/gleanpublic Fork 0
47fc78a
Commits
Clone
git clone https://git.rickub.com/nandi/glean.git
git clone ssh://git@rickub.com/nandi/glean.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Fix users profile handleUnverified

Julien Robert committed 2026-04-23T12:49:00+02:00 Browse files
47fc78a parent: f254c53
modified internal/db/db.go +1 -1
@@ -9,7 +9,7 @@ import (
99 "github.com/mattn/go-sqlite3"
1010 )
1111
12-const DSN = "_journal_mode=WAL&_busy_timeout=5000&_synchronous=NORMAL&_cache=shared"
12+const DSN = "_journal_mode=WAL&_busy_timeout=30000&_synchronous=NORMAL&_cache=shared"
1313
1414 func init() {
1515 sql.Register("sqlite3_glean", &sqlite3.SQLiteDriver{
@@ -9,7 +9,7 @@ import (
9 "github.com/mattn/go-sqlite3"9 "github.com/mattn/go-sqlite3"
10 )10 )
11 11
12-const DSN = "_journal_mode=WAL&_busy_timeout=5000&_synchronous=NORMAL&_cache=shared"12+const DSN = "_journal_mode=WAL&_busy_timeout=30000&_synchronous=NORMAL&_cache=shared"
13 13
14 func init() {14 func init() {
15 sql.Register("sqlite3_glean", &sqlite3.SQLiteDriver{15 sql.Register("sqlite3_glean", &sqlite3.SQLiteDriver{
modified internal/db/user.go +2 -2
@@ -33,7 +33,7 @@ func (db *DB) BatchCreateUsers(ctx context.Context, users []UserData) error {
3333
3434 stmt, err := tx.PrepareContext(ctx, `
3535 INSERT INTO users (did, handle, display_name, avatar_url, updated_at)
36- VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
36+ VALUES (?, COALESCE(NULLIF(?, ''), ?), NULLIF(?, ''), NULLIF(?, ''), CURRENT_TIMESTAMP)
3737 ON CONFLICT(did) DO UPDATE SET
3838 handle = COALESCE(NULLIF(excluded.handle, ''), users.handle),
3939 display_name = COALESCE(NULLIF(excluded.display_name, ''), users.display_name),
@@ -46,7 +46,7 @@ func (db *DB) BatchCreateUsers(ctx context.Context, users []UserData) error {
4646 defer stmt.Close()
4747
4848 for _, u := range users {
49- if _, err := stmt.ExecContext(ctx, u.DID, u.Handle, u.DisplayName, u.AvatarURL); err != nil {
49+ if _, err := stmt.ExecContext(ctx, u.DID, u.Handle, u.DID, u.DisplayName, u.AvatarURL); err != nil {
5050 return err
5151 }
5252 }
@@ -33,7 +33,7 @@ func (db *DB) BatchCreateUsers(ctx context.Context, users []UserData) error {
33 33
34 stmt, err := tx.PrepareContext(ctx, `34 stmt, err := tx.PrepareContext(ctx, `
35 INSERT INTO users (did, handle, display_name, avatar_url, updated_at)35 INSERT INTO users (did, handle, display_name, avatar_url, updated_at)
36- VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)36+ VALUES (?, COALESCE(NULLIF(?, ''), ?), NULLIF(?, ''), NULLIF(?, ''), CURRENT_TIMESTAMP)
37 ON CONFLICT(did) DO UPDATE SET37 ON CONFLICT(did) DO UPDATE SET
38 handle = COALESCE(NULLIF(excluded.handle, ''), users.handle),38 handle = COALESCE(NULLIF(excluded.handle, ''), users.handle),
39 display_name = COALESCE(NULLIF(excluded.display_name, ''), users.display_name),39 display_name = COALESCE(NULLIF(excluded.display_name, ''), users.display_name),
@@ -46,7 +46,7 @@ func (db *DB) BatchCreateUsers(ctx context.Context, users []UserData) error {
46 defer stmt.Close()46 defer stmt.Close()
47 47
48 for _, u := range users {48 for _, u := range users {
49- if _, err := stmt.ExecContext(ctx, u.DID, u.Handle, u.DisplayName, u.AvatarURL); err != nil {49+ if _, err := stmt.ExecContext(ctx, u.DID, u.Handle, u.DID, u.DisplayName, u.AvatarURL); err != nil {
50 return err50 return err
51 }51 }
52 }52 }
modified internal/server/profile_handler.go +3 -3
@@ -17,7 +17,7 @@ func (s *Server) handleProfile(w http.ResponseWriter, r *http.Request) {
1717 if strings.HasPrefix(param, "did:") {
1818 did = param
1919 } else {
20- profileUser, err := s.dbs.Articles.GetUserByHandle(ctx, param)
20+ profileUser, err := s.dbs.Users.GetUserByHandle(ctx, param)
2121 if err == nil {
2222 did = profileUser.DID
2323 } else {
@@ -31,7 +31,7 @@ func (s *Server) handleProfile(w http.ResponseWriter, r *http.Request) {
3131 }
3232 }
3333
34- profileUser, err := s.dbs.Articles.GetUser(ctx, did)
34+ profileUser, err := s.dbs.Users.GetUser(ctx, did)
3535 if err != nil {
3636 s.logger.Warn("failed to get user", "error", err, "did", did)
3737 http.Error(w, "user not found", http.StatusNotFound)
@@ -41,7 +41,7 @@ func (s *Server) handleProfile(w http.ResponseWriter, r *http.Request) {
4141 if !profileUser.AvatarURL.Valid || profileUser.AvatarURL.String == "" {
4242 _, displayName, avatarURL, err := atproto.FetchProfile(ctx, did)
4343 if err == nil && avatarURL != "" {
44- if err := s.dbs.Articles.UpdateUserProfile(ctx, did, displayName, avatarURL); err != nil {
44+ if err := s.dbs.Users.UpdateUserProfile(ctx, did, displayName, avatarURL); err != nil {
4545 s.logger.Warn("failed to update user profile", "error", err, "did", did)
4646 }
4747 profileUser.DisplayName = nullString(displayName)
@@ -17,7 +17,7 @@ func (s *Server) handleProfile(w http.ResponseWriter, r *http.Request) {
17 if strings.HasPrefix(param, "did:") {17 if strings.HasPrefix(param, "did:") {
18 did = param18 did = param
19 } else {19 } else {
20- profileUser, err := s.dbs.Articles.GetUserByHandle(ctx, param)20+ profileUser, err := s.dbs.Users.GetUserByHandle(ctx, param)
21 if err == nil {21 if err == nil {
22 did = profileUser.DID22 did = profileUser.DID
23 } else {23 } else {
@@ -31,7 +31,7 @@ func (s *Server) handleProfile(w http.ResponseWriter, r *http.Request) {
31 }31 }
32 }32 }
33 33
34- profileUser, err := s.dbs.Articles.GetUser(ctx, did)34+ profileUser, err := s.dbs.Users.GetUser(ctx, did)
35 if err != nil {35 if err != nil {
36 s.logger.Warn("failed to get user", "error", err, "did", did)36 s.logger.Warn("failed to get user", "error", err, "did", did)
37 http.Error(w, "user not found", http.StatusNotFound)37 http.Error(w, "user not found", http.StatusNotFound)
@@ -41,7 +41,7 @@ func (s *Server) handleProfile(w http.ResponseWriter, r *http.Request) {
41 if !profileUser.AvatarURL.Valid || profileUser.AvatarURL.String == "" {41 if !profileUser.AvatarURL.Valid || profileUser.AvatarURL.String == "" {
42 _, displayName, avatarURL, err := atproto.FetchProfile(ctx, did)42 _, displayName, avatarURL, err := atproto.FetchProfile(ctx, did)
43 if err == nil && avatarURL != "" {43 if err == nil && avatarURL != "" {
44- if err := s.dbs.Articles.UpdateUserProfile(ctx, did, displayName, avatarURL); err != nil {44+ if err := s.dbs.Users.UpdateUserProfile(ctx, did, displayName, avatarURL); err != nil {
45 s.logger.Warn("failed to update user profile", "error", err, "did", did)45 s.logger.Warn("failed to update user profile", "error", err, "did", did)
46 }46 }
47 profileUser.DisplayName = nullString(displayName)47 profileUser.DisplayName = nullString(displayName)