cluster by clips, never cache

This commit is contained in:
j 2021-11-24 12:05:09 +01:00
parent db6a2f25bd
commit ade1177101
2 changed files with 19 additions and 9 deletions

View file

@ -192,10 +192,11 @@ function showOverlay(event) {
}
function renderAnnotation(config, video, ascroll, annotation) {
function renderAnnotation(config, video, ascroll, clip) {
var div = document.createElement('div')
div.classList.add('annotation')
var annotation = clip[0]
var color1 = `hsl(${annotation.color1.hue}, 60%, 15%)`
var color2 = `hsl(${annotation.color2.hue}, 60%, 15%)`
if (!config.first) {
@ -209,7 +210,11 @@ function renderAnnotation(config, video, ascroll, annotation) {
var txt = `${title}`
figcaption = `<figcaption><a href="${pandoraURL}/${annotation.id}" target="_blank">${txt}</a></figcaption>`
}
annotation.value = annotation.value.replace(/src="\//g, `src="${pandoraURL}/`).replace(/href="\//g, `href="${pandoraURL}/`)
var values = []
clip.forEach(a => {
values.push(a.value.replace(/src="\//g, `src="${pandoraURL}/`).replace(/href="\//g, `href="${pandoraURL}/`))
})
values = values.join('<br><br>')
div.innerHTML = `
<div class="frame">
<figure>
@ -217,7 +222,7 @@ function renderAnnotation(config, video, ascroll, annotation) {
${figcaption}
</figure>
</div>
<div class="text">${annotation.value}</div>
<div class="text">${values}</div>
`
ascroll.appendChild(div)
var frame = div.querySelector('.frame')
@ -280,13 +285,17 @@ async function loadClips(annotations) {
'id', 'hue', 'saturation', 'lightness'
]}).then(response => {
var colors = {}
var clips = {}
response.data.items.forEach(clip => {
colors[clip.id] = clip
})
var previous
annotations.forEach(annotation => {
var clipId = annotation.id.split('/')[0] + '/' + annotation.in.toFixed(3) + '-'+ annotation.out.toFixed(3)
clips[clipId] = clips[clipId] || []
clips[clipId].push(annotation)
annotation.color1 = colors[clipId]
if(previous) {
previous.color2 = annotation.color1
}
@ -295,7 +304,9 @@ async function loadClips(annotations) {
if (annotations.length) {
annotations[annotations.length - 1].color2 = annotations[0].color1
}
return annotations
//return annotations
console.log('WTF', Object.values(clips))
return Object.values(clips)
})
}
@ -326,7 +337,7 @@ function loadAnnotations(config) {
return false
}
} else {
return annotation.value.slice(0, 2) != 'E:'
return annotation
}
})
renderAnnotations(config)
@ -361,7 +372,7 @@ function loadAnnotations(config) {
}
}
})
}
})
})
loadClips(annotations).then(annotations => {
config.annotations = annotations
@ -374,11 +385,10 @@ function loadAnnotations(config) {
config.layer = config.layer || layer
if (config.annotations) {
if (false && config.annotations) {
renderAnnotations(config)
} else {
loadAnnotations(config)
}
window.addEventListener('resize', resize, false);

View file

@ -174,7 +174,7 @@ class Text(models.Model):
if not item_id:
item_id = self.data.get('item')
if item_id:
item = Film.objects.filter(pandora_id=item_id).first()
item = Film.objects.filter(pandora_url=item_id).first()
if item:
for key in ('title', 'title_zh', 'director'):
data['item_' + key] = item.data[key]