summaryrefslogtreecommitdiff
path: root/internal/media
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2022-07-19 09:47:55 +0100
committerLibravatar GitHub <noreply@github.com>2022-07-19 10:47:55 +0200
commit098dbe6ff4f59652181c8e0e3873fbfcf0e65ea3 (patch)
tree17036ad9db68c3080e1e91279c8bce9f9ea6e5c3 /internal/media
parent[bugfix] Markdown format fixes (#718) (diff)
downloadgotosocial-098dbe6ff4f59652181c8e0e3873fbfcf0e65ea3.tar.xz
[chore] use our own logging implementation (#716)
* first commit Signed-off-by: kim <grufwub@gmail.com> * replace logging with our own log library Signed-off-by: kim <grufwub@gmail.com> * fix imports Signed-off-by: kim <grufwub@gmail.com> * fix log imports Signed-off-by: kim <grufwub@gmail.com> * add license text Signed-off-by: kim <grufwub@gmail.com> * fix package import cycle between config and log package Signed-off-by: kim <grufwub@gmail.com> * fix empty kv.Fields{} being passed to WithFields() Signed-off-by: kim <grufwub@gmail.com> * fix uses of log.WithFields() with whitespace issues and empty slices Signed-off-by: kim <grufwub@gmail.com> * *linter related grumbling* Signed-off-by: kim <grufwub@gmail.com> * gofmt the codebase! also fix more log.WithFields() formatting issues Signed-off-by: kim <grufwub@gmail.com> * update testrig code to match new changes Signed-off-by: kim <grufwub@gmail.com> * fix error wrapping in non fmt.Errorf function Signed-off-by: kim <grufwub@gmail.com> * add benchmarking of log.Caller() vs non-cached Signed-off-by: kim <grufwub@gmail.com> * fix syslog tests, add standard build tags to test runner to ensure consistency Signed-off-by: kim <grufwub@gmail.com> * make syslog tests more robust Signed-off-by: kim <grufwub@gmail.com> * fix caller depth arithmatic (is that how you spell it?) Signed-off-by: kim <grufwub@gmail.com> * update to use unkeyed fields in kv.Field{} instances Signed-off-by: kim <grufwub@gmail.com> * update go-kv library Signed-off-by: kim <grufwub@gmail.com> * update libraries list Signed-off-by: kim <grufwub@gmail.com> * fuck you linter get nerfed Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com>
Diffstat (limited to 'internal/media')
-rw-r--r--internal/media/manager.go18
-rw-r--r--internal/media/processingemoji.go4
-rw-r--r--internal/media/processingmedia.go30
-rw-r--r--internal/media/prunemeta.go10
-rw-r--r--internal/media/prunemeta_test.go1
-rw-r--r--internal/media/pruneremote.go12
-rw-r--r--internal/media/pruneunusedlocal.go12
-rw-r--r--internal/media/util.go9
8 files changed, 48 insertions, 48 deletions
diff --git a/internal/media/manager.go b/internal/media/manager.go
index b14288324..828aa033b 100644
--- a/internal/media/manager.go
+++ b/internal/media/manager.go
@@ -24,10 +24,10 @@ import (
"time"
"github.com/robfig/cron/v3"
- "github.com/sirupsen/logrus"
"github.com/superseriousbusiness/gotosocial/internal/concurrency"
"github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/db"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
"github.com/superseriousbusiness/gotosocial/internal/storage"
)
@@ -210,10 +210,10 @@ func scheduleCleanupJobs(m *manager) error {
begin := time.Now()
pruned, err := m.PruneAllMeta(pruneCtx)
if err != nil {
- logrus.Errorf("media manager: error pruning meta: %s", err)
+ log.Errorf("media manager: error pruning meta: %s", err)
return
}
- logrus.Infof("media manager: pruned %d meta entries in %s", pruned, time.Since(begin))
+ log.Infof("media manager: pruned %d meta entries in %s", pruned, time.Since(begin))
}); err != nil {
pruneCancel()
return fmt.Errorf("error starting media manager meta cleanup job: %s", err)
@@ -223,10 +223,10 @@ func scheduleCleanupJobs(m *manager) error {
begin := time.Now()
pruned, err := m.PruneUnusedLocalAttachments(pruneCtx)
if err != nil {
- logrus.Errorf("media manager: error pruning unused local attachments: %s", err)
+ log.Errorf("media manager: error pruning unused local attachments: %s", err)
return
}
- logrus.Infof("media manager: pruned %d unused local attachments in %s", pruned, time.Since(begin))
+ log.Infof("media manager: pruned %d unused local attachments in %s", pruned, time.Since(begin))
}); err != nil {
pruneCancel()
return fmt.Errorf("error starting media manager unused local attachments cleanup job: %s", err)
@@ -238,10 +238,10 @@ func scheduleCleanupJobs(m *manager) error {
begin := time.Now()
pruned, err := m.PruneAllRemote(pruneCtx, mediaRemoteCacheDays)
if err != nil {
- logrus.Errorf("media manager: error pruning remote cache: %s", err)
+ log.Errorf("media manager: error pruning remote cache: %s", err)
return
}
- logrus.Infof("media manager: pruned %d remote cache entries in %s", pruned, time.Since(begin))
+ log.Infof("media manager: pruned %d remote cache entries in %s", pruned, time.Since(begin))
}); err != nil {
pruneCancel()
return fmt.Errorf("error starting media manager remote cache cleanup job: %s", err)
@@ -254,9 +254,9 @@ func scheduleCleanupJobs(m *manager) error {
select {
case <-cronCtx.Done():
- logrus.Infof("media manager: cron finished jobs and stopped gracefully")
+ log.Infof("media manager: cron finished jobs and stopped gracefully")
case <-time.After(1 * time.Minute):
- logrus.Infof("media manager: cron didn't stop after 60 seconds, will force close jobs")
+ log.Infof("media manager: cron didn't stop after 60 seconds, will force close jobs")
break
}
diff --git a/internal/media/processingemoji.go b/internal/media/processingemoji.go
index ffac56052..b28dc7f02 100644
--- a/internal/media/processingemoji.go
+++ b/internal/media/processingemoji.go
@@ -28,9 +28,9 @@ import (
"sync/atomic"
"time"
- "github.com/sirupsen/logrus"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
"github.com/superseriousbusiness/gotosocial/internal/storage"
"github.com/superseriousbusiness/gotosocial/internal/uris"
)
@@ -174,7 +174,7 @@ func (p *ProcessingEmoji) store(ctx context.Context) error {
defer func() {
if rc, ok := reader.(io.ReadCloser); ok {
if err := rc.Close(); err != nil {
- logrus.Errorf("store: error closing readcloser: %s", err)
+ log.Errorf("store: error closing readcloser: %s", err)
}
}
}()
diff --git a/internal/media/processingmedia.go b/internal/media/processingmedia.go
index 17fddddb7..885e97417 100644
--- a/internal/media/processingmedia.go
+++ b/internal/media/processingmedia.go
@@ -28,11 +28,11 @@ import (
"sync/atomic"
"time"
- "github.com/sirupsen/logrus"
terminator "github.com/superseriousbusiness/exif-terminator"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/id"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
"github.com/superseriousbusiness/gotosocial/internal/storage"
"github.com/superseriousbusiness/gotosocial/internal/uris"
)
@@ -80,10 +80,10 @@ func (p *ProcessingMedia) AttachmentID() string {
// LoadAttachment blocks until the thumbnail and fullsize content
// has been processed, and then returns the completed attachment.
func (p *ProcessingMedia) LoadAttachment(ctx context.Context) (*gtsmodel.MediaAttachment, error) {
- logrus.Tracef("LoadAttachment: getting lock for attachment %s", p.attachment.URL)
+ log.Tracef("LoadAttachment: getting lock for attachment %s", p.attachment.URL)
p.mu.Lock()
defer p.mu.Unlock()
- logrus.Tracef("LoadAttachment: got lock for attachment %s", p.attachment.URL)
+ log.Tracef("LoadAttachment: got lock for attachment %s", p.attachment.URL)
if err := p.store(ctx); err != nil {
return nil, err
@@ -113,7 +113,7 @@ func (p *ProcessingMedia) LoadAttachment(ctx context.Context) (*gtsmodel.MediaAt
p.insertedInDB = true
}
- logrus.Tracef("LoadAttachment: finished, returning attachment %s", p.attachment.URL)
+ log.Tracef("LoadAttachment: finished, returning attachment %s", p.attachment.URL)
return p.attachment, nil
}
@@ -137,7 +137,7 @@ func (p *ProcessingMedia) loadThumb(ctx context.Context) error {
}
// stream the original file out of storage
- logrus.Tracef("loadThumb: fetching attachment from storage %s", p.attachment.URL)
+ log.Tracef("loadThumb: fetching attachment from storage %s", p.attachment.URL)
stored, err := p.storage.GetStream(ctx, p.attachment.File.Path)
if err != nil {
p.err = fmt.Errorf("loadThumb: error fetching file from storage: %s", err)
@@ -147,14 +147,14 @@ func (p *ProcessingMedia) loadThumb(ctx context.Context) error {
// whatever happens, close the stream when we're done
defer func() {
- logrus.Tracef("loadThumb: closing stored stream %s", p.attachment.URL)
+ log.Tracef("loadThumb: closing stored stream %s", p.attachment.URL)
if err := stored.Close(); err != nil {
- logrus.Errorf("loadThumb: error closing stored full size: %s", err)
+ log.Errorf("loadThumb: error closing stored full size: %s", err)
}
}()
// stream the file from storage straight into the derive thumbnail function
- logrus.Tracef("loadThumb: calling deriveThumbnail %s", p.attachment.URL)
+ log.Tracef("loadThumb: calling deriveThumbnail %s", p.attachment.URL)
thumb, err := deriveThumbnail(stored, p.attachment.File.ContentType, createBlurhash)
if err != nil {
p.err = fmt.Errorf("loadThumb: error deriving thumbnail: %s", err)
@@ -163,7 +163,7 @@ func (p *ProcessingMedia) loadThumb(ctx context.Context) error {
}
// put the thumbnail in storage
- logrus.Tracef("loadThumb: storing new thumbnail %s", p.attachment.URL)
+ log.Tracef("loadThumb: storing new thumbnail %s", p.attachment.URL)
if err := p.storage.Put(ctx, p.attachment.Thumbnail.Path, thumb.small); err != nil {
p.err = fmt.Errorf("loadThumb: error storing thumbnail: %s", err)
atomic.StoreInt32(&p.thumbState, int32(errored))
@@ -184,7 +184,7 @@ func (p *ProcessingMedia) loadThumb(ctx context.Context) error {
// we're done processing the thumbnail!
atomic.StoreInt32(&p.thumbState, int32(complete))
- logrus.Tracef("loadThumb: finished processing thumbnail for attachment %s", p.attachment.URL)
+ log.Tracef("loadThumb: finished processing thumbnail for attachment %s", p.attachment.URL)
fallthrough
case complete:
return nil
@@ -245,7 +245,7 @@ func (p *ProcessingMedia) loadFullSize(ctx context.Context) error {
// we're done processing the full-size image
atomic.StoreInt32(&p.fullSizeState, int32(complete))
- logrus.Tracef("loadFullSize: finished processing full size image for attachment %s", p.attachment.URL)
+ log.Tracef("loadFullSize: finished processing full size image for attachment %s", p.attachment.URL)
fallthrough
case complete:
return nil
@@ -270,13 +270,13 @@ func (p *ProcessingMedia) store(ctx context.Context) error {
if err != nil {
return fmt.Errorf("store: error executing data function: %s", err)
}
- logrus.Tracef("store: reading %d bytes from data function for media %s", fileSize, p.attachment.URL)
+ log.Tracef("store: reading %d bytes from data function for media %s", fileSize, p.attachment.URL)
// defer closing the reader when we're done with it
defer func() {
if rc, ok := reader.(io.ReadCloser); ok {
if err := rc.Close(); err != nil {
- logrus.Errorf("store: error closing readcloser: %s", err)
+ log.Errorf("store: error closing readcloser: %s", err)
}
}
}()
@@ -330,7 +330,7 @@ func (p *ProcessingMedia) store(ctx context.Context) error {
defer func() {
if rc, ok := clean.(io.ReadCloser); ok {
if err := rc.Close(); err != nil {
- logrus.Errorf("store: error closing clean readcloser: %s", err)
+ log.Errorf("store: error closing clean readcloser: %s", err)
}
}
}()
@@ -353,7 +353,7 @@ func (p *ProcessingMedia) store(ctx context.Context) error {
return p.postData(ctx)
}
- logrus.Tracef("store: finished storing initial data for attachment %s", p.attachment.URL)
+ log.Tracef("store: finished storing initial data for attachment %s", p.attachment.URL)
return nil
}
diff --git a/internal/media/prunemeta.go b/internal/media/prunemeta.go
index 33391beaf..7b2b14f98 100644
--- a/internal/media/prunemeta.go
+++ b/internal/media/prunemeta.go
@@ -22,9 +22,9 @@ import (
"context"
"codeberg.org/gruf/go-store/storage"
- "github.com/sirupsen/logrus"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
)
func (m *manager) PruneAllMeta(ctx context.Context) (int, error) {
@@ -37,7 +37,7 @@ func (m *manager) PruneAllMeta(ctx context.Context) (int, error) {
for attachments, err = m.db.GetAvatarsAndHeaders(ctx, maxID, selectPruneLimit); err == nil && len(attachments) != 0; attachments, err = m.db.GetAvatarsAndHeaders(ctx, maxID, selectPruneLimit) {
// use the id of the last attachment in the slice as the next 'maxID' value
l := len(attachments)
- logrus.Tracef("PruneAllMeta: got %d attachments with maxID < %s", l, maxID)
+ log.Tracef("PruneAllMeta: got %d attachments with maxID < %s", l, maxID)
maxID = attachments[l-1].ID
// prune each attachment that meets one of the following criteria:
@@ -61,14 +61,14 @@ func (m *manager) PruneAllMeta(ctx context.Context) (int, error) {
return totalPruned, err
}
- logrus.Infof("PruneAllMeta: finished pruning avatars + headers: pruned %d entries", totalPruned)
+ log.Infof("PruneAllMeta: finished pruning avatars + headers: pruned %d entries", totalPruned)
return totalPruned, nil
}
func (m *manager) pruneOneAvatarOrHeader(ctx context.Context, attachment *gtsmodel.MediaAttachment) error {
if attachment.File.Path != "" {
// delete the full size attachment from storage
- logrus.Tracef("pruneOneAvatarOrHeader: deleting %s", attachment.File.Path)
+ log.Tracef("pruneOneAvatarOrHeader: deleting %s", attachment.File.Path)
if err := m.storage.Delete(ctx, attachment.File.Path); err != nil && err != storage.ErrNotFound {
return err
}
@@ -76,7 +76,7 @@ func (m *manager) pruneOneAvatarOrHeader(ctx context.Context, attachment *gtsmod
if attachment.Thumbnail.Path != "" {
// delete the thumbnail from storage
- logrus.Tracef("pruneOneAvatarOrHeader: deleting %s", attachment.Thumbnail.Path)
+ log.Tracef("pruneOneAvatarOrHeader: deleting %s", attachment.Thumbnail.Path)
if err := m.storage.Delete(ctx, attachment.Thumbnail.Path); err != nil && err != storage.ErrNotFound {
return err
}
diff --git a/internal/media/prunemeta_test.go b/internal/media/prunemeta_test.go
index 8b250e7a5..b02156587 100644
--- a/internal/media/prunemeta_test.go
+++ b/internal/media/prunemeta_test.go
@@ -85,6 +85,7 @@ func (suite *PruneMetaTestSuite) TestPruneMetaTwice() {
suite.NoError(err)
suite.Equal(0, totalPruned)
}
+
func (suite *PruneMetaTestSuite) TestPruneMetaMultipleAccounts() {
ctx := context.Background()
diff --git a/internal/media/pruneremote.go b/internal/media/pruneremote.go
index 6cad7fbf8..5c3335511 100644
--- a/internal/media/pruneremote.go
+++ b/internal/media/pruneremote.go
@@ -23,9 +23,9 @@ import (
"fmt"
"codeberg.org/gruf/go-store/storage"
- "github.com/sirupsen/logrus"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
)
func (m *manager) PruneAllRemote(ctx context.Context, olderThanDays int) (int, error) {
@@ -35,14 +35,14 @@ func (m *manager) PruneAllRemote(ctx context.Context, olderThanDays int) (int, e
if err != nil {
return totalPruned, fmt.Errorf("PruneAllRemote: error parsing olderThanDays %d: %s", olderThanDays, err)
}
- logrus.Infof("PruneAllRemote: pruning media older than %s", olderThan)
+ log.Infof("PruneAllRemote: pruning media older than %s", olderThan)
// select 20 attachments at a time and prune them
for attachments, err := m.db.GetRemoteOlderThan(ctx, olderThan, selectPruneLimit); err == nil && len(attachments) != 0; attachments, err = m.db.GetRemoteOlderThan(ctx, olderThan, selectPruneLimit) {
// use the age of the oldest attachment (the last one in the slice) as the next 'older than' value
l := len(attachments)
- logrus.Tracef("PruneAllRemote: got %d attachments older than %s", l, olderThan)
+ log.Tracef("PruneAllRemote: got %d attachments older than %s", l, olderThan)
olderThan = attachments[l-1].CreatedAt
// prune each attachment
@@ -59,14 +59,14 @@ func (m *manager) PruneAllRemote(ctx context.Context, olderThanDays int) (int, e
return totalPruned, err
}
- logrus.Infof("PruneAllRemote: finished pruning remote media: pruned %d entries", totalPruned)
+ log.Infof("PruneAllRemote: finished pruning remote media: pruned %d entries", totalPruned)
return totalPruned, nil
}
func (m *manager) pruneOneRemote(ctx context.Context, attachment *gtsmodel.MediaAttachment) error {
if attachment.File.Path != "" {
// delete the full size attachment from storage
- logrus.Tracef("pruneOneRemote: deleting %s", attachment.File.Path)
+ log.Tracef("pruneOneRemote: deleting %s", attachment.File.Path)
if err := m.storage.Delete(ctx, attachment.File.Path); err != nil && err != storage.ErrNotFound {
return err
}
@@ -75,7 +75,7 @@ func (m *manager) pruneOneRemote(ctx context.Context, attachment *gtsmodel.Media
if attachment.Thumbnail.Path != "" {
// delete the thumbnail from storage
- logrus.Tracef("pruneOneRemote: deleting %s", attachment.Thumbnail.Path)
+ log.Tracef("pruneOneRemote: deleting %s", attachment.Thumbnail.Path)
if err := m.storage.Delete(ctx, attachment.Thumbnail.Path); err != nil && err != storage.ErrNotFound {
return err
}
diff --git a/internal/media/pruneunusedlocal.go b/internal/media/pruneunusedlocal.go
index 789583938..ea777428b 100644
--- a/internal/media/pruneunusedlocal.go
+++ b/internal/media/pruneunusedlocal.go
@@ -23,9 +23,9 @@ import (
"fmt"
"codeberg.org/gruf/go-store/storage"
- "github.com/sirupsen/logrus"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
)
func (m *manager) PruneUnusedLocalAttachments(ctx context.Context) (int, error) {
@@ -38,14 +38,14 @@ func (m *manager) PruneUnusedLocalAttachments(ctx context.Context) (int, error)
if err != nil {
return totalPruned, fmt.Errorf("PruneUnusedLocalAttachments: error parsing olderThanDays %d: %s", UnusedLocalAttachmentCacheDays, err)
}
- logrus.Infof("PruneUnusedLocalAttachments: pruning unused local attachments older than %s", olderThan)
+ log.Infof("PruneUnusedLocalAttachments: pruning unused local attachments older than %s", olderThan)
// select 20 attachments at a time and prune them
for attachments, err = m.db.GetLocalUnattachedOlderThan(ctx, olderThan, maxID, selectPruneLimit); err == nil && len(attachments) != 0; attachments, err = m.db.GetLocalUnattachedOlderThan(ctx, olderThan, maxID, selectPruneLimit) {
// use the id of the last attachment in the slice as the next 'maxID' value
l := len(attachments)
maxID = attachments[l-1].ID
- logrus.Tracef("PruneUnusedLocalAttachments: got %d unused local attachments older than %s with maxID < %s", l, olderThan, maxID)
+ log.Tracef("PruneUnusedLocalAttachments: got %d unused local attachments older than %s with maxID < %s", l, olderThan, maxID)
for _, attachment := range attachments {
if err := m.pruneOneLocal(ctx, attachment); err != nil {
@@ -60,14 +60,14 @@ func (m *manager) PruneUnusedLocalAttachments(ctx context.Context) (int, error)
return totalPruned, err
}
- logrus.Infof("PruneUnusedLocalAttachments: finished pruning: pruned %d entries", totalPruned)
+ log.Infof("PruneUnusedLocalAttachments: finished pruning: pruned %d entries", totalPruned)
return totalPruned, nil
}
func (m *manager) pruneOneLocal(ctx context.Context, attachment *gtsmodel.MediaAttachment) error {
if attachment.File.Path != "" {
// delete the full size attachment from storage
- logrus.Tracef("pruneOneLocal: deleting %s", attachment.File.Path)
+ log.Tracef("pruneOneLocal: deleting %s", attachment.File.Path)
if err := m.storage.Delete(ctx, attachment.File.Path); err != nil && err != storage.ErrNotFound {
return err
}
@@ -75,7 +75,7 @@ func (m *manager) pruneOneLocal(ctx context.Context, attachment *gtsmodel.MediaA
if attachment.Thumbnail.Path != "" {
// delete the thumbnail from storage
- logrus.Tracef("pruneOneLocal: deleting %s", attachment.Thumbnail.Path)
+ log.Tracef("pruneOneLocal: deleting %s", attachment.Thumbnail.Path)
if err := m.storage.Delete(ctx, attachment.Thumbnail.Path); err != nil && err != storage.ErrNotFound {
return err
}
diff --git a/internal/media/util.go b/internal/media/util.go
index 9d62619f5..aea2ad990 100644
--- a/internal/media/util.go
+++ b/internal/media/util.go
@@ -24,7 +24,7 @@ import (
"time"
"github.com/h2non/filetype"
- "github.com/sirupsen/logrus"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
)
// AllSupportedMIMETypes just returns all media
@@ -117,17 +117,16 @@ func ParseMediaSize(s string) (Size, error) {
}
// logrusWrapper is just a util for passing the logrus logger into the cron logging system.
-type logrusWrapper struct {
-}
+type logrusWrapper struct{}
// Info logs routine messages about cron's operation.
func (l *logrusWrapper) Info(msg string, keysAndValues ...interface{}) {
- logrus.Info("media manager cron logger: ", msg, keysAndValues)
+ log.Info("media manager cron logger: ", msg, keysAndValues)
}
// Error logs an error condition.
func (l *logrusWrapper) Error(err error, msg string, keysAndValues ...interface{}) {
- logrus.Error("media manager cron logger: ", err, msg, keysAndValues)
+ log.Error("media manager cron logger: ", err, msg, keysAndValues)
}
func parseOlderThan(olderThanDays int) (time.Time, error) {