aboutsummaryrefslogtreecommitdiff
path: root/internal/model/enclosure.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/model/enclosure.go')
-rw-r--r--internal/model/enclosure.go43
1 files changed, 42 insertions, 1 deletions
diff --git a/internal/model/enclosure.go b/internal/model/enclosure.go
index c9ec485f..0e794575 100644
--- a/internal/model/enclosure.go
+++ b/internal/model/enclosure.go
@@ -2,7 +2,14 @@
// SPDX-License-Identifier: Apache-2.0
package model // import "miniflux.app/v2/internal/model"
-import "strings"
+import (
+ "strings"
+
+ "github.com/gorilla/mux"
+ "miniflux.app/v2/internal/config"
+ "miniflux.app/v2/internal/mediaproxy"
+ "miniflux.app/v2/internal/urllib"
+)
// Enclosure represents an attachment.
type Enclosure struct {
@@ -15,6 +22,10 @@ type Enclosure struct {
MediaProgression int64 `json:"media_progression"`
}
+type EnclosureUpdateRequest struct {
+ MediaProgression int64 `json:"media_progression"`
+}
+
// Html5MimeType will modify the actual MimeType to allow direct playback from HTML5 player for some kind of MimeType
func (e Enclosure) Html5MimeType() string {
if e.MimeType == "video/m4v" {
@@ -34,3 +45,33 @@ func (el EnclosureList) ContainsAudioOrVideo() bool {
}
return false
}
+
+func (el EnclosureList) ProxifyEnclosureURL(router *mux.Router) {
+ proxyOption := config.Opts.MediaProxyMode()
+
+ if proxyOption == "all" || proxyOption != "none" {
+ for i := range el {
+ if urllib.IsHTTPS(el[i].URL) {
+ for _, mediaType := range config.Opts.MediaProxyResourceTypes() {
+ if strings.HasPrefix(el[i].MimeType, mediaType+"/") {
+ el[i].URL = mediaproxy.ProxifyAbsoluteURL(router, el[i].URL)
+ break
+ }
+ }
+ }
+ }
+ }
+}
+
+func (e *Enclosure) ProxifyEnclosureURL(router *mux.Router) {
+ proxyOption := config.Opts.MediaProxyMode()
+
+ if proxyOption == "all" || proxyOption != "none" && !urllib.IsHTTPS(e.URL) {
+ for _, mediaType := range config.Opts.MediaProxyResourceTypes() {
+ if strings.HasPrefix(e.MimeType, mediaType+"/") {
+ e.URL = mediaproxy.ProxifyAbsoluteURL(router, e.URL)
+ break
+ }
+ }
+ }
+}