[chore] media pipeline improvements (#3110)

* don't set emoji / media image paths on failed download, migrate FileType from string to integer

* fix incorrect uses of util.PtrOr, fix returned frontend media

* fix migration not setting arguments correctly in where clause

* fix not providing default with not null column

* whoops

* ensure a default gets set for media attachment file type

* remove the exclusive flag from writing files in disk storage

* rename PtrOr -> PtrOrZero, and rename PtrValueOr -> PtrOrValue to match

* slight wording changes

* use singular / plural word forms (no parentheses), is better for screen readers

* update testmodels with unknown media type to have unset file details, update attachment focus handling converting to frontend, update tests

* store first instance in ffmpeg wasm pool, fill remaining with closed instances
This commit is contained in:
kim
2024-07-17 15:26:33 +00:00
committed by GitHub
parent 0aadc2db2a
commit 72ba5666a6
29 changed files with 669 additions and 399 deletions

View File

@ -117,8 +117,8 @@ func (p *Processor) FollowCreate(ctx context.Context, requestingAccount *gtsmode
if targetAccount.IsLocal() && !*targetAccount.Locked {
rel.Requested = false
rel.Following = true
rel.ShowingReblogs = util.PtrValueOr(fr.ShowReblogs, true)
rel.Notifying = util.PtrValueOr(fr.Notify, false)
rel.ShowingReblogs = util.PtrOrValue(fr.ShowReblogs, true)
rel.Notifying = util.PtrOrValue(fr.Notify, false)
}
// Handle side effects async.

View File

@ -325,8 +325,8 @@ func (p *Processor) emojiUpdateCopy(
// Attempt to create the new local emoji.
emoji, errWithCode := p.createEmoji(ctx,
util.PtrValueOr(shortcode, ""),
util.PtrValueOr(categoryName, ""),
util.PtrOrValue(shortcode, ""),
util.PtrOrValue(categoryName, ""),
data,
)
if errWithCode != nil {

View File

@ -71,7 +71,7 @@ func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, form
FilterID: filter.ID,
Filter: filter,
Keyword: form.Phrase,
WholeWord: util.Ptr(util.PtrValueOr(form.WholeWord, false)),
WholeWord: util.Ptr(util.PtrOrValue(form.WholeWord, false)),
}
filter.Keywords = []*gtsmodel.FilterKeyword{filterKeyword}

View File

@ -108,11 +108,11 @@ func (p *Processor) Update(
if expiresAt != filter.ExpiresAt {
forbiddenFields = append(forbiddenFields, "expires_in")
}
if contextHome != util.PtrValueOr(filter.ContextHome, false) ||
contextNotifications != util.PtrValueOr(filter.ContextNotifications, false) ||
contextPublic != util.PtrValueOr(filter.ContextPublic, false) ||
contextThread != util.PtrValueOr(filter.ContextThread, false) ||
contextAccount != util.PtrValueOr(filter.ContextAccount, false) {
if contextHome != util.PtrOrValue(filter.ContextHome, false) ||
contextNotifications != util.PtrOrValue(filter.ContextNotifications, false) ||
contextPublic != util.PtrOrValue(filter.ContextPublic, false) ||
contextThread != util.PtrOrValue(filter.ContextThread, false) ||
contextAccount != util.PtrOrValue(filter.ContextAccount, false) {
forbiddenFields = append(forbiddenFields, "context")
}
if len(forbiddenFields) > 0 {
@ -132,7 +132,7 @@ func (p *Processor) Update(
filter.ContextThread = &contextThread
filter.ContextAccount = &contextAccount
filterKeyword.Keyword = form.Phrase
filterKeyword.WholeWord = util.Ptr(util.PtrValueOr(form.WholeWord, false))
filterKeyword.WholeWord = util.Ptr(util.PtrOrValue(form.WholeWord, false))
// We only want to update the relevant filter keyword.
filter.Keywords = []*gtsmodel.FilterKeyword{filterKeyword}

View File

@ -189,7 +189,7 @@ func applyKeywordChanges(filter *gtsmodel.Filter, formKeywords []apimodel.Filter
FilterID: filter.ID,
Filter: filter,
Keyword: *formKeyword.Keyword,
WholeWord: util.Ptr(util.PtrValueOr(formKeyword.WholeWord, false)),
WholeWord: util.Ptr(util.PtrOrValue(formKeyword.WholeWord, false)),
}
filterKeywordsByID[filterKeyword.ID] = filterKeyword
// Don't need to set columns, as we're using all of them.