From 435d22a65618e1b3db96240bd6d7bd04cb8387af Mon Sep 17 00:00:00 2001 From: j Date: Fri, 4 Aug 2023 19:03:44 +0200 Subject: [PATCH] play edit on home page --- static/js/home.bakma.js | 68 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/static/js/home.bakma.js b/static/js/home.bakma.js index 4ffca35..11b5a20 100644 --- a/static/js/home.bakma.js +++ b/static/js/home.bakma.js @@ -26,7 +26,8 @@ pandora.ui.home = function() { width: '560px', margin: '0 auto 0 auto' }) - .appendTo(that), + .appendTo(that); + /* $reflectionImage = $('') .attr({src: '/static/png/logo.png'}) @@ -58,8 +59,9 @@ pandora.ui.home = function() { margin: '0 auto 0 auto', }) .appendTo($box), + */ - $logo = Ox.Element({ + var $logo = Ox.Element({ element: '', tooltip: function() { return Ox._('Enter {0}', [pandora.site.site.name]); @@ -263,6 +265,68 @@ pandora.ui.home = function() { } $aboutButton.appendTo($footer); + function getVideos(clips, resolution) { + var videos = []; + clips.filter(function(clip) { + return clip.duration; + }).map(function(clip) { + videos = videos.concat(pandora.getClipVideos(clip, resolution)); + }); + console.log(videos) + return videos; + } + + + function loadEdit() { + pandora.api.getEdit({ + id: "mamafih:homepage", + }, response => { + var edit = response.data + pandora.api.sortClips({ + edit: edit.id, + sort: [{ + key: 'random', + operator: '+' + }] + }, result => { + console.log('!!', result) + edit.clips.forEach(function(clip) { + clip.sort = result.data.clips.indexOf(clip.id); + }); + edit.clips = Ox.sortBy(edit.clips, 'sort'); + var player = window.player = Ox.VideoElement({ + items: getVideos(Ox.clone(edit.clips), pandora.user.ui.videoResolution), + autoplay: true, + muted: true, + loop: true, + }).css({ + position: 'fixed', + top: 0, + bottom: 0, + left: 0, + right: 0, + width: '100%', + height: '100%' + }) + player.find('video').css({ + width: '100%', + height: '100%', + 'object-fit': 'cover', + }) + player.prependTo(pandora.$ui.home) + player.bindEvent('loadedmetadata', () => { + console.log('now play') + player.play() + setTimeout(() => { + player.play() + }, 1000) + }) + }) + }) + } + + loadEdit() + function showFeatures() { pandora.api.getHomeItems({active: true}, function(result) { var items = result.data.items.filter(pandora.isCompleteHomeItem),