Multifile support in Replace X / Image Prefetching. #2171
This commit is contained in:
parent
b86a2e917a
commit
976342c4c6
@ -9,7 +9,7 @@ ImageLoader =
|
|||||||
cb: @node
|
cb: @node
|
||||||
|
|
||||||
$.on d, 'PostsInserted', ->
|
$.on d, 'PostsInserted', ->
|
||||||
g.posts.forEach ImageLoader.prefetch
|
g.posts.forEach ImageLoader.prefetchAll
|
||||||
|
|
||||||
if Conf['Replace WEBM']
|
if Conf['Replace WEBM']
|
||||||
$.on d, 'scroll visibilitychange 4chanXInitFinished PostsInserted', @playVideos
|
$.on d, 'scroll visibilitychange 4chanXInitFinished PostsInserted', @playVideos
|
||||||
@ -27,12 +27,13 @@ ImageLoader =
|
|||||||
order: 98
|
order: 98
|
||||||
|
|
||||||
node: ->
|
node: ->
|
||||||
return if @isClone or !@file
|
return if @isClone
|
||||||
ImageLoader.replaceVideo @ if Conf['Replace WEBM'] and @file.isVideo
|
for file in @files
|
||||||
ImageLoader.prefetch @
|
ImageLoader.replaceVideo @, file if Conf['Replace WEBM'] and file.isVideo
|
||||||
|
ImageLoader.prefetch @, file
|
||||||
|
return
|
||||||
|
|
||||||
replaceVideo: (post) ->
|
replaceVideo: (post, file) ->
|
||||||
{file} = post
|
|
||||||
{thumb} = file
|
{thumb} = file
|
||||||
video = $.el 'video',
|
video = $.el 'video',
|
||||||
preload: 'none'
|
preload: 'none'
|
||||||
@ -49,9 +50,7 @@ ImageLoader =
|
|||||||
file.thumb = video
|
file.thumb = video
|
||||||
file.videoThumb = true
|
file.videoThumb = true
|
||||||
|
|
||||||
prefetch: (post) ->
|
prefetch: (post, file) ->
|
||||||
{file} = post
|
|
||||||
return unless file
|
|
||||||
{isImage, isVideo, thumb, url} = file
|
{isImage, isVideo, thumb, url} = file
|
||||||
return if file.isPrefetched or !(isImage or isVideo) or post.isHidden or post.thread.isHidden
|
return if file.isPrefetched or !(isImage or isVideo) or post.isHidden or post.thread.isHidden
|
||||||
type = if (match = url.match(/\.([^.]+)$/)[1].toUpperCase()) is 'JPEG' then 'JPG' else match
|
type = if (match = url.match(/\.([^.]+)$/)[1].toUpperCase()) is 'JPEG' then 'JPG' else match
|
||||||
@ -75,16 +74,22 @@ ImageLoader =
|
|||||||
thumb.src = url
|
thumb.src = url
|
||||||
el.src = url
|
el.src = url
|
||||||
|
|
||||||
|
prefetchAll: (post) ->
|
||||||
|
for file in post.files
|
||||||
|
ImageLoader.prefetch post, file
|
||||||
|
return
|
||||||
|
|
||||||
toggle: ->
|
toggle: ->
|
||||||
if Conf['prefetch'] = @checked
|
if Conf['prefetch'] = @checked
|
||||||
g.posts.forEach ImageLoader.prefetch
|
g.posts.forEach ImageLoader.prefetchAll
|
||||||
return
|
return
|
||||||
|
|
||||||
playVideos: ->
|
playVideos: ->
|
||||||
# Special case: Quote previews are off screen when inserted into document, but quickly moved on screen.
|
# Special case: Quote previews are off screen when inserted into document, but quickly moved on screen.
|
||||||
qpClone = $.id('qp')?.firstElementChild
|
qpClone = $.id('qp')?.firstElementChild
|
||||||
g.posts.forEach (post) ->
|
g.posts.forEach (post) ->
|
||||||
for post in [post, post.clones...] when post.file?.videoThumb
|
for post in [post, post.clones...]
|
||||||
{thumb} = post.file
|
for file in post.files when file.videoThumb
|
||||||
if Header.isNodeVisible(thumb) or post.nodes.root is qpClone then thumb.play() else thumb.pause()
|
{thumb} = file
|
||||||
|
if Header.isNodeVisible(thumb) or post.nodes.root is qpClone then thumb.play() else thumb.pause()
|
||||||
return
|
return
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user