From e8f181525cb479d67a64d51f82c9241b8b092250 Mon Sep 17 00:00:00 2001
From: Travis Ralston <travpc@gmail.com>
Date: Wed, 11 Apr 2018 21:47:23 -0600
Subject: [PATCH] Move errors out of the utility package

They are a shared resource, so treat them as such
---
 .../matrix-media-repo/api/r0/download.go      |  8 ++---
 .../matrix-media-repo/api/r0/info.go          |  8 ++---
 .../matrix-media-repo/api/r0/local_copy.go    | 10 +++---
 .../matrix-media-repo/api/r0/preview_url.go   |  6 ++--
 .../matrix-media-repo/api/r0/thumbnail.go     |  6 ++--
 .../matrix-media-repo/api/r0/upload.go        |  4 +--
 .../{util/errs => common}/errorcodes.go       |  2 +-
 .../{util/errs => common}/errors.go           |  2 +-
 .../media_cache/media_cache.go                |  8 ++---
 .../media_cache/thumbnail_cache.go            |  8 ++---
 .../services/media_service/media_service.go   |  6 ++--
 .../media_service/remote_media_downloader.go  |  8 ++---
 .../thumbnail_service/thumbnail_service.go    |  4 +--
 .../services/url_service/file_previewer.go    |  6 ++--
 .../url_service/opengraph_previewer.go        |  6 ++--
 .../services/url_service/resource_handler.go  | 10 +++---
 .../services/url_service/url_service.go       | 36 +++++++++----------
 17 files changed, 69 insertions(+), 69 deletions(-)
 rename src/github.com/turt2live/matrix-media-repo/{util/errs => common}/errorcodes.go (93%)
 rename src/github.com/turt2live/matrix-media-repo/{util/errs => common}/errors.go (96%)

