review changes

This commit is contained in:
tsmethurst 2021-09-09 09:42:15 +02:00
commit 3db03abcc4
4 changed files with 39 additions and 39 deletions

View file

@ -66,14 +66,14 @@ func (e *exporter) accountEncode(ctx context.Context, f *os.File, a *transmodel.
//
// Beware, the 'type' key on the passed interface should already have been set, since simpleEncode won't know
// what type it is! If you try to decode stuff you've encoded with a missing type key, you're going to have a bad time.
func (e *exporter) simpleEncode(ctx context.Context, f *os.File, i interface{}, id string) error {
func (e *exporter) simpleEncode(ctx context.Context, file *os.File, i interface{}, id string) error {
_, alreadyWritten := e.writtenIDs[id]
if alreadyWritten {
// this exporter has already exported an entry with this ID, no need to do it twice
return nil
}
err := json.NewEncoder(f).Encode(i)
err := json.NewEncoder(file).Encode(i)
if err != nil {
return fmt.Errorf("simpleEncode: error encoding entry with id %s: %s", id, err)
}

View file

@ -25,7 +25,7 @@ import (
transmodel "github.com/superseriousbusiness/gotosocial/internal/trans/model"
)
func (e *exporter) exportAccounts(ctx context.Context, where []db.Where, f *os.File) ([]*transmodel.Account, error) {
func (e *exporter) exportAccounts(ctx context.Context, where []db.Where, file *os.File) ([]*transmodel.Account, error) {
// select using the 'where' we've been provided
accounts := []*transmodel.Account{}
if err := e.db.GetWhere(ctx, where, &accounts); err != nil {
@ -34,7 +34,7 @@ func (e *exporter) exportAccounts(ctx context.Context, where []db.Where, f *os.F
// write any accounts found to file
for _, a := range accounts {
if err := e.accountEncode(ctx, f, a); err != nil {
if err := e.accountEncode(ctx, file, a); err != nil {
return nil, fmt.Errorf("exportAccounts: error encoding account: %s", err)
}
}
@ -42,7 +42,7 @@ func (e *exporter) exportAccounts(ctx context.Context, where []db.Where, f *os.F
return accounts, nil
}
func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Account, f *os.File) ([]*transmodel.Block, error) {
func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Account, file *os.File) ([]*transmodel.Block, error) {
blocksUnique := make(map[string]*transmodel.Block)
// for each account we want to export both where it's blocking and where it's blocked
@ -55,7 +55,7 @@ func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Acco
}
for _, b := range blocking {
b.Type = transmodel.TransBlock
if err := e.simpleEncode(ctx, f, b, b.ID); err != nil {
if err := e.simpleEncode(ctx, file, b, b.ID); err != nil {
return nil, fmt.Errorf("exportBlocks: error encoding block owned by account %s: %s", a.ID, err)
}
blocksUnique[b.ID] = b
@ -69,7 +69,7 @@ func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Acco
}
for _, b := range blocked {
b.Type = transmodel.TransBlock
if err := e.simpleEncode(ctx, f, b, b.ID); err != nil {
if err := e.simpleEncode(ctx, file, b, b.ID); err != nil {
return nil, fmt.Errorf("exportBlocks: error encoding block targeting account %s: %s", a.ID, err)
}
blocksUnique[b.ID] = b
@ -85,7 +85,7 @@ func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Acco
return blocks, nil
}
func (e *exporter) exportDomainBlocks(ctx context.Context, f *os.File) ([]*transmodel.DomainBlock, error) {
func (e *exporter) exportDomainBlocks(ctx context.Context, file *os.File) ([]*transmodel.DomainBlock, error) {
domainBlocks := []*transmodel.DomainBlock{}
if err := e.db.GetAll(ctx, &domainBlocks); err != nil {
@ -94,7 +94,7 @@ func (e *exporter) exportDomainBlocks(ctx context.Context, f *os.File) ([]*trans
for _, b := range domainBlocks {
b.Type = transmodel.TransDomainBlock
if err := e.simpleEncode(ctx, f, b, b.ID); err != nil {
if err := e.simpleEncode(ctx, file, b, b.ID); err != nil {
return nil, fmt.Errorf("exportBlocks: error encoding domain block: %s", err)
}
}
@ -102,7 +102,7 @@ func (e *exporter) exportDomainBlocks(ctx context.Context, f *os.File) ([]*trans
return domainBlocks, nil
}
func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Account, f *os.File) ([]*transmodel.Follow, error) {
func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Account, file *os.File) ([]*transmodel.Follow, error) {
followsUnique := make(map[string]*transmodel.Follow)
// for each account we want to export both where it's following and where it's followed
@ -115,7 +115,7 @@ func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Acc
}
for _, follow := range following {
follow.Type = transmodel.TransFollow
if err := e.simpleEncode(ctx, f, follow, follow.ID); err != nil {
if err := e.simpleEncode(ctx, file, follow, follow.ID); err != nil {
return nil, fmt.Errorf("exportFollows: error encoding follow owned by account %s: %s", a.ID, err)
}
followsUnique[follow.ID] = follow
@ -129,7 +129,7 @@ func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Acc
}
for _, follow := range followed {
follow.Type = transmodel.TransFollow
if err := e.simpleEncode(ctx, f, follow, follow.ID); err != nil {
if err := e.simpleEncode(ctx, file, follow, follow.ID); err != nil {
return nil, fmt.Errorf("exportFollows: error encoding follow targeting account %s: %s", a.ID, err)
}
followsUnique[follow.ID] = follow
@ -145,7 +145,7 @@ func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Acc
return follows, nil
}
func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmodel.Account, f *os.File) ([]*transmodel.FollowRequest, error) {
func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmodel.Account, file *os.File) ([]*transmodel.FollowRequest, error) {
frsUnique := make(map[string]*transmodel.FollowRequest)
// for each account we want to export both where it's following and where it's followed
@ -158,7 +158,7 @@ func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmo
}
for _, fr := range requesting {
fr.Type = transmodel.TransFollowRequest
if err := e.simpleEncode(ctx, f, fr, fr.ID); err != nil {
if err := e.simpleEncode(ctx, file, fr, fr.ID); err != nil {
return nil, fmt.Errorf("exportFollowRequests: error encoding follow request owned by account %s: %s", a.ID, err)
}
frsUnique[fr.ID] = fr
@ -172,7 +172,7 @@ func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmo
}
for _, fr := range requested {
fr.Type = transmodel.TransFollowRequest
if err := e.simpleEncode(ctx, f, fr, fr.ID); err != nil {
if err := e.simpleEncode(ctx, file, fr, fr.ID); err != nil {
return nil, fmt.Errorf("exportFollowRequests: error encoding follow request targeting account %s: %s", a.ID, err)
}
frsUnique[fr.ID] = fr
@ -188,7 +188,7 @@ func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmo
return followRequests, nil
}
func (e *exporter) exportInstances(ctx context.Context, f *os.File) ([]*transmodel.Instance, error) {
func (e *exporter) exportInstances(ctx context.Context, file *os.File) ([]*transmodel.Instance, error) {
instances := []*transmodel.Instance{}
if err := e.db.GetAll(ctx, &instances); err != nil {
@ -197,7 +197,7 @@ func (e *exporter) exportInstances(ctx context.Context, f *os.File) ([]*transmod
for _, u := range instances {
u.Type = transmodel.TransInstance
if err := e.simpleEncode(ctx, f, u, u.ID); err != nil {
if err := e.simpleEncode(ctx, file, u, u.ID); err != nil {
return nil, fmt.Errorf("exportInstances: error encoding instance: %s", err)
}
}
@ -205,7 +205,7 @@ func (e *exporter) exportInstances(ctx context.Context, f *os.File) ([]*transmod
return instances, nil
}
func (e *exporter) exportUsers(ctx context.Context, f *os.File) ([]*transmodel.User, error) {
func (e *exporter) exportUsers(ctx context.Context, file *os.File) ([]*transmodel.User, error) {
users := []*transmodel.User{}
if err := e.db.GetAll(ctx, &users); err != nil {
@ -214,7 +214,7 @@ func (e *exporter) exportUsers(ctx context.Context, f *os.File) ([]*transmodel.U
for _, u := range users {
u.Type = transmodel.TransUser
if err := e.simpleEncode(ctx, f, u, u.ID); err != nil {
if err := e.simpleEncode(ctx, file, u, u.ID); err != nil {
return nil, fmt.Errorf("exportUsers: error encoding user: %s", err)
}
}

View file

@ -32,19 +32,19 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
return errors.New("ExportMinimal: path empty")
}
f, err := os.Create(path)
file, err := os.Create(path)
if err != nil {
return fmt.Errorf("ExportMinimal: couldn't export to %s: %s", path, err)
}
// export all local accounts we have in the database
localAccounts, err := e.exportAccounts(ctx, []db.Where{{Key: "domain", Value: nil}}, f)
localAccounts, err := e.exportAccounts(ctx, []db.Where{{Key: "domain", Value: nil}}, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting accounts: %s", err)
}
// export all blocks that relate to local accounts
blocks, err := e.exportBlocks(ctx, localAccounts, f)
blocks, err := e.exportBlocks(ctx, localAccounts, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting blocks: %s", err)
}
@ -54,7 +54,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
for _, b := range blocks {
_, alreadyWritten := e.writtenIDs[b.AccountID]
if !alreadyWritten {
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: b.AccountID}}, f)
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: b.AccountID}}, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting block owner account: %s", err)
}
@ -62,7 +62,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
_, alreadyWritten = e.writtenIDs[b.TargetAccountID]
if !alreadyWritten {
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: b.TargetAccountID}}, f)
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: b.TargetAccountID}}, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting block target account: %s", err)
}
@ -70,7 +70,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
}
// export all follows that relate to local accounts
follows, err := e.exportFollows(ctx, localAccounts, f)
follows, err := e.exportFollows(ctx, localAccounts, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting follows: %s", err)
}
@ -80,7 +80,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
for _, follow := range follows {
_, alreadyWritten := e.writtenIDs[follow.AccountID]
if !alreadyWritten {
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: follow.AccountID}}, f)
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: follow.AccountID}}, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting follow owner account: %s", err)
}
@ -88,7 +88,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
_, alreadyWritten = e.writtenIDs[follow.TargetAccountID]
if !alreadyWritten {
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: follow.TargetAccountID}}, f)
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: follow.TargetAccountID}}, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting follow target account: %s", err)
}
@ -96,17 +96,17 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
}
// export all follow requests that relate to local accounts
frs, err := e.exportFollowRequests(ctx, localAccounts, f)
followRequests, err := e.exportFollowRequests(ctx, localAccounts, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting follow requests: %s", err)
}
// for each follow request, make sure we've written out the account owning it, or targeted by it --
// this might include non-local accounts, but we need these so we don't lose anything
for _, fr := range frs {
for _, fr := range followRequests {
_, alreadyWritten := e.writtenIDs[fr.AccountID]
if !alreadyWritten {
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: fr.AccountID}}, f)
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: fr.AccountID}}, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting follow request owner account: %s", err)
}
@ -114,7 +114,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
_, alreadyWritten = e.writtenIDs[fr.TargetAccountID]
if !alreadyWritten {
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: fr.TargetAccountID}}, f)
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: fr.TargetAccountID}}, file)
if err != nil {
return fmt.Errorf("ExportMinimal: error exporting follow request target account: %s", err)
}
@ -122,17 +122,17 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
}
// export all domain blocks
if _, err := e.exportDomainBlocks(ctx, f); err != nil {
if _, err := e.exportDomainBlocks(ctx, file); err != nil {
return fmt.Errorf("ExportMinimal: error exporting domain blocks: %s", err)
}
// export all users
if _, err := e.exportUsers(ctx, f); err != nil {
if _, err := e.exportUsers(ctx, file); err != nil {
return fmt.Errorf("ExportMinimal: error exporting users: %s", err)
}
// export all instances
if _, err := e.exportInstances(ctx, f); err != nil {
if _, err := e.exportInstances(ctx, file); err != nil {
return fmt.Errorf("ExportMinimal: error exporting instances: %s", err)
}
@ -142,9 +142,9 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
Not: true,
Value: nil,
}}
if _, err := e.exportAccounts(ctx, whereSuspended, f); err != nil {
if _, err := e.exportAccounts(ctx, whereSuspended, file); err != nil {
return fmt.Errorf("ExportMinimal: error exporting suspended accounts: %s", err)
}
return neatClose(f)
return neatClose(file)
}

View file

@ -34,12 +34,12 @@ func (i *importer) Import(ctx context.Context, path string) error {
return errors.New("Export: path empty")
}
f, err := os.Open(path)
file, err := os.Open(path)
if err != nil {
return fmt.Errorf("Import: couldn't export to %s: %s", path, err)
}
decoder := json.NewDecoder(f)
decoder := json.NewDecoder(file)
decoder.UseNumber()
for {
@ -48,7 +48,7 @@ func (i *importer) Import(ctx context.Context, path string) error {
if err != nil {
if err == io.EOF {
i.log.Infof("Import: reached end of file")
return neatClose(f)
return neatClose(file)
}
return fmt.Errorf("Import: error decoding in readLoop: %s", err)
}