Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let canvas = document.createElement('canvas')
- let ctx = canvas.getContext('2d')
- let used_ids = []
- function makeid(length) {
- var result = '';
- var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
- var charactersLength = characters.length;
- for ( var i = 0; i < length; i++ ) {
- result += characters.charAt(Math.floor(Math.random() * charactersLength));
- }
- if (used_ids.indexOf(result) < 0) {
- used_ids.push(result)
- return result;
- } else {
- return makeid(length)
- }
- }
- function parse_html (html, child_selector ) {
- let d = document.createElement('div')
- d.innerHTML = html
- if (!child_selector) return d
- else return d.querySelector( child_selector )
- }
- async function dl_image (img, type, name) {
- name = name || makeid(16)
- return new Promise((resolve, reject)=>{
- img.onload = ()=>{
- canvas.width = img.width
- canvas.height = img.height
- ctx.drawImage(img, 0, 0)
- let base64 = canvas.toDataURL()
- if ( base64.startsWith('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaYAAABsCAYAAAAhdRZlAAAgAElEQVR4Xu2dddRVxRbABxVbsQPBbkUURcVOBPGpYCs2JuqzO7AQRVG') ) {
- resolve(null)
- console.log(`%cПікча видалена :(`, 'color: #f44336')
- return null
- }
- console.log(`%cЗавантажуємо ${name}.${type}`, 'color: #ff9800')
- let dl = parse_html(`<a href=${ base64 } download=${ name }">download</a>`, 'a')
- dl.click()
- resolve(dl)
- }
- })
- }
- async function dl ( id ) {
- let xhr = new XMLHttpRequest
- let url = `https://prnt.sc/${ id }`
- console.log(`%cПрацюємо з ${ url }`, 'color: #00bcd4;')
- xhr.open("get", url, false )
- xhr.send()
- let img = parse_html(xhr.responseText, ".image-container img" )
- if ( img ) {
- let type = img.src.match(/\.png$/) ? "png" : "jpg"
- return await dl_image(img, type, id )
- } else {
- console.log(`%cНічого не знайдено`, 'color: #f44336')
- return null
- }
- }
- async function run (count) {
- count = count || 5
- let c = 0
- while (c<count){
- if (await dl(makeid(6))) {
- c++
- console.log(`%cПрогрес выконання: ${ Math.floor((c)/count*100) }%`, 'color: #4caf50')
- }
- }
- console.log(`%cЗавдання виконане!`, 'color: #ff5722')
- }
- //Кількість ітерацій
- run(10)
Add Comment
Please, Sign In to add comment