|
|
@@ -45,8 +45,11 @@ func (e *Enclosure) IsVideo() bool {
|
|
|
|
|
|
func (e *Enclosure) IsImage() bool {
|
|
|
mimeType := strings.ToLower(e.MimeType)
|
|
|
+ if strings.HasPrefix(mimeType, "image/") {
|
|
|
+ return true
|
|
|
+ }
|
|
|
mediaURL := strings.ToLower(e.URL)
|
|
|
- return strings.HasPrefix(mimeType, "image/") || strings.HasSuffix(mediaURL, ".jpg") || strings.HasSuffix(mediaURL, ".jpeg") || strings.HasSuffix(mediaURL, ".png") || strings.HasSuffix(mediaURL, ".gif")
|
|
|
+ return strings.HasSuffix(mediaURL, ".jpg") || strings.HasSuffix(mediaURL, ".jpeg") || strings.HasSuffix(mediaURL, ".png") || strings.HasSuffix(mediaURL, ".gif")
|
|
|
}
|
|
|
|
|
|
// EnclosureList represents a list of attachments.
|
|
|
@@ -55,8 +58,10 @@ type EnclosureList []*Enclosure
|
|
|
// FindMediaPlayerEnclosure returns the first enclosure that can be played by a media player.
|
|
|
func (el EnclosureList) FindMediaPlayerEnclosure() *Enclosure {
|
|
|
for _, enclosure := range el {
|
|
|
- if enclosure.URL != "" && strings.Contains(enclosure.MimeType, "audio/") || strings.Contains(enclosure.MimeType, "video/") {
|
|
|
- return enclosure
|
|
|
+ if enclosure.URL != "" {
|
|
|
+ if enclosure.IsAudio() || enclosure.IsVideo() {
|
|
|
+ return enclosure
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -65,7 +70,7 @@ func (el EnclosureList) FindMediaPlayerEnclosure() *Enclosure {
|
|
|
|
|
|
func (el EnclosureList) ContainsAudioOrVideo() bool {
|
|
|
for _, enclosure := range el {
|
|
|
- if strings.Contains(enclosure.MimeType, "audio/") || strings.Contains(enclosure.MimeType, "video/") {
|
|
|
+ if enclosure.IsAudio() || enclosure.IsVideo() {
|
|
|
return true
|
|
|
}
|
|
|
}
|
|
|
@@ -78,12 +83,7 @@ func (el EnclosureList) ProxifyEnclosureURL(router *mux.Router) {
|
|
|
if 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
|
|
|
- }
|
|
|
- }
|
|
|
+ proxifyAbsoluteURLIfMimeType(el[i], router)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -93,11 +93,15 @@ 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
|
|
|
- }
|
|
|
+ proxifyAbsoluteURLIfMimeType(e, router)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func proxifyAbsoluteURLIfMimeType(e *Enclosure, router *mux.Router) {
|
|
|
+ for _, mediaType := range config.Opts.MediaProxyResourceTypes() {
|
|
|
+ if strings.HasPrefix(e.MimeType, mediaType+"/") {
|
|
|
+ e.URL = mediaproxy.ProxifyAbsoluteURL(router, e.URL)
|
|
|
+ break
|
|
|
}
|
|
|
}
|
|
|
}
|