+693
-529
api/tangled/cbor_gen.go
+693
-529
api/tangled/cbor_gen.go
······-if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.publicKey"))); err != nil {·····················-if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.knot.member"))); err != nil {··················-if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.graph.follow"))); err != nil {··················-if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.repo"))); err != nil {···························-if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.repo.issue"))); err != nil {···························-if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.repo.issue.comment"))); err != nil {·····················
······+if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.feed.star"))); err != nil {·····················+if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.graph.follow"))); err != nil {··················+if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.knot.member"))); err != nil {··················+if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.publicKey"))); err != nil {···························+if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.repo.issue.comment"))); err != nil {···························+if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.repo.issue"))); err != nil {··················+if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.repo"))); err != nil {···
+23
api/tangled/feedstar.go
+23
api/tangled/feedstar.go
···
···+LexiconTypeID string `json:"$type,const=sh.tangled.feed.star" cborgen:"$type,const=sh.tangled.feed.star"`
+10
appview/db/db.go
+10
appview/db/db.go
···
+11
-6
appview/db/follow.go
+11
-6
appview/db/follow.go
·········_, err := e.Exec(`delete from follows where user_did = ? and subject_did = ?`, userDid, subjectDid)······-if err := rows.Scan(&follow.UserDid, &follow.SubjectDid, &followedAt, &follow.RKey); err != nil {
·········_, err := e.Exec(`delete from follows where user_did = ? and subject_did = ?`, userDid, subjectDid)······+if err := rows.Scan(&follow.UserDid, &follow.SubjectDid, &followedAt, &follow.Rkey); err != nil {
+37
-12
appview/db/issues.go
+37
-12
appview/db/issues.go
·········_, err := e.Exec(`update issues set issue_at = ? where repo_at = ? and issue_id = ?`, issueAt, repoAt, issueId)err := e.QueryRow(`select issue_at from issues where repo_at = ? and issue_id = ?`, repoAt, issueId).Scan(&issueAt)err := e.QueryRow(`select next_issue_id from repo_issue_seqs where repo_at = ?`, repoAt).Scan(&issueId)err := e.QueryRow(`select owner_did from issues where repo_at = ? and issue_id = ?`, repoAt, issueId).Scan(&ownerDid)rows, err := e.Query(`select owner_did, issue_id, created, title, body, open from issues where repo_at = ? order by created desc`, repoAt)···query := `select owner_did, created, title, body, open from issues where repo_at = ? and issue_id = ?`···query := `select owner_did, issue_id, created, title, body, open from issues where repo_at = ? and issue_id = ?`···rows, err := e.Query(`select owner_did, issue_id, comment_id, comment_at, body, created from comments where repo_at = ? and issue_id = ? order by created asc`, repoAt, issueId)···_, err := e.Exec(`update issues set open = 0 where repo_at = ? and issue_id = ?`, repoAt, issueId)_, err := e.Exec(`update issues set open = 1 where repo_at = ? and issue_id = ?`, repoAt, issueId)
·········_, err := e.Exec(`update issues set issue_at = ? where repo_at = ? and issue_id = ?`, issueAt, repoAt, issueId)err := e.QueryRow(`select issue_at from issues where repo_at = ? and issue_id = ?`, repoAt, issueId).Scan(&issueAt)err := e.QueryRow(`select next_issue_id from repo_issue_seqs where repo_at = ?`, repoAt).Scan(&issueId)err := e.QueryRow(`select owner_did from issues where repo_at = ? and issue_id = ?`, repoAt, issueId).Scan(&ownerDid)rows, err := e.Query(`select owner_did, issue_id, created, title, body, open from issues where repo_at = ? order by created desc`, repoAt)···query := `select owner_did, created, title, body, open from issues where repo_at = ? and issue_id = ?`···+func GetIssueWithComments(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, []Comment, error) {query := `select owner_did, issue_id, created, title, body, open from issues where repo_at = ? and issue_id = ?`···rows, err := e.Query(`select owner_did, issue_id, comment_id, comment_at, body, created from comments where repo_at = ? and issue_id = ? order by created asc`, repoAt, issueId)···_, err := e.Exec(`update issues set open = 0 where repo_at = ? and issue_id = ?`, repoAt, issueId)_, err := e.Exec(`update issues set open = 1 where repo_at = ? and issue_id = ?`, repoAt, issueId)
+29
-2
appview/db/repos.go
+29
-2
appview/db/repos.go
······_, err := e.Exec(`insert into repos (did, name, knot, rkey, at_uri) values (?, ?, ?, ?, ?)`, repo.Did, repo.Name, repo.Knot, repo.Rkey, repo.AtUri)···
······+row := e.QueryRow(`select did, name, knot, created, at_uri from repos where at_uri = ?`, atUri)_, err := e.Exec(`insert into repos (did, name, knot, rkey, at_uri) values (?, ?, ?, ?, ?)`, repo.Did, repo.Name, repo.Knot, repo.Rkey, repo.AtUri)···
+150
appview/db/star.go
+150
appview/db/star.go
···
···+_, err := e.Exec(`delete from stars where starred_by_did = ? and repo_at = ?`, starredByDid, repoAt)
+20
-6
appview/db/timeline.go
+20
-6
appview/db/timeline.go
······
······
+7
appview/pages/funcmap.go
+7
appview/pages/funcmap.go
+57
-2
appview/pages/pages.go
+57
-2
appview/pages/pages.go
············
············
+17
appview/pages/templates/fragments/follow.html
+17
appview/pages/templates/fragments/follow.html
···
···
+36
appview/pages/templates/fragments/star.html
+36
appview/pages/templates/fragments/star.html
···
···
+19
-11
appview/pages/templates/layouts/repobase.html
+19
-11
appview/pages/templates/layouts/repobase.html
······
······
+31
-19
appview/pages/templates/timeline.html
+31
-19
appview/pages/templates/timeline.html
···-<a href="/{{ $userHandle }}/{{ .Repo.Name }}" class="no-underline hover:underline">{{ .Repo.Name }}</a>
···+<a href="/{{ $userHandle }}/{{ .Repo.Name }}" class="no-underline hover:underline">{{ .Repo.Name }}</a>+<a href="/{{ $repoOwnerHandle }}/{{ .Star.Repo.Name }}" class="no-underline hover:underline">{{ $repoOwnerHandle }}/{{ .Star.Repo.Name }}</a>
+2
-14
appview/pages/templates/user/profile.html
+2
-14
appview/pages/templates/user/profile.html
···
+11
-22
appview/state/follow.go
+11
-22
appview/state/follow.go
···············
···············
+20
appview/state/jetstream.go
+20
appview/state/jetstream.go
······
······
+73
-95
appview/state/repo.go
+73
-95
appview/state/repo.go
·························································
·························································
+115
appview/state/star.go
+115
appview/state/star.go
···
···
+9
-2
appview/state/state.go
+9
-2
appview/state/state.go
······
······
+6
-5
cmd/gen.go
+6
-5
cmd/gen.go
···
···
+31
lexicons/star.json
+31
lexicons/star.json
···
···