A vibe coded tangled fork which supports pijul.
at c4216345ee957971bb3ac156ffba8a3a7c20a6e6 76 lines 1.9 kB view raw
1package state 2 3import ( 4 "fmt" 5 "net/http" 6 7 "tangled.org/core/appview/db" 8 "tangled.org/core/appview/pages" 9 "tangled.org/core/orm" 10) 11 12func (s *State) Home(w http.ResponseWriter, r *http.Request) { 13 // TODO: set this flag based on the UI 14 filtered := false 15 16 timeline, err := db.MakeTimeline(s.db, 50, "", filtered) 17 if err != nil { 18 s.logger.Error("failed to make timeline", "err", err) 19 s.pages.Notice(w, "timeline", "Uh oh! Failed to load timeline.") 20 return 21 } 22 23 blueskyPosts, err := db.GetBlueskyPosts(s.db, 8) 24 if err != nil { 25 s.logger.Error("failed to get bluesky posts", "err", err) 26 } 27 28 fmt.Println(s.pages.Home(w, pages.TimelineParams{ 29 LoggedInUser: nil, 30 Timeline: timeline, 31 BlueskyPosts: blueskyPosts, 32 })) 33} 34func (s *State) HomeOrTimeline(w http.ResponseWriter, r *http.Request) { 35 if s.oauth.GetMultiAccountUser(r) != nil { 36 s.Timeline(w, r) 37 return 38 } 39 s.Home(w, r) 40} 41 42func (s *State) Timeline(w http.ResponseWriter, r *http.Request) { 43 user := s.oauth.GetMultiAccountUser(r) 44 45 // TODO: set this flag based on the UI 46 filtered := false 47 48 var userDid string 49 if user != nil && user.Active != nil { 50 userDid = user.Active.Did 51 } 52 timeline, err := db.MakeTimeline(s.db, 50, userDid, filtered) 53 if err != nil { 54 s.logger.Error("failed to make timeline", "err", err) 55 s.pages.Notice(w, "timeline", "Uh oh! Failed to load timeline.") 56 } 57 58 repos, err := db.GetTopStarredReposLastWeek(s.db) 59 if err != nil { 60 s.logger.Error("failed to get top starred repos", "err", err) 61 s.pages.Notice(w, "topstarredrepos", "Unable to load.") 62 return 63 } 64 65 gfiLabel, err := db.GetLabelDefinition(s.db, orm.FilterEq("at_uri", s.config.Label.GoodFirstIssue)) 66 if err != nil { 67 // non-fatal 68 } 69 70 s.pages.Timeline(w, pages.TimelineParams{ 71 LoggedInUser: user, 72 Timeline: timeline, 73 Repos: repos, 74 GfiLabel: gfiLabel, 75 }) 76}