diff --git a/src/github.com/turt2live/matrix-media-repo/api/r0/download.go b/src/github.com/turt2live/matrix-media-repo/api/r0/download.go
index a6e5460d..f8a7a0b6 100644
--- a/src/github.com/turt2live/matrix-media-repo/api/r0/download.go
+++ b/src/github.com/turt2live/matrix-media-repo/api/r0/download.go
@@ -7,9 +7,9 @@ import (
 	"github.com/gorilla/mux"
 	"github.com/sirupsen/logrus"
 	"github.com/turt2live/matrix-media-repo/api"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/media_cache"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type DownloadMediaResponse struct {
@@ -42,11 +42,11 @@ func DownloadMedia(r *http.Request, log *logrus.Entry, user api.UserInfo) interf
 
 	streamedMedia, err := mediaCache.GetMedia(server, mediaId)
 	if err != nil {
-		if err == errs.ErrMediaNotFound {
+		if err == common.ErrMediaNotFound {
 			return api.NotFoundError()
-		} else if err == errs.ErrMediaTooLarge {
+		} else if err == common.ErrMediaTooLarge {
 			return api.RequestTooLarge()
-		} else if err == errs.ErrMediaQuarantined {
+		} else if err == common.ErrMediaQuarantined {
 			return api.NotFoundError() // We lie for security
 		}
 		log.Error("Unexpected error locating media: " + err.Error())
diff --git a/src/github.com/turt2live/matrix-media-repo/api/r0/info.go b/src/github.com/turt2live/matrix-media-repo/api/r0/info.go
index 6624241b..d6e8a050 100644
--- a/src/github.com/turt2live/matrix-media-repo/api/r0/info.go
+++ b/src/github.com/turt2live/matrix-media-repo/api/r0/info.go
@@ -7,8 +7,8 @@ import (
 	"github.com/gorilla/mux"
 	"github.com/sirupsen/logrus"
 	"github.com/turt2live/matrix-media-repo/api"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/media_cache"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type MediaInfoResponse struct {
@@ -34,11 +34,11 @@ func MediaInfo(r *http.Request, log *logrus.Entry, user api.UserInfo) interface{
 
 	streamedMedia, err := mediaCache.GetMedia(server, mediaId)
 	if err != nil {
-		if err == errs.ErrMediaNotFound {
+		if err == common.ErrMediaNotFound {
 			return api.NotFoundError()
-		} else if err == errs.ErrMediaTooLarge {
+		} else if err == common.ErrMediaTooLarge {
 			return api.RequestTooLarge()
-		} else if err == errs.ErrMediaQuarantined {
+		} else if err == common.ErrMediaQuarantined {
 			return api.NotFoundError() // We lie for security
 		}
 		log.Error("Unexpected error locating media: " + err.Error())
diff --git a/src/github.com/turt2live/matrix-media-repo/api/r0/local_copy.go b/src/github.com/turt2live/matrix-media-repo/api/r0/local_copy.go
index a3148ed1..704b5091 100644
--- a/src/github.com/turt2live/matrix-media-repo/api/r0/local_copy.go
+++ b/src/github.com/turt2live/matrix-media-repo/api/r0/local_copy.go
@@ -6,9 +6,9 @@ import (
 	"github.com/gorilla/mux"
 	"github.com/sirupsen/logrus"
 	"github.com/turt2live/matrix-media-repo/api"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/media_cache"
 	"github.com/turt2live/matrix-media-repo/services/media_service"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 func LocalCopy(r *http.Request, log *logrus.Entry, user api.UserInfo) interface{} {
@@ -29,11 +29,11 @@ func LocalCopy(r *http.Request, log *logrus.Entry, user api.UserInfo) interface{
 
 	streamedMedia, err := mediaCache.GetMedia(server, mediaId)
 	if err != nil {
-		if err == errs.ErrMediaNotFound {
+		if err == common.ErrMediaNotFound {
 			return api.NotFoundError()
-		} else if err == errs.ErrMediaTooLarge {
+		} else if err == common.ErrMediaTooLarge {
 			return api.RequestTooLarge()
-		} else if err == errs.ErrMediaQuarantined {
+		} else if err == common.ErrMediaQuarantined {
 			return api.NotFoundError() // We lie for security
 		}
 		log.Error("Unexpected error locating media: " + err.Error())
@@ -48,7 +48,7 @@ func LocalCopy(r *http.Request, log *logrus.Entry, user api.UserInfo) interface{
 
 	newMedia, err := svc.StoreMedia(streamedMedia.Stream, streamedMedia.Media.ContentType, streamedMedia.Media.UploadName, user.UserId, r.Host, "")
 	if err != nil {
-		if err == errs.ErrMediaNotAllowed {
+		if err == common.ErrMediaNotAllowed {
 			return api.BadRequest("Media content type not allowed on this server")
 		}
 
diff --git a/src/github.com/turt2live/matrix-media-repo/api/r0/preview_url.go b/src/github.com/turt2live/matrix-media-repo/api/r0/preview_url.go
index fdc80bae..e023ae84 100644
--- a/src/github.com/turt2live/matrix-media-repo/api/r0/preview_url.go
+++ b/src/github.com/turt2live/matrix-media-repo/api/r0/preview_url.go
@@ -7,10 +7,10 @@ import (
 
 	"github.com/sirupsen/logrus"
 	"github.com/turt2live/matrix-media-repo/api"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/services/url_service"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type MatrixOpenGraph struct {
@@ -57,9 +57,9 @@ func PreviewUrl(r *http.Request, log *logrus.Entry, user api.UserInfo) interface
 	svc := url_service.New(r.Context(), log)
 	preview, err := svc.GetPreview(urlStr, r.Host, user.UserId, ts)
 	if err != nil {
-		if err == errs.ErrMediaNotFound || err == errs.ErrHostNotFound {
+		if err == common.ErrMediaNotFound || err == common.ErrHostNotFound {
 			return api.NotFoundError()
-		} else if err == errs.ErrInvalidHost || err == errs.ErrHostBlacklisted {
+		} else if err == common.ErrInvalidHost || err == common.ErrHostBlacklisted {
 			return api.BadRequest(err.Error())
 		} else {
 			return api.InternalServerError("unexpected error during request")
diff --git a/src/github.com/turt2live/matrix-media-repo/api/r0/thumbnail.go b/src/github.com/turt2live/matrix-media-repo/api/r0/thumbnail.go
index 8b68fd44..faed89f9 100644
--- a/src/github.com/turt2live/matrix-media-repo/api/r0/thumbnail.go
+++ b/src/github.com/turt2live/matrix-media-repo/api/r0/thumbnail.go
@@ -7,10 +7,10 @@ import (
 	"github.com/gorilla/mux"
 	"github.com/sirupsen/logrus"
 	"github.com/turt2live/matrix-media-repo/api"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/media_cache"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 func ThumbnailMedia(r *http.Request, log *logrus.Entry, user api.UserInfo) interface{} {
@@ -75,9 +75,9 @@ func ThumbnailMedia(r *http.Request, log *logrus.Entry, user api.UserInfo) inter
 
 	streamedThumbnail, err := mediaCache.GetThumbnail(server, mediaId, width, height, method, animated)
 	if err != nil {
-		if err == errs.ErrMediaNotFound {
+		if err == common.ErrMediaNotFound {
 			return api.NotFoundError()
-		} else if err == errs.ErrMediaTooLarge {
+		} else if err == common.ErrMediaTooLarge {
 			return api.RequestTooLarge()
 		}
 		log.Error("Unexpected error locating media: " + err.Error())
diff --git a/src/github.com/turt2live/matrix-media-repo/api/r0/upload.go b/src/github.com/turt2live/matrix-media-repo/api/r0/upload.go
index 1ae677ed..cf83e75c 100644
--- a/src/github.com/turt2live/matrix-media-repo/api/r0/upload.go
+++ b/src/github.com/turt2live/matrix-media-repo/api/r0/upload.go
@@ -7,8 +7,8 @@ import (
 
 	"github.com/sirupsen/logrus"
 	"github.com/turt2live/matrix-media-repo/api"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/services/media_service"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type MediaUploadedResponse struct {
@@ -43,7 +43,7 @@ func UploadMedia(r *http.Request, log *logrus.Entry, user api.UserInfo) interfac
 		io.Copy(ioutil.Discard, r.Body) // Ditch the entire request
 		defer r.Body.Close()
 
-		if err == errs.ErrMediaNotAllowed {
+		if err == common.ErrMediaNotAllowed {
 			return api.BadRequest("Media content type not allowed on this server")
 		}
 
diff --git a/src/github.com/turt2live/matrix-media-repo/util/errs/errorcodes.go b/src/github.com/turt2live/matrix-media-repo/common/errorcodes.go
similarity index 93%
rename from src/github.com/turt2live/matrix-media-repo/util/errs/errorcodes.go
rename to src/github.com/turt2live/matrix-media-repo/common/errorcodes.go
index 8a2e76b2..d96d0fa4 100644
--- a/src/github.com/turt2live/matrix-media-repo/util/errs/errorcodes.go
+++ b/src/github.com/turt2live/matrix-media-repo/common/errorcodes.go
@@ -1,4 +1,4 @@
-package errs
+package common
 
 const ErrCodeInvalidHost = "M_INVALID_HOST"
 const ErrCodeHostNotFound = "M_HOST_NOT_FOUND"
diff --git a/src/github.com/turt2live/matrix-media-repo/util/errs/errors.go b/src/github.com/turt2live/matrix-media-repo/common/errors.go
similarity index 96%
rename from src/github.com/turt2live/matrix-media-repo/util/errs/errors.go
rename to src/github.com/turt2live/matrix-media-repo/common/errors.go
index 5370df9d..6f33b807 100644
--- a/src/github.com/turt2live/matrix-media-repo/util/errs/errors.go
+++ b/src/github.com/turt2live/matrix-media-repo/common/errors.go
@@ -1,4 +1,4 @@
-package errs
+package common
 
 import (
 	"errors"
diff --git a/src/github.com/turt2live/matrix-media-repo/media_cache/media_cache.go b/src/github.com/turt2live/matrix-media-repo/media_cache/media_cache.go
index e40cbdd3..db11384b 100644
--- a/src/github.com/turt2live/matrix-media-repo/media_cache/media_cache.go
+++ b/src/github.com/turt2live/matrix-media-repo/media_cache/media_cache.go
@@ -10,11 +10,11 @@ import (
 	"github.com/patrickmn/go-cache"
 	"github.com/pkg/errors"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/services/media_service"
 	"github.com/turt2live/matrix-media-repo/types"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 func (c *mediaCache) getKeyForMedia(server string, mediaId string) string {
@@ -33,7 +33,7 @@ func (c *mediaCache) GetMedia(server string, mediaId string) (*types.StreamedMed
 
 	if media.Quarantined {
 		c.log.Warn("Quarantined media accessed")
-		return nil, errs.ErrMediaQuarantined
+		return nil, common.ErrMediaQuarantined
 	}
 
 	// At this point we should have a real media object to use, so let's try caching it
@@ -80,7 +80,7 @@ func (c *mediaCache) GetRawMedia(server string, mediaId string) (*types.Media, e
 		if err == sql.ErrNoRows {
 			if util.IsServerOurs(server) {
 				c.log.Warn("Media not found")
-				return nil, errs.ErrMediaNotFound
+				return nil, common.ErrMediaNotFound
 			}
 		}
 
@@ -94,7 +94,7 @@ func (c *mediaCache) GetRawMedia(server string, mediaId string) (*types.Media, e
 	if !exists || err != nil {
 		if util.IsServerOurs(server) {
 			c.log.Error("Media not found in file store when we expected it to")
-			return nil, errs.ErrMediaNotFound
+			return nil, common.ErrMediaNotFound
 		} else {
 			c.log.Warn("Media appears to have been deleted - redownloading")
 
diff --git a/src/github.com/turt2live/matrix-media-repo/media_cache/thumbnail_cache.go b/src/github.com/turt2live/matrix-media-repo/media_cache/thumbnail_cache.go
index 952539c5..d353dc29 100644
--- a/src/github.com/turt2live/matrix-media-repo/media_cache/thumbnail_cache.go
+++ b/src/github.com/turt2live/matrix-media-repo/media_cache/thumbnail_cache.go
@@ -12,11 +12,11 @@ import (
 	"github.com/disintegration/imaging"
 	"github.com/patrickmn/go-cache"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/services/thumbnail_service"
 	"github.com/turt2live/matrix-media-repo/types"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 var regexContentType = regexp.MustCompile(`^\s*([^\/]+)\/(?:[^\.]+\.)?([^+;\s]+).*$`)
@@ -37,11 +37,11 @@ func (c *mediaCache) GetThumbnail(server string, mediaId string, width int, heig
 
 	thumbnail, err := c.GetRawThumbnail(server, mediaId, width, height, method, animated)
 	if err != nil {
-		if err == errs.ErrMediaQuarantined {
+		if err == common.ErrMediaQuarantined {
 			c.log.Warn("Quarantined media accessed")
 		}
 
-		if err == errs.ErrMediaQuarantined && config.Get().Quarantine.ReplaceThumbnails {
+		if err == common.ErrMediaQuarantined && config.Get().Quarantine.ReplaceThumbnails {
 			c.log.Info("Replacing thumbnail with a quarantined icon")
 			svc := thumbnail_service.New(c.ctx, c.log)
 			img, err := svc.GenerateQuarantineThumbnail(server, mediaId, width, height)
@@ -136,7 +136,7 @@ func (c *mediaCache) GetRawThumbnail(server string, mediaId string, width int, h
 	}
 
 	if media.Quarantined {
-		return nil, errs.ErrMediaQuarantined
+		return nil, common.ErrMediaQuarantined
 	}
 
 	thumb, err := thumbnailSvc.GetThumbnailDirect(media, width, height, method, animated)
diff --git a/src/github.com/turt2live/matrix-media-repo/services/media_service/media_service.go b/src/github.com/turt2live/matrix-media-repo/services/media_service/media_service.go
index 816560c6..32e8a672 100644
--- a/src/github.com/turt2live/matrix-media-repo/services/media_service/media_service.go
+++ b/src/github.com/turt2live/matrix-media-repo/services/media_service/media_service.go
@@ -9,12 +9,12 @@ import (
 
 	"github.com/ryanuber/go-glob"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/storage"
 	"github.com/turt2live/matrix-media-repo/storage/stores"
 	"github.com/turt2live/matrix-media-repo/types"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type mediaService struct {
@@ -166,7 +166,7 @@ func (s *mediaService) StoreMedia(contents io.Reader, contentType string, filena
 	}
 
 	// Check to make sure the file is allowed
-	fileMime, err := util.GetContentType(fileLocation)
+	fileMime, err := util.GetMimeType(fileLocation)
 	if err != nil {
 		s.log.Error("Error while checking content type of file: " + err.Error())
 		os.Remove(fileLocation) // attempt cleanup
@@ -178,7 +178,7 @@ func (s *mediaService) StoreMedia(contents io.Reader, contentType string, filena
 			s.log.Warn("Content type " + fileMime + " (reported as " + contentType + ") is not allowed to be uploaded")
 
 			os.Remove(fileLocation) // attempt cleanup
-			return nil, errs.ErrMediaNotAllowed
+			return nil, common.ErrMediaNotAllowed
 		}
 	}
 
diff --git a/src/github.com/turt2live/matrix-media-repo/services/media_service/remote_media_downloader.go b/src/github.com/turt2live/matrix-media-repo/services/media_service/remote_media_downloader.go
index 42e424b9..bf9dd63d 100644
--- a/src/github.com/turt2live/matrix-media-repo/services/media_service/remote_media_downloader.go
+++ b/src/github.com/turt2live/matrix-media-repo/services/media_service/remote_media_downloader.go
@@ -11,9 +11,9 @@ import (
 
 	"github.com/patrickmn/go-cache"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/matrix"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type downloadedMedia struct {
@@ -65,7 +65,7 @@ func (r *remoteMediaDownloader) Download(server string, mediaId string) (*downlo
 	if resp.StatusCode == 404 {
 		r.log.Info("Remote media not found")
 
-		err = errs.ErrMediaNotFound
+		err = common.ErrMediaNotFound
 		downloadErrorsCache.Set(cacheKey, err, cache.DefaultExpiration)
 		return nil, err
 	} else if resp.StatusCode != 200 {
@@ -89,7 +89,7 @@ func (r *remoteMediaDownloader) Download(server string, mediaId string) (*downlo
 	if contentLength > 0 && config.Get().Downloads.MaxSizeBytes > 0 && contentLength > config.Get().Downloads.MaxSizeBytes {
 		r.log.Warn("Attempted to download media that was too large")
 
-		err = errs.ErrMediaTooLarge
+		err = common.ErrMediaTooLarge
 		downloadErrorsCache.Set(cacheKey, err, cache.DefaultExpiration)
 		return nil, err
 	}
@@ -97,7 +97,7 @@ func (r *remoteMediaDownloader) Download(server string, mediaId string) (*downlo
 	request := &downloadedMedia{
 		ContentType: resp.Header.Get("Content-Type"),
 		Contents:    resp.Body,
-		//DesiredFilename (calculated below)
+		// DesiredFilename (calculated below)
 	}
 
 	_, params, err := mime.ParseMediaType(resp.Header.Get("Content-Disposition"))
diff --git a/src/github.com/turt2live/matrix-media-repo/services/thumbnail_service/thumbnail_service.go b/src/github.com/turt2live/matrix-media-repo/services/thumbnail_service/thumbnail_service.go
index 779c9124..201a0bea 100644
--- a/src/github.com/turt2live/matrix-media-repo/services/thumbnail_service/thumbnail_service.go
+++ b/src/github.com/turt2live/matrix-media-repo/services/thumbnail_service/thumbnail_service.go
@@ -12,12 +12,12 @@ import (
 	"github.com/fogleman/gg"
 	"github.com/golang/freetype/truetype"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/storage"
 	"github.com/turt2live/matrix-media-repo/storage/stores"
 	"github.com/turt2live/matrix-media-repo/types"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 	"golang.org/x/image/font/gofont/gosmallcaps"
 )
 
@@ -66,7 +66,7 @@ func (s *thumbnailService) GenerateThumbnail(media *types.Media, width int, heig
 
 	if media.SizeBytes > config.Get().Thumbnails.MaxSourceBytes {
 		s.log.Warn("Media too large to thumbnail")
-		return nil, errs.ErrMediaTooLarge
+		return nil, common.ErrMediaTooLarge
 	}
 
 	s.log.Info("Generating new thumbnail")
diff --git a/src/github.com/turt2live/matrix-media-repo/services/url_service/file_previewer.go b/src/github.com/turt2live/matrix-media-repo/services/url_service/file_previewer.go
index 799c368b..3871fb60 100644
--- a/src/github.com/turt2live/matrix-media-repo/services/url_service/file_previewer.go
+++ b/src/github.com/turt2live/matrix-media-repo/services/url_service/file_previewer.go
@@ -12,9 +12,9 @@ import (
 
 	"github.com/ryanuber/go-glob"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type filePreviewer struct {
@@ -37,7 +37,7 @@ func (p *filePreviewer) GeneratePreview(urlStr string) (previewResult, error) {
 		}
 
 		// We'll consider it not found for the sake of processing
-		return previewResult{}, errs.ErrMediaNotFound
+		return previewResult{}, common.ErrMediaNotFound
 	}
 
 	description := ""
@@ -80,7 +80,7 @@ func downloadFileContent(urlStr string, log *logrus.Entry) (*previewImage, error
 	}
 
 	if config.Get().UrlPreviews.MaxPageSizeBytes > 0 && resp.ContentLength >= 0 && resp.ContentLength > config.Get().UrlPreviews.MaxPageSizeBytes {
-		return nil, errs.ErrMediaTooLarge
+		return nil, common.ErrMediaTooLarge
 	}
 
 	var reader io.Reader
diff --git a/src/github.com/turt2live/matrix-media-repo/services/url_service/opengraph_previewer.go b/src/github.com/turt2live/matrix-media-repo/services/url_service/opengraph_previewer.go
index 1e034c57..02120c5a 100644
--- a/src/github.com/turt2live/matrix-media-repo/services/url_service/opengraph_previewer.go
+++ b/src/github.com/turt2live/matrix-media-repo/services/url_service/opengraph_previewer.go
@@ -15,8 +15,8 @@ import (
 	"github.com/dyatlov/go-opengraph/opengraph"
 	"github.com/ryanuber/go-glob"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 var ogSupportedTypes = []string{"text/*"}
@@ -41,7 +41,7 @@ func (p *openGraphUrlPreviewer) GeneratePreview(urlStr string) (previewResult, e
 		}
 
 		// We'll consider it not found for the sake of processing
-		return previewResult{}, errs.ErrMediaNotFound
+		return previewResult{}, common.ErrMediaNotFound
 	}
 
 	og := opengraph.NewOpenGraph()
@@ -111,7 +111,7 @@ func downloadHtmlContent(urlStr string, log *logrus.Entry) (string, error) {
 	}
 
 	if config.Get().UrlPreviews.MaxPageSizeBytes > 0 && resp.ContentLength >= 0 && resp.ContentLength > config.Get().UrlPreviews.MaxPageSizeBytes {
-		return "", errs.ErrMediaTooLarge
+		return "", common.ErrMediaTooLarge
 	}
 
 	var reader io.Reader
diff --git a/src/github.com/turt2live/matrix-media-repo/services/url_service/resource_handler.go b/src/github.com/turt2live/matrix-media-repo/services/url_service/resource_handler.go
index a28e6287..a7eae80b 100644
--- a/src/github.com/turt2live/matrix-media-repo/services/url_service/resource_handler.go
+++ b/src/github.com/turt2live/matrix-media-repo/services/url_service/resource_handler.go
@@ -7,12 +7,12 @@ import (
 
 	"github.com/disintegration/imaging"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/resource_handler"
 	"github.com/turt2live/matrix-media-repo/services/media_service"
 	"github.com/turt2live/matrix-media-repo/types"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type urlResourceHandler struct {
@@ -72,13 +72,13 @@ func urlPreviewWorkFn(request *resource_handler.WorkRequest) interface{} {
 	if err != nil {
 		// Transparently convert "unsupported" to "not found" for processing
 		if err == ErrPreviewUnsupported {
-			err = errs.ErrMediaNotFound
+			err = common.ErrMediaNotFound
 		}
 
-		if err == errs.ErrMediaNotFound {
-			svc.store.InsertPreviewError(info.urlStr, errs.ErrCodeNotFound)
+		if err == common.ErrMediaNotFound {
+			svc.store.InsertPreviewError(info.urlStr, common.ErrCodeNotFound)
 		} else {
-			svc.store.InsertPreviewError(info.urlStr, errs.ErrCodeUnknown)
+			svc.store.InsertPreviewError(info.urlStr, common.ErrCodeUnknown)
 		}
 		return &urlPreviewResponse{err: err}
 	}
diff --git a/src/github.com/turt2live/matrix-media-repo/services/url_service/url_service.go b/src/github.com/turt2live/matrix-media-repo/services/url_service/url_service.go
index 6588e863..a5207885 100644
--- a/src/github.com/turt2live/matrix-media-repo/services/url_service/url_service.go
+++ b/src/github.com/turt2live/matrix-media-repo/services/url_service/url_service.go
@@ -9,12 +9,12 @@ import (
 
 	"github.com/pkg/errors"
 	"github.com/sirupsen/logrus"
+	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/config"
 	"github.com/turt2live/matrix-media-repo/storage"
 	"github.com/turt2live/matrix-media-repo/storage/stores"
 	"github.com/turt2live/matrix-media-repo/types"
 	"github.com/turt2live/matrix-media-repo/util"
-	"github.com/turt2live/matrix-media-repo/util/errs"
 )
 
 type urlService struct {
@@ -29,15 +29,15 @@ func New(ctx context.Context, log *logrus.Entry) (*urlService) {
 }
 
 func returnCachedPreview(cached *types.CachedUrlPreview) (*types.UrlPreview, error) {
-	if cached.ErrorCode == errs.ErrCodeInvalidHost {
-		return nil, errs.ErrInvalidHost
-	} else if cached.ErrorCode == errs.ErrCodeHostNotFound {
-		return nil, errs.ErrHostNotFound
-	} else if cached.ErrorCode == errs.ErrCodeHostBlacklisted {
-		return nil, errs.ErrHostBlacklisted
-	} else if cached.ErrorCode == errs.ErrCodeNotFound {
-		return nil, errs.ErrMediaNotFound
-	} else if cached.ErrorCode == errs.ErrCodeUnknown {
+	if cached.ErrorCode == common.ErrCodeInvalidHost {
+		return nil, common.ErrInvalidHost
+	} else if cached.ErrorCode == common.ErrCodeHostNotFound {
+		return nil, common.ErrHostNotFound
+	} else if cached.ErrorCode == common.ErrCodeHostBlacklisted {
+		return nil, common.ErrHostBlacklisted
+	} else if cached.ErrorCode == common.ErrCodeNotFound {
+		return nil, common.ErrMediaNotFound
+	} else if cached.ErrorCode == common.ErrCodeUnknown {
 		return nil, errors.New("unknown error")
 	}
 
@@ -70,19 +70,19 @@ func (s *urlService) GetPreview(urlStr string, onHost string, forUserId string,
 	parsedUrl, err := url.ParseRequestURI(urlStr)
 	if err != nil {
 		s.log.Error("Error parsing url: " + err.Error())
-		s.store.InsertPreviewError(urlStr, errs.ErrCodeInvalidHost)
-		return nil, errs.ErrInvalidHost
+		s.store.InsertPreviewError(urlStr, common.ErrCodeInvalidHost)
+		return nil, common.ErrInvalidHost
 	}
 
 	addrs, err := net.LookupIP(parsedUrl.Host)
 	if err != nil {
 		s.log.Error("Error getting host info: " + err.Error())
-		s.store.InsertPreviewError(urlStr, errs.ErrCodeInvalidHost)
-		return nil, errs.ErrInvalidHost
+		s.store.InsertPreviewError(urlStr, common.ErrCodeInvalidHost)
+		return nil, common.ErrInvalidHost
 	}
 	if len(addrs) == 0 {
-		s.store.InsertPreviewError(urlStr, errs.ErrCodeHostNotFound)
-		return nil, errs.ErrHostNotFound
+		s.store.InsertPreviewError(urlStr, common.ErrCodeHostNotFound)
+		return nil, common.ErrHostNotFound
 	}
 	addr := addrs[0]
 	addrStr := fmt.Sprintf("%v", addr)[1:]
@@ -98,8 +98,8 @@ func (s *urlService) GetPreview(urlStr string, onHost string, forUserId string,
 		deniedCidrs = []string{}
 	}
 	if !isAllowed(addr, allowedCidrs, deniedCidrs, s.log) {
-		s.store.InsertPreviewError(urlStr, errs.ErrCodeHostBlacklisted)
-		return nil, errs.ErrHostBlacklisted
+		s.store.InsertPreviewError(urlStr, common.ErrCodeHostBlacklisted)
+		return nil, common.ErrHostBlacklisted
 	}
 
 	result := <-getResourceHandler().GeneratePreview(urlStr, forUserId, onHost)
-- 
GitLab