From d7d3be1130c665cc7fab9f05dbf32335229137a6 Mon Sep 17 00:00:00 2001
From: James Anderson <me@jamesaanderson.com>
Date: Thu, 25 Jul 2013 19:03:23 -0700
Subject: [PATCH] Add audio onebox
 http://meta.discourse.org/t/audio-html5-tag/8168

---
 app/assets/stylesheets/application/compose.css.scss  |  3 +++
 .../stylesheets/application/topic-post.css.scss      |  3 +++
 lib/oneboxer/audio_onebox.rb                         | 12 ++++++++++++
 lib/oneboxer/video_onebox.rb                         |  2 +-
 4 files changed, 19 insertions(+), 1 deletion(-)
 create mode 100644 lib/oneboxer/audio_onebox.rb

diff --git a/app/assets/stylesheets/application/compose.css.scss b/app/assets/stylesheets/application/compose.css.scss
index f837593a8..4bf610116 100644
--- a/app/assets/stylesheets/application/compose.css.scss
+++ b/app/assets/stylesheets/application/compose.css.scss
@@ -299,6 +299,9 @@
         webkit-border-radius: 4px;
         ms-border-radius: 4px;
       }
+      audio {
+        max-width: 100%;
+      }
     }
     #wmd-preview {
       border: 1px dashed $gray;
diff --git a/app/assets/stylesheets/application/topic-post.css.scss b/app/assets/stylesheets/application/topic-post.css.scss
index dac676909..f925244a5 100644
--- a/app/assets/stylesheets/application/topic-post.css.scss
+++ b/app/assets/stylesheets/application/topic-post.css.scss
@@ -515,6 +515,9 @@
     img {
       max-width: 100%;
     }
+    audio {
+      max-width: 100%;
+    }
     .topic-body {
       position: relative;
       .contents {
diff --git a/lib/oneboxer/audio_onebox.rb b/lib/oneboxer/audio_onebox.rb
new file mode 100644
index 000000000..c2fda69aa
--- /dev/null
+++ b/lib/oneboxer/audio_onebox.rb
@@ -0,0 +1,12 @@
+require_dependency 'oneboxer/base_onebox'
+
+module Oneboxer
+  class AudioOnebox < BaseOnebox
+
+    matcher /^https?:\/\/.*\.mp3$/
+
+    def onebox
+      "<audio controls><source src='#{@url}'><a href='#{@url}'>#{@url}</a></audio>"
+    end
+  end
+end
diff --git a/lib/oneboxer/video_onebox.rb b/lib/oneboxer/video_onebox.rb
index 2af9938f6..e3924069f 100644
--- a/lib/oneboxer/video_onebox.rb
+++ b/lib/oneboxer/video_onebox.rb
@@ -3,7 +3,7 @@ require_dependency 'oneboxer/base_onebox'
 module Oneboxer
   class VideoOnebox < BaseOnebox
     
-    matcher /^https?:\/\/.*\.(mov|mp4|ogg)$/
+    matcher /^https?:\/\/.*\.(mov|mp4)$/
 
     def onebox
       "<video width='100%' height='100%' controls><source src='#{@url}'><a href='#{@url}'>#{@url}</a></video>"