summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Bröms <9416498+cez81@users.noreply.github.com>2018-10-30 03:17:26 +0100
committerLunny Xiao <xiaolunwen@gmail.com>2018-10-30 10:17:26 +0800
commitdb30d6d7911b2fe458b5ccb5c6f6ad73381c9a70 (patch)
treeff374ccef3f61a5f17c3367472d068c6fca96185
parent735b12eaf03613ed6986b3828a2e5715ed24484b (diff)
downloadgitea-db30d6d7911b2fe458b5ccb5c6f6ad73381c9a70.tar.gz
gitea-db30d6d7911b2fe458b5ccb5c6f6ad73381c9a70.zip
Serve audio files using HTML5 audio tag (#5221)
* Serve audio files using HTML5 audio tag * Correct copy paste error
-rw-r--r--modules/base/tool.go5
-rw-r--r--options/locale/locale_en-US.ini1
-rw-r--r--routers/repo/view.go2
-rw-r--r--templates/repo/view_file.tmpl4
4 files changed, 12 insertions, 0 deletions
diff --git a/modules/base/tool.go b/modules/base/tool.go
index 5b79a844ab..b069e5faee 100644
--- a/modules/base/tool.go
+++ b/modules/base/tool.go
@@ -576,6 +576,11 @@ func IsVideoFile(data []byte) bool {
return strings.Index(http.DetectContentType(data), "video/") != -1
}
+// IsAudioFile detects if data is an video format
+func IsAudioFile(data []byte) bool {
+ return strings.Index(http.DetectContentType(data), "audio/") != -1
+}
+
// EntryIcon returns the octicon class for displaying files/directories
func EntryIcon(entry *git.TreeEntry) string {
switch {
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index a0babf7a19..6f32341575 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -592,6 +592,7 @@ file_view_raw = View Raw
file_permalink = Permalink
file_too_large = The file is too large to be shown.
video_not_supported_in_browser = Your browser does not support the HTML5 'video' tag.
+audio_not_supported_in_browser = Your browser does not support the HTML5 'audio' tag.
stored_lfs = Stored with Git LFS
commit_graph = Commit Graph
diff --git a/routers/repo/view.go b/routers/repo/view.go
index 210eb9fe5f..657fe315a2 100644
--- a/routers/repo/view.go
+++ b/routers/repo/view.go
@@ -264,6 +264,8 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st
ctx.Data["IsPDFFile"] = true
case base.IsVideoFile(buf):
ctx.Data["IsVideoFile"] = true
+ case base.IsAudioFile(buf):
+ ctx.Data["IsAudioFile"] = true
case base.IsImageFile(buf):
ctx.Data["IsImageFile"] = true
}
diff --git a/templates/repo/view_file.tmpl b/templates/repo/view_file.tmpl
index 6c37aab58a..07d1075b13 100644
--- a/templates/repo/view_file.tmpl
+++ b/templates/repo/view_file.tmpl
@@ -55,6 +55,10 @@
<video controls src="{{EscapePound $.RawFileLink}}">
<strong>{{.i18n.Tr "repo.video_not_supported_in_browser"}}</strong>
</video>
+ {{else if .IsAudioFile}}
+ <audio controls src="{{EscapePound $.RawFileLink}}">
+ <strong>{{.i18n.Tr "repo.audio_not_supported_in_browser"}}</strong>
+ </audio>
{{else if .IsPDFFile}}
<iframe width="100%" height="600px" src="{{AppSubUrl}}/vendor/plugins/pdfjs/web/viewer.html?file={{EscapePound $.RawFileLink}}"></iframe>
{{else}}