33 lines
1.1 KiB
CoffeeScript
33 lines
1.1 KiB
CoffeeScript
AntiAutoplay =
|
|
init: ->
|
|
return if !Conf['Disable Autoplaying Sounds']
|
|
$.addClass doc, 'anti-autoplay'
|
|
@stop audio for audio in $$ 'audio[autoplay]', doc
|
|
window.addEventListener 'loadstart', ((e) => @stop e.target), true
|
|
Post.callbacks.push
|
|
name: 'Disable Autoplaying Sounds'
|
|
cb: @node
|
|
CatalogThread.callbacks.push
|
|
name: 'Disable Autoplaying Sounds'
|
|
cb: @node
|
|
$.ready => @process d.body
|
|
|
|
stop: (audio) ->
|
|
return unless audio.autoplay
|
|
audio.pause()
|
|
audio.autoplay = false
|
|
return if audio.controls
|
|
audio.controls = true
|
|
$.addClass audio, 'controls-added'
|
|
|
|
node: ->
|
|
AntiAutoplay.process @nodes.root
|
|
|
|
process: (root) ->
|
|
for iframe in $$ 'iframe[src*="youtube"][src*="autoplay=1"]', root
|
|
iframe.src = iframe.src.replace(/\?autoplay=1&?/, '?').replace('&autoplay=1', '')
|
|
$.addClass iframe, 'autoplay-removed'
|
|
for object in $$ 'object[data*="youtube"][data*="autoplay=1"]', root
|
|
object.data = object.data.replace(/\?autoplay=1&?/, '?').replace('&autoplay=1', '')
|
|
$.addClass object, 'autoplay-removed'
|
|
return |