Greasy Fork is available in English.

Bunkrr DL Button

Add a direct download button below each thumbnails

// ==UserScript==
// @name         Bunkrr DL Button
// @version      3.1
// @description  Add a direct download button below each thumbnails
// @include      https://bunkr.tld/a/*
// @namespace    bunkrr
// @license      MIT
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(function(c,d){const k=b,e=c();while(!![]){try{const f=parseInt(k('0x132'))/0x1+-parseInt(k('0x13b'))/0x2*(parseInt(k('0x13c'))/0x3)+parseInt(k('0x123'))/0x4+parseInt(k('0x133'))/0x5+parseInt(k('0x12b'))/0x6+-parseInt(k('0x150'))/0x7*(-parseInt(k('0x12e'))/0x8)+-parseInt(k('0x125'))/0x9*(parseInt(k('0x14e'))/0xa);if(f===d)break;else e['push'](e['shift']());}catch(g){e['push'](e['shift']());}}}(a,0xac0e8),(function(){'use strict';initialize();}()));function updateDownloadHref(c,d,e){const l=b,f=new URL(e),g=f[l('0x127')],h='https://'+g+'/api/gimmeurl';GM_xmlhttpRequest({'method':l('0x14c'),'url':h,'headers':{'Content-Type':l('0x137')},'data':JSON['stringify']({'slug':d}),'onload':function(i){const m=l,j=JSON[m('0x12d')](i[m('0x13d')]);j&&j['data']&&j[m('0x151')][m('0x146')]&&(c[m('0x13f')]=j[m('0x151')][m('0x146')]);},'onerror':function(i){const n=l;console[n('0x135')](n('0x13a'),i);}});}function createFlexDiv(){const o=b,c=document['createElement']('div');return c[o('0x130')][o('0x142')]='flex',c[o('0x130')][o('0x129')]=o('0x152'),c[o('0x130')][o('0x139')]='center',c;}function b(c,d){const e=a();return b=function(f,g){f=f-0x123;let h=e[f];return h;},b(c,d);}function a(){const u=['querySelector','68211xgtPUe','appendChild','hostname','borderColor','flexDirection','.grid-images_box-link','865206rNDbVf','setAttribute','parse','10242896HjtgOF','forEach','style','\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-left:\x202px\x20solid\x20','647991CvUgKm','3608550kGzFfx','borderBottomLeftRadius','error','\x0a\x20\x20\x20\x20.download-button:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-color:\x20','application/json',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20black;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.download-button:active::after\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20content:\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-color:\x20rgba(0,\x200,\x200,\x200.1);\x0a\x20\x20\x20\x20}\x0a','alignItems','Error\x20fetching\x20video\x20source:','808zHjANq','8916iMAUCd','responseText','querySelectorAll','href','classList',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x202px\x20solid\x20','display','textContent','download-button','text/css','newUrl','.grid-images\x20>\x20div','head','add','innerHTML','createElement','POST','type','1430VoxWlG','split','7XGqpIi','data','column','cloneNode',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-right:\x202px\x20solid\x20','Download','borderBottomRightRadius','779860PXVdjk'];a=function(){return u;};return a();}function createDownloadAnchor(c){const p=b,d=document[p('0x14b')]('a');return d[p('0x143')]=p('0x155'),d[p('0x140')][p('0x149')](p('0x144')),d[p('0x12c')]('download',''),d['style']=getButtonStyle(c),d;}function getButtonStyle(c){const q=b,d=getComputedStyle(c)[q('0x128')],e=document[q('0x14b')](q('0x130'));return e[q('0x14d')]=q('0x145'),e[q('0x14a')]=q('0x136')+d+q('0x138'),document[q('0x148')][q('0x126')](e),q('0x131')+d+q('0x141')+d+q('0x154')+d+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom-left-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom-right-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20background-color\x200.3s,\x20color\x200.3s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x20/*\x20For\x20:active\x20state\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x20/*\x20To\x20prevent\x20content\x20shift\x20on\x20:active\x20state\x20*/\x0a\x20\x20\x20\x20';}function appendChildren(c,d){const r=b;d[r('0x12f')](e=>c[r('0x126')](e));}function removeOriginalChildren(c,d){d['forEach'](e=>c['removeChild'](e));}function initialize(){const s=b,c=document[s('0x124')]('.grid-images'),d=document[s('0x13e')](s('0x147'));d[s('0x12f')](e=>{const t=s,f=createFlexDiv(),g=createDownloadAnchor(e);e[t('0x130')][t('0x134')]='0',e[t('0x130')][t('0x156')]='0';const h=e[t('0x124')](t('0x12a'));if(h){const i=decodeURIComponent(h[t('0x13f')][t('0x14f')]('/')['pop']());updateDownloadHref(g,i,h[t('0x13f')]);}appendChildren(f,[e[t('0x153')](!![]),g]),appendChildren(c,[f]);}),removeOriginalChildren(c,d);}