visibility

package
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2022 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Filter

type Filter interface {
	// StatusVisible returns true if targetStatus is visible to requestingAccount, based on the
	// privacy settings of the status, and any blocks/mutes that might exist between the two accounts
	// or account domains, and other relevant accounts mentioned in or replied to by the status.
	StatusVisible(ctx context.Context, targetStatus *gtsmodel.Status, requestingAccount *gtsmodel.Account) (bool, error)

	// StatusesVisible calls StatusVisible for each status in the statuses slice, and returns a slice of only
	// statuses which are visible to the requestingAccount.
	StatusesVisible(ctx context.Context, statuses []*gtsmodel.Status, requestingAccount *gtsmodel.Account) ([]*gtsmodel.Status, error)

	// StatusHometimelineable returns true if targetStatus should be in the home timeline of the requesting account.
	//
	// This function will call StatusVisible internally, so it's not necessary to call it beforehand.
	StatusHometimelineable(ctx context.Context, targetStatus *gtsmodel.Status, requestingAccount *gtsmodel.Account) (bool, error)

	// StatusPublictimelineable returns true if targetStatus should be in the public timeline of the requesting account.
	//
	// This function will call StatusVisible internally, so it's not necessary to call it beforehand.
	StatusPublictimelineable(ctx context.Context, targetStatus *gtsmodel.Status, timelineOwnerAccount *gtsmodel.Account) (bool, error)

	// StatusBoostable returns true if targetStatus can be boosted by the requesting account.
	//
	// this function will call StatusVisible internally so it's not necessary to call it beforehand.
	StatusBoostable(ctx context.Context, targetStatus *gtsmodel.Status, requestingAccount *gtsmodel.Account) (bool, error)
}

Filter packages up a bunch of logic for checking whether given statuses or accounts are visible to a requester.

func NewFilter

func NewFilter(db db.DB) Filter

NewFilter returns a new Filter interface that will use the provided database.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL