Guest User

Untitled

a guest
Aug 25th, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let canvas = document.createElement('canvas')
  2. let ctx = canvas.getContext('2d')
  3.  
  4. let used_ids = []
  5.  
  6. function makeid(length) {
  7.    var result           = '';
  8.    var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  9.    var charactersLength = characters.length;
  10.    for ( var i = 0; i < length; i++ ) {
  11.       result += characters.charAt(Math.floor(Math.random() * charactersLength));
  12.    }
  13.    
  14.     if (used_ids.indexOf(result) < 0) {
  15.         used_ids.push(result)
  16.         return result;
  17.     } else {
  18.         return makeid(length)
  19.     }
  20. }
  21.  
  22. function parse_html (html, child_selector ) {
  23.     let d = document.createElement('div')
  24.     d.innerHTML = html
  25.     if (!child_selector) return d
  26.     else return d.querySelector( child_selector )
  27. }
  28.  
  29. async function sleep(t) {
  30.     return new Promise((resolve)=>{
  31.         setTimeout(()=>{
  32.             resolve()
  33.         }, t*1000)
  34.     })
  35. }
  36.  
  37. async function dl_image (img, type, name) {
  38.     name = name || makeid(16)
  39.    
  40.     return new Promise((resolve, reject)=>{
  41.         img.onload = ()=>{
  42.             canvas.width = img.width
  43.             canvas.height = img.height
  44.             ctx.drawImage(img, 0, 0)
  45.             let base64 = canvas.toDataURL()
  46.             if ( base64.startsWith('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaYAAABsCAYAAAAhdRZlAAAgAElEQVR4Xu2dddRVxRbABxVbsQPBbkUURcVOBPGpYCs2JuqzO7AQRVG') ) {
  47.     resolve(null)
  48.     console.log(`%cПікча видалена :(`, 'color: #f44336')
  49.     return null
  50. }
  51.             console.log(`%cЗавантажуємо ${name}.${type}`, 'color: #ff9800')
  52.             let dl = parse_html(`<a href=${ base64 } download=${ name }">download</a>`, 'a')
  53.            dl.click()
  54.            resolve(dl)
  55.        }
  56.    })
  57. }
  58.  
  59. async function dl ( id ) {
  60.    let xhr = new XMLHttpRequest
  61.    let url = `https://prnt.sc/${ id }`
  62.    console.log(`%cПрацюємо з ${ url }`, 'color: #00bcd4;')
  63.    xhr.open("get", url, false )
  64.    xhr.send()
  65.    let img = parse_html(xhr.responseText, ".image-container img" )
  66.    if ( img ) {
  67.        let type = img.src.match(/\.png$/) ? "png" : "jpg"
  68.        return await dl_image(img, type, id )
  69.    } else {
  70.        console.log(`%cНічого не знайдено`, 'color: #f44336')
  71.        return null
  72.    }
  73. }
  74.  
  75. async function run (count) {
  76.    count = count || 5
  77.    let c = 0
  78.  
  79.    while (c<count){
  80.        if (await dl(makeid(6))) {
  81.            c++
  82.            console.log(`%cПрогрес выконання: ${ Math.floor((c)/count*100) }%`, 'color: #4caf50')
  83.        }
  84.  
  85.        await sleep(0.777)
  86.    }
  87.  
  88.    console.log(`%cЗавдання виконане!`, 'color: #ff5722')
  89. }
  90.  
  91. //Кількість ітерацій
  92. run(20)
Add Comment
Please, Sign In to add comment