mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-15 08:17:30 -06:00
[chore] media and emoji refactoring (#3000)
* start updating media manager interface ready for storing attachments / emoji right away
* store emoji and media as uncached immediately, then (re-)cache on Processing{}.Load()
* remove now unused media workers
* fix tests and issues
* fix another test!
* fix emoji activitypub uri setting behaviour, fix remainder of test compilation issues
* fix more tests
* fix (most of) remaining tests, add debouncing to repeatedly failing media / emojis
* whoops, rebase issue
* remove kim's whacky experiments
* do some reshuffling, ensure emoji uri gets set
* ensure marked as not cached on cleanup
* tweaks to media / emoji processing to handle context canceled better
* ensure newly fetched emojis actually get set in returned slice
* use different varnames to be a bit more obvious
* move emoji refresh rate limiting to dereferencer
* add exported dereferencer functions for remote media, use these for recaching in processor
* add check for nil attachment in updateAttachment()
* remove unused emoji and media fields + columns
* see previous commit
* fix old migrations expecting image_updated_at to exists (from copies of old models)
* remove freshness checking code (seems to be broken...)
* fix error arg causing nil ptr exception
* finish documentating functions with comments, slight tweaks to media / emoji deref error logic
* remove some extra unneeded boolean checking
* finish writing documentation (code comments) for exported media manager methods
* undo changes to migration snapshot gtsmodels, updated failing migration to have its own snapshot
* move doesColumnExist() to util.go in migrations package
This commit is contained in:
parent
fa710057c8
commit
21bb324156
48 changed files with 2578 additions and 1926 deletions
|
|
@ -30,8 +30,8 @@ type MediaAttachment struct {
|
|||
StatusID string `bun:"type:CHAR(26),nullzero"` // ID of the status to which this is attached
|
||||
URL string `bun:",nullzero"` // Where can the attachment be retrieved on *this* server
|
||||
RemoteURL string `bun:",nullzero"` // Where can the attachment be retrieved on a remote server (empty for local media)
|
||||
Type FileType `bun:",nullzero,notnull"` // Type of file (image/gifv/audio/video/unknown)
|
||||
FileMeta FileMeta `bun:",embed:,nullzero,notnull"` // Metadata about the file
|
||||
Type FileType `bun:",notnull"` // Type of file (image/gifv/audio/video/unknown)
|
||||
FileMeta FileMeta `bun:",embed:,notnull"` // Metadata about the file
|
||||
AccountID string `bun:"type:CHAR(26),nullzero,notnull"` // To which account does this attachment belong
|
||||
Description string `bun:""` // Description of the attachment (for screenreaders)
|
||||
ScheduledStatusID string `bun:"type:CHAR(26),nullzero"` // To which scheduled status does this attachment belong
|
||||
|
|
@ -44,22 +44,30 @@ type MediaAttachment struct {
|
|||
Cached *bool `bun:",nullzero,notnull,default:false"` // Is this attachment currently cached by our instance?
|
||||
}
|
||||
|
||||
// IsLocal returns whether media attachment is local.
|
||||
func (m *MediaAttachment) IsLocal() bool {
|
||||
return m.RemoteURL == ""
|
||||
}
|
||||
|
||||
// IsRemote returns whether media attachment is remote.
|
||||
func (m *MediaAttachment) IsRemote() bool {
|
||||
return m.RemoteURL != ""
|
||||
}
|
||||
|
||||
// File refers to the metadata for the whole file
|
||||
type File struct {
|
||||
Path string `bun:",nullzero,notnull"` // Path of the file in storage.
|
||||
ContentType string `bun:",nullzero,notnull"` // MIME content type of the file.
|
||||
FileSize int `bun:",notnull"` // File size in bytes
|
||||
UpdatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // When was the file last updated.
|
||||
Path string `bun:",notnull"` // Path of the file in storage.
|
||||
ContentType string `bun:",notnull"` // MIME content type of the file.
|
||||
FileSize int `bun:",notnull"` // File size in bytes
|
||||
}
|
||||
|
||||
// Thumbnail refers to a small image thumbnail derived from a larger image, video, or audio file.
|
||||
type Thumbnail struct {
|
||||
Path string `bun:",nullzero,notnull"` // Path of the file in storage.
|
||||
ContentType string `bun:",nullzero,notnull"` // MIME content type of the file.
|
||||
FileSize int `bun:",notnull"` // File size in bytes
|
||||
UpdatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // When was the file last updated.
|
||||
URL string `bun:",nullzero"` // What is the URL of the thumbnail on the local server
|
||||
RemoteURL string `bun:",nullzero"` // What is the remote URL of the thumbnail (empty for local media)
|
||||
Path string `bun:",notnull"` // Path of the file in storage.
|
||||
ContentType string `bun:",notnull"` // MIME content type of the file.
|
||||
FileSize int `bun:",notnull"` // File size in bytes
|
||||
URL string `bun:",nullzero"` // What is the URL of the thumbnail on the local server
|
||||
RemoteURL string `bun:",nullzero"` // What is the remote URL of the thumbnail (empty for local media)
|
||||
}
|
||||
|
||||
// ProcessingStatus refers to how far along in the processing stage the attachment is.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue