From 8bfbbac2b8f364bb03866712b113cd2f5de8b9d9 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Thu, 25 Jan 2018 00:23:44 -0500 Subject: Enhancement/video (#669) * Test stricter video extractor * Mess around with mutations * Revert back to strict click listener * Update theme * Update dependencies * Update theme * Create pip toggle * Add pip disabler * Update theme * Update theme --- app/src/main/assets/js/media.coffee | 47 +++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 23 deletions(-) (limited to 'app/src/main/assets/js/media.coffee') diff --git a/app/src/main/assets/js/media.coffee b/app/src/main/assets/js/media.coffee index 810c09b7..a15a5279 100644 --- a/app/src/main/assets/js/media.coffee +++ b/app/src/main/assets/js/media.coffee @@ -1,29 +1,30 @@ # we will handle media events _frostMediaClick = (e) -> - ### - # Commonality; check for valid target - ### + element = e.target or e.srcElement + if !element?.dataset.sigil?.toLowerCase().includes("inlinevideo") + return - element = e.target or e.srcElement - if !element.hasAttribute("data-sigil") or !element.getAttribute("data-sigil").toLowerCase().includes("inlinevideo") - return - console.log "Found inline video" - element = element.parentNode - if !element.hasAttribute("data-store") - return - dataStore = undefined - try - dataStore = JSON.parse(element.getAttribute("data-store")) - catch e - return - if !dataStore.src - return - console.log "Inline video #{dataStore.src}" - Frost?.loadVideo dataStore.src, dataStore.animatedGifVideo - e.stopPropagation() - e.preventDefault() - return + i = 0 + while !element.hasAttribute("data-store") + if ++i > 2 + return + element = element.parentNode -document.addEventListener "click", _frostMediaClick, true + try + dataStore = JSON.parse(element.dataset.store) + catch e + return + url = dataStore.src + + if !url || !url.startsWith("http") + return + + console.log "Inline video #{url}" + if Frost?.loadVideo url, dataStore.animatedGifVideo + e.stopPropagation() + e.preventDefault() + return + +document.addEventListener "click", _frostMediaClick, true \ No newline at end of file -- cgit v1.2.3