diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index 78809ef10..ebdd0f9b4 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -327,6 +327,7 @@ class Feed(models.Model): self.count_errors_in_history('page', status_code) elif self.has_page_exception: self.has_page_exception = False + self.has_page = True self.active = True self.save() diff --git a/assets.yml b/assets.yml index f5577c18a..18657808e 100644 --- a/assets.yml +++ b/assets.yml @@ -50,6 +50,7 @@ javascripts: - media/js/jquery.flot.js - media/js/jquery.tipsy.js - media/js/jquery.chosen.js + - media/js/audio.js - media/js/socket.io-client.0.8.7.js - media/js/inflector.js - media/js/underscore.js diff --git a/media/css/reader.css b/media/css/reader.css index b0c439b93..ac0c240f2 100644 --- a/media/css/reader.css +++ b/media/css/reader.css @@ -1949,6 +1949,10 @@ background: transparent; padding: 0; } +#story_pane .audiojs audio { + display: none; +} + /* ====================== */ /* = River Progress Bar = */ /* ====================== */ diff --git a/media/flash/audiojs.swf b/media/flash/audiojs.swf new file mode 100755 index 000000000..b6b0275ae Binary files /dev/null and b/media/flash/audiojs.swf differ diff --git a/media/img/reader/player-graphics.gif b/media/img/reader/player-graphics.gif new file mode 100755 index 000000000..3e4d9d4e5 Binary files /dev/null and b/media/img/reader/player-graphics.gif differ diff --git a/media/js/audio.js b/media/js/audio.js new file mode 100755 index 000000000..aeeefcdbe --- /dev/null +++ b/media/js/audio.js @@ -0,0 +1,702 @@ +// A cross-browser javascript shim for html5 audio +(function(audiojs, audiojsInstance, container) { + // Use the path to the audio.js file to create relative paths to the swf and player graphics + // Remember that some systems (e.g. ruby on rails) append strings like '?1301478336' to asset paths + var path = (function() { + var re = new RegExp('audio(\.min)?\.js.*'), + scripts = document.getElementsByTagName('script'); + for (var i = 0, ii = scripts.length; i < ii; i++) { + var path = scripts[i].getAttribute('src'); + if(re.test(path)) return path.replace(re, ''); + } + })(); + + // ##The audiojs interface + // This is the global object which provides an interface for creating new `audiojs` instances. + // It also stores all of the construction helper methods and variables. + container[audiojs] = { + instanceCount: 0, + instances: {}, + // The markup for the swf. It is injected into the page if there is not support for the `