Mirror of @tangled.org/core. Running on a Raspberry Pi Zero 2 (Please be gentle).
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

appview/models: init

move db.Artifact to models.Artifact

Signed-off-by: oppiliappan <me@oppi.li>

+91 -77
+5 -25
appview/db/artifact.go
··· 5 5 "strings" 6 6 "time" 7 7 8 - "github.com/bluesky-social/indigo/atproto/syntax" 9 8 "github.com/go-git/go-git/v5/plumbing" 10 9 "github.com/ipfs/go-cid" 11 - "tangled.org/core/api/tangled" 10 + "tangled.org/core/appview/models" 12 11 ) 13 12 14 - type Artifact struct { 15 - Id uint64 16 - Did string 17 - Rkey string 18 - 19 - RepoAt syntax.ATURI 20 - Tag plumbing.Hash 21 - CreatedAt time.Time 22 - 23 - BlobCid cid.Cid 24 - Name string 25 - Size uint64 26 - MimeType string 27 - } 28 - 29 - func (a *Artifact) ArtifactAt() syntax.ATURI { 30 - return syntax.ATURI(fmt.Sprintf("at://%s/%s/%s", a.Did, tangled.RepoArtifactNSID, a.Rkey)) 31 - } 32 - 33 - func AddArtifact(e Execer, artifact Artifact) error { 13 + func AddArtifact(e Execer, artifact models.Artifact) error { 34 14 _, err := e.Exec( 35 15 `insert or ignore into artifacts ( 36 16 did, ··· 37 57 return err 38 58 } 39 59 40 - func GetArtifact(e Execer, filters ...filter) ([]Artifact, error) { 41 - var artifacts []Artifact 60 + func GetArtifact(e Execer, filters ...filter) ([]models.Artifact, error) { 61 + var artifacts []models.Artifact 42 62 43 63 var conditions []string 44 64 var args []any ··· 74 94 defer rows.Close() 75 95 76 96 for rows.Next() { 77 - var artifact Artifact 97 + var artifact models.Artifact 78 98 var createdAt string 79 99 var tag []byte 80 100 var blobCid string
+47 -46
appview/ingester.go
··· 9 9 "time" 10 10 11 11 "github.com/bluesky-social/indigo/atproto/syntax" 12 - "github.com/bluesky-social/jetstream/pkg/models" 12 + jmodels "github.com/bluesky-social/jetstream/pkg/models" 13 13 "github.com/go-git/go-git/v5/plumbing" 14 14 "github.com/ipfs/go-cid" 15 15 "tangled.org/core/api/tangled" 16 16 "tangled.org/core/appview/config" 17 17 "tangled.org/core/appview/db" 18 + "tangled.org/core/appview/models" 18 19 "tangled.org/core/appview/serververify" 19 20 "tangled.org/core/appview/validator" 20 21 "tangled.org/core/idresolver" ··· 31 30 Validator *validator.Validator 32 31 } 33 32 34 - type processFunc func(ctx context.Context, e *models.Event) error 33 + type processFunc func(ctx context.Context, e *jmodels.Event) error 35 34 36 35 func (i *Ingester) Ingest() processFunc { 37 - return func(ctx context.Context, e *models.Event) error { 36 + return func(ctx context.Context, e *jmodels.Event) error { 38 37 var err error 39 38 defer func() { 40 39 eventTime := e.TimeUS ··· 46 45 47 46 l := i.Logger.With("kind", e.Kind) 48 47 switch e.Kind { 49 - case models.EventKindAccount: 48 + case jmodels.EventKindAccount: 50 49 if !e.Account.Active && *e.Account.Status == "deactivated" { 51 50 err = i.IdResolver.InvalidateIdent(ctx, e.Account.Did) 52 51 } 53 - case models.EventKindIdentity: 52 + case jmodels.EventKindIdentity: 54 53 err = i.IdResolver.InvalidateIdent(ctx, e.Identity.Did) 55 - case models.EventKindCommit: 54 + case jmodels.EventKindCommit: 56 55 switch e.Commit.Collection { 57 56 case tangled.GraphFollowNSID: 58 57 err = i.ingestFollow(e) ··· 92 91 } 93 92 } 94 93 95 - func (i *Ingester) ingestStar(e *models.Event) error { 94 + func (i *Ingester) ingestStar(e *jmodels.Event) error { 96 95 var err error 97 96 did := e.Did 98 97 ··· 100 99 l = l.With("nsid", e.Commit.Collection) 101 100 102 101 switch e.Commit.Operation { 103 - case models.CommitOperationCreate, models.CommitOperationUpdate: 102 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 104 103 var subjectUri syntax.ATURI 105 104 106 105 raw := json.RawMessage(e.Commit.Record) ··· 121 120 RepoAt: subjectUri, 122 121 Rkey: e.Commit.RKey, 123 122 }) 124 - case models.CommitOperationDelete: 123 + case jmodels.CommitOperationDelete: 125 124 err = db.DeleteStarByRkey(i.Db, did, e.Commit.RKey) 126 125 } 127 126 ··· 132 131 return nil 133 132 } 134 133 135 - func (i *Ingester) ingestFollow(e *models.Event) error { 134 + func (i *Ingester) ingestFollow(e *jmodels.Event) error { 136 135 var err error 137 136 did := e.Did 138 137 ··· 140 139 l = l.With("nsid", e.Commit.Collection) 141 140 142 141 switch e.Commit.Operation { 143 - case models.CommitOperationCreate, models.CommitOperationUpdate: 142 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 144 143 raw := json.RawMessage(e.Commit.Record) 145 144 record := tangled.GraphFollow{} 146 145 err = json.Unmarshal(raw, &record) ··· 154 153 SubjectDid: record.Subject, 155 154 Rkey: e.Commit.RKey, 156 155 }) 157 - case models.CommitOperationDelete: 156 + case jmodels.CommitOperationDelete: 158 157 err = db.DeleteFollowByRkey(i.Db, did, e.Commit.RKey) 159 158 } 160 159 ··· 165 164 return nil 166 165 } 167 166 168 - func (i *Ingester) ingestPublicKey(e *models.Event) error { 167 + func (i *Ingester) ingestPublicKey(e *jmodels.Event) error { 169 168 did := e.Did 170 169 var err error 171 170 ··· 173 172 l = l.With("nsid", e.Commit.Collection) 174 173 175 174 switch e.Commit.Operation { 176 - case models.CommitOperationCreate, models.CommitOperationUpdate: 175 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 177 176 l.Debug("processing add of pubkey") 178 177 raw := json.RawMessage(e.Commit.Record) 179 178 record := tangled.PublicKey{} ··· 186 185 name := record.Name 187 186 key := record.Key 188 187 err = db.AddPublicKey(i.Db, did, name, key, e.Commit.RKey) 189 - case models.CommitOperationDelete: 188 + case jmodels.CommitOperationDelete: 190 189 l.Debug("processing delete of pubkey") 191 190 err = db.DeletePublicKeyByRkey(i.Db, did, e.Commit.RKey) 192 191 } ··· 198 197 return nil 199 198 } 200 199 201 - func (i *Ingester) ingestArtifact(e *models.Event) error { 200 + func (i *Ingester) ingestArtifact(e *jmodels.Event) error { 202 201 did := e.Did 203 202 var err error 204 203 ··· 206 205 l = l.With("nsid", e.Commit.Collection) 207 206 208 207 switch e.Commit.Operation { 209 - case models.CommitOperationCreate, models.CommitOperationUpdate: 208 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 210 209 raw := json.RawMessage(e.Commit.Record) 211 210 record := tangled.RepoArtifact{} 212 211 err = json.Unmarshal(raw, &record) ··· 235 234 createdAt = time.Now() 236 235 } 237 236 238 - artifact := db.Artifact{ 237 + artifact := models.Artifact{ 239 238 Did: did, 240 239 Rkey: e.Commit.RKey, 241 240 RepoAt: repoAt, ··· 248 247 } 249 248 250 249 err = db.AddArtifact(i.Db, artifact) 251 - case models.CommitOperationDelete: 250 + case jmodels.CommitOperationDelete: 252 251 err = db.DeleteArtifact(i.Db, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey)) 253 252 } 254 253 ··· 259 258 return nil 260 259 } 261 260 262 - func (i *Ingester) ingestProfile(e *models.Event) error { 261 + func (i *Ingester) ingestProfile(e *jmodels.Event) error { 263 262 did := e.Did 264 263 var err error 265 264 ··· 271 270 } 272 271 273 272 switch e.Commit.Operation { 274 - case models.CommitOperationCreate, models.CommitOperationUpdate: 273 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 275 274 raw := json.RawMessage(e.Commit.Record) 276 275 record := tangled.ActorProfile{} 277 276 err = json.Unmarshal(raw, &record) ··· 339 338 } 340 339 341 340 err = db.UpsertProfile(tx, &profile) 342 - case models.CommitOperationDelete: 341 + case jmodels.CommitOperationDelete: 343 342 err = db.DeleteArtifact(i.Db, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey)) 344 343 } 345 344 ··· 350 349 return nil 351 350 } 352 351 353 - func (i *Ingester) ingestSpindleMember(ctx context.Context, e *models.Event) error { 352 + func (i *Ingester) ingestSpindleMember(ctx context.Context, e *jmodels.Event) error { 354 353 did := e.Did 355 354 var err error 356 355 ··· 358 357 l = l.With("nsid", e.Commit.Collection) 359 358 360 359 switch e.Commit.Operation { 361 - case models.CommitOperationCreate: 360 + case jmodels.CommitOperationCreate: 362 361 raw := json.RawMessage(e.Commit.Record) 363 362 record := tangled.SpindleMember{} 364 363 err = json.Unmarshal(raw, &record) ··· 403 402 } 404 403 405 404 l.Info("added spindle member") 406 - case models.CommitOperationDelete: 405 + case jmodels.CommitOperationDelete: 407 406 rkey := e.Commit.RKey 408 407 409 408 ddb, ok := i.Db.Execer.(*db.DB) ··· 456 455 return nil 457 456 } 458 457 459 - func (i *Ingester) ingestSpindle(ctx context.Context, e *models.Event) error { 458 + func (i *Ingester) ingestSpindle(ctx context.Context, e *jmodels.Event) error { 460 459 did := e.Did 461 460 var err error 462 461 ··· 464 463 l = l.With("nsid", e.Commit.Collection) 465 464 466 465 switch e.Commit.Operation { 467 - case models.CommitOperationCreate: 466 + case jmodels.CommitOperationCreate: 468 467 raw := json.RawMessage(e.Commit.Record) 469 468 record := tangled.Spindle{} 470 469 err = json.Unmarshal(raw, &record) ··· 502 501 503 502 return nil 504 503 505 - case models.CommitOperationDelete: 504 + case jmodels.CommitOperationDelete: 506 505 instance := e.Commit.RKey 507 506 508 507 ddb, ok := i.Db.Execer.(*db.DB) ··· 570 569 return nil 571 570 } 572 571 573 - func (i *Ingester) ingestString(e *models.Event) error { 572 + func (i *Ingester) ingestString(e *jmodels.Event) error { 574 573 did := e.Did 575 574 rkey := e.Commit.RKey 576 575 ··· 585 584 } 586 585 587 586 switch e.Commit.Operation { 588 - case models.CommitOperationCreate, models.CommitOperationUpdate: 587 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 589 588 raw := json.RawMessage(e.Commit.Record) 590 589 record := tangled.String{} 591 590 err = json.Unmarshal(raw, &record) ··· 608 607 609 608 return nil 610 609 611 - case models.CommitOperationDelete: 610 + case jmodels.CommitOperationDelete: 612 611 if err := db.DeleteString( 613 612 ddb, 614 613 db.FilterEq("did", did), ··· 624 623 return nil 625 624 } 626 625 627 - func (i *Ingester) ingestKnotMember(e *models.Event) error { 626 + func (i *Ingester) ingestKnotMember(e *jmodels.Event) error { 628 627 did := e.Did 629 628 var err error 630 629 ··· 632 631 l = l.With("nsid", e.Commit.Collection) 633 632 634 633 switch e.Commit.Operation { 635 - case models.CommitOperationCreate: 634 + case jmodels.CommitOperationCreate: 636 635 raw := json.RawMessage(e.Commit.Record) 637 636 record := tangled.KnotMember{} 638 637 err = json.Unmarshal(raw, &record) ··· 662 661 } 663 662 664 663 l.Info("added knot member") 665 - case models.CommitOperationDelete: 664 + case jmodels.CommitOperationDelete: 666 665 // we don't store knot members in a table (like we do for spindle) 667 666 // and we can't remove this just yet. possibly fixed if we switch 668 667 // to either: ··· 676 675 return nil 677 676 } 678 677 679 - func (i *Ingester) ingestKnot(e *models.Event) error { 678 + func (i *Ingester) ingestKnot(e *jmodels.Event) error { 680 679 did := e.Did 681 680 var err error 682 681 ··· 684 683 l = l.With("nsid", e.Commit.Collection) 685 684 686 685 switch e.Commit.Operation { 687 - case models.CommitOperationCreate: 686 + case jmodels.CommitOperationCreate: 688 687 raw := json.RawMessage(e.Commit.Record) 689 688 record := tangled.Knot{} 690 689 err = json.Unmarshal(raw, &record) ··· 719 718 720 719 return nil 721 720 722 - case models.CommitOperationDelete: 721 + case jmodels.CommitOperationDelete: 723 722 domain := e.Commit.RKey 724 723 725 724 ddb, ok := i.Db.Execer.(*db.DB) ··· 779 778 780 779 return nil 781 780 } 782 - func (i *Ingester) ingestIssue(ctx context.Context, e *models.Event) error { 781 + func (i *Ingester) ingestIssue(ctx context.Context, e *jmodels.Event) error { 783 782 did := e.Did 784 783 rkey := e.Commit.RKey 785 784 ··· 794 793 } 795 794 796 795 switch e.Commit.Operation { 797 - case models.CommitOperationCreate, models.CommitOperationUpdate: 796 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 798 797 raw := json.RawMessage(e.Commit.Record) 799 798 record := tangled.RepoIssue{} 800 799 err = json.Unmarshal(raw, &record) ··· 830 829 831 830 return nil 832 831 833 - case models.CommitOperationDelete: 832 + case jmodels.CommitOperationDelete: 834 833 if err := db.DeleteIssues( 835 834 ddb, 836 835 db.FilterEq("did", did), ··· 846 845 return nil 847 846 } 848 847 849 - func (i *Ingester) ingestIssueComment(e *models.Event) error { 848 + func (i *Ingester) ingestIssueComment(e *jmodels.Event) error { 850 849 did := e.Did 851 850 rkey := e.Commit.RKey 852 851 ··· 861 860 } 862 861 863 862 switch e.Commit.Operation { 864 - case models.CommitOperationCreate, models.CommitOperationUpdate: 863 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 865 864 raw := json.RawMessage(e.Commit.Record) 866 865 record := tangled.RepoIssueComment{} 867 866 err = json.Unmarshal(raw, &record) ··· 885 884 886 885 return nil 887 886 888 - case models.CommitOperationDelete: 887 + case jmodels.CommitOperationDelete: 889 888 if err := db.DeleteIssueComments( 890 889 ddb, 891 890 db.FilterEq("did", did), ··· 900 899 return nil 901 900 } 902 901 903 - func (i *Ingester) ingestLabelDefinition(e *models.Event) error { 902 + func (i *Ingester) ingestLabelDefinition(e *jmodels.Event) error { 904 903 did := e.Did 905 904 rkey := e.Commit.RKey 906 905 ··· 915 914 } 916 915 917 916 switch e.Commit.Operation { 918 - case models.CommitOperationCreate, models.CommitOperationUpdate: 917 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 919 918 raw := json.RawMessage(e.Commit.Record) 920 919 record := tangled.LabelDefinition{} 921 920 err = json.Unmarshal(raw, &record) ··· 939 938 940 939 return nil 941 940 942 - case models.CommitOperationDelete: 941 + case jmodels.CommitOperationDelete: 943 942 if err := db.DeleteLabelDefinition( 944 943 ddb, 945 944 db.FilterEq("did", did),
+30
appview/models/artifact.go
··· 1 + package models 2 + 3 + import ( 4 + "fmt" 5 + "time" 6 + 7 + "github.com/bluesky-social/indigo/atproto/syntax" 8 + "github.com/go-git/go-git/v5/plumbing" 9 + "github.com/ipfs/go-cid" 10 + "tangled.org/core/api/tangled" 11 + ) 12 + 13 + type Artifact struct { 14 + Id uint64 15 + Did string 16 + Rkey string 17 + 18 + RepoAt syntax.ATURI 19 + Tag plumbing.Hash 20 + CreatedAt time.Time 21 + 22 + BlobCid cid.Cid 23 + Name string 24 + Size uint64 25 + MimeType string 26 + } 27 + 28 + func (a *Artifact) ArtifactAt() syntax.ATURI { 29 + return syntax.ATURI(fmt.Sprintf("at://%s/%s/%s", a.Did, tangled.RepoArtifactNSID, a.Rkey)) 30 + }
+4 -3
appview/pages/pages.go
··· 20 20 "tangled.org/core/appview/commitverify" 21 21 "tangled.org/core/appview/config" 22 22 "tangled.org/core/appview/db" 23 + "tangled.org/core/appview/models" 23 24 "tangled.org/core/appview/oauth" 24 25 "tangled.org/core/appview/pages/markup" 25 26 "tangled.org/core/appview/pages/repoinfo" ··· 730 729 RepoInfo repoinfo.RepoInfo 731 730 Active string 732 731 types.RepoTagsResponse 733 - ArtifactMap map[plumbing.Hash][]db.Artifact 734 - DanglingArtifacts []db.Artifact 732 + ArtifactMap map[plumbing.Hash][]models.Artifact 733 + DanglingArtifacts []models.Artifact 735 734 } 736 735 737 736 func (p *Pages) RepoTags(w io.Writer, params RepoTagsParams) error { ··· 742 741 type RepoArtifactParams struct { 743 742 LoggedInUser *oauth.User 744 743 RepoInfo repoinfo.RepoInfo 745 - Artifact db.Artifact 744 + Artifact models.Artifact 746 745 } 747 746 748 747 func (p *Pages) RepoArtifactFragment(w io.Writer, params RepoArtifactParams) error {
+2 -1
appview/repo/artifact.go
··· 18 18 "github.com/ipfs/go-cid" 19 19 "tangled.org/core/api/tangled" 20 20 "tangled.org/core/appview/db" 21 + "tangled.org/core/appview/models" 21 22 "tangled.org/core/appview/pages" 22 23 "tangled.org/core/appview/reporesolver" 23 24 "tangled.org/core/appview/xrpcclient" ··· 101 100 } 102 101 defer tx.Rollback() 103 102 104 - artifact := db.Artifact{ 103 + artifact := models.Artifact{ 105 104 Did: user.Did, 106 105 Rkey: rkey, 107 106 RepoAt: f.RepoAt(),
+3 -2
appview/repo/repo.go
··· 24 24 "tangled.org/core/appview/commitverify" 25 25 "tangled.org/core/appview/config" 26 26 "tangled.org/core/appview/db" 27 + "tangled.org/core/appview/models" 27 28 "tangled.org/core/appview/notify" 28 29 "tangled.org/core/appview/oauth" 29 30 "tangled.org/core/appview/pages" ··· 576 575 } 577 576 578 577 // convert artifacts to map for easy UI building 579 - artifactMap := make(map[plumbing.Hash][]db.Artifact) 578 + artifactMap := make(map[plumbing.Hash][]models.Artifact) 580 579 for _, a := range artifacts { 581 580 artifactMap[a.Tag] = append(artifactMap[a.Tag], a) 582 581 } 583 582 584 - var danglingArtifacts []db.Artifact 583 + var danglingArtifacts []models.Artifact 585 584 for _, a := range artifacts { 586 585 found := false 587 586 for _, t := range result.Tags {