mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-22 04:47:29 -06:00
[feature] Allow users to export data via the settings panel (#3140)
* [feature] Allow users to export data via the settings panel * rename/move some stuff
This commit is contained in:
parent
43519324b3
commit
38f041cea1
32 changed files with 2102 additions and 7 deletions
|
|
@ -106,6 +106,14 @@ func (l *listDB) GetListsForAccountID(ctx context.Context, accountID string) ([]
|
|||
return l.GetListsByIDs(ctx, listIDs)
|
||||
}
|
||||
|
||||
func (l *listDB) CountListsForAccountID(ctx context.Context, accountID string) (int, error) {
|
||||
return l.db.
|
||||
NewSelect().
|
||||
Table("lists").
|
||||
Where("? = ?", bun.Ident("account_id"), accountID).
|
||||
Count(ctx)
|
||||
}
|
||||
|
||||
func (l *listDB) PopulateList(ctx context.Context, list *gtsmodel.List) error {
|
||||
var (
|
||||
err error
|
||||
|
|
|
|||
|
|
@ -178,6 +178,11 @@ func (r *relationshipDB) GetAccountBlocks(ctx context.Context, accountID string,
|
|||
return r.GetBlocksByIDs(ctx, blockIDs)
|
||||
}
|
||||
|
||||
func (r *relationshipDB) CountAccountBlocks(ctx context.Context, accountID string) (int, error) {
|
||||
blockIDs, err := r.GetAccountBlockIDs(ctx, accountID, nil)
|
||||
return len(blockIDs), err
|
||||
}
|
||||
|
||||
func (r *relationshipDB) GetAccountFollowIDs(ctx context.Context, accountID string, page *paging.Page) ([]string, error) {
|
||||
return loadPagedIDs(&r.state.Caches.DB.FollowIDs, ">"+accountID, page, func() ([]string, error) {
|
||||
var followIDs []string
|
||||
|
|
|
|||
|
|
@ -77,6 +77,11 @@ func (r *relationshipDB) GetMute(
|
|||
)
|
||||
}
|
||||
|
||||
func (r *relationshipDB) CountAccountMutes(ctx context.Context, accountID string) (int, error) {
|
||||
muteIDs, err := r.getAccountMuteIDs(ctx, accountID, nil)
|
||||
return len(muteIDs), err
|
||||
}
|
||||
|
||||
func (r *relationshipDB) getMutesByIDs(ctx context.Context, ids []string) ([]*gtsmodel.UserMute, error) {
|
||||
// Load all mutes IDs via cache loader callbacks.
|
||||
mutes, err := r.state.Caches.DB.UserMute.LoadIDs("ID",
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ type List interface {
|
|||
// GetListsForAccountID gets all lists owned by the given accountID.
|
||||
GetListsForAccountID(ctx context.Context, accountID string) ([]*gtsmodel.List, error)
|
||||
|
||||
// CountListsForAccountID counts the number of lists owned by the given accountID.
|
||||
CountListsForAccountID(ctx context.Context, accountID string) (int, error)
|
||||
|
||||
// PopulateList ensures that the list's struct fields are populated.
|
||||
PopulateList(ctx context.Context, list *gtsmodel.List) error
|
||||
|
||||
|
|
|
|||
|
|
@ -179,6 +179,9 @@ type Relationship interface {
|
|||
// GetAccountBlockIDs is like GetAccountBlocks, but returns just IDs.
|
||||
GetAccountBlockIDs(ctx context.Context, accountID string, page *paging.Page) ([]string, error)
|
||||
|
||||
// CountAccountBlocks counts the number of blocks owned by the given account.
|
||||
CountAccountBlocks(ctx context.Context, accountID string) (int, error)
|
||||
|
||||
// GetNote gets a private note from a source account on a target account, if it exists.
|
||||
GetNote(ctx context.Context, sourceAccountID string, targetAccountID string) (*gtsmodel.AccountNote, error)
|
||||
|
||||
|
|
@ -197,6 +200,9 @@ type Relationship interface {
|
|||
// GetMute returns the mute from account1 targeting account2, if it exists, or an error if it doesn't.
|
||||
GetMute(ctx context.Context, account1 string, account2 string) (*gtsmodel.UserMute, error)
|
||||
|
||||
// CountAccountMutes counts the number of mutes owned by the given account.
|
||||
CountAccountMutes(ctx context.Context, accountID string) (int, error)
|
||||
|
||||
// PutMute attempts to insert or update the given account mute in the database.
|
||||
PutMute(ctx context.Context, mute *gtsmodel.UserMute) error
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue