(() => {
function loadScript(src, callback) {
const script = document.createElement('script')
script.src = src
script.onload = callback
document.head.appendChild(script)
}
loadScript('https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js', () => {
const canvas = document.querySelector('canvas');
const zip = new JSZip()
const files = new Set()
let run = true
const downloadZip = (content) => {
const downloadLink = document.createElement('a')
downloadLink.href = URL.createObjectURL(content)
downloadLink.download = 'images.zip'
downloadLink.click()
};
const process = () => {
if (!run) {
let i = 0
files.forEach(imgData => {
i++;
zip.file(`image_${i}.png`, imgData, {base64: true})
});
zip.generateAsync({type: 'blob'}).then(downloadZip)
return
}
const dataURL = canvas.toDataURL()
const imgData = dataURL.replace(/^data:image\/(png|jpg);base64,/, "")
files.add(imgData)
requestAnimationFrame(process)
};
requestAnimationFrame(process)
setTimeout(() => {
run = false
}, 3000)
})
})()
Не вспомню где, возможно в коментах на том же хабре, кто-то писал что работает рандомное число определенной длинны, но первым должен идти всегда 0.
Я с этим тоже экспериментировал - у меня не выходило :(
Да и значение предыдущего дня не засчитывалось ни разу.
Я уже забросил это дело, просто поделился результатами своих экспериментов)