Sleazy Fork is available in English.

KMImgDLer

Auto-download all pics

Від 27.12.2019. Дивіться остання версія.

// ==UserScript==
// @name     KMImgDLer
// @version  1.0
// @grant    GM_download
// @include https://www.kaufmich.com/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js

// @namespace https://greasyfork.org/users/290665
// @description Auto-download all pics
// ==/UserScript==

$(function() {
    $('head').append('<style>'
                     +'.download_error {color:white;background-color:#880010;padding:1px 4px;border-radius:2px;margin:0px 4px; }'
                     +'.download_ok {color:white;background-color:#10a020;padding:1px 4px;border-radius:2px;margin:0px 4px; }'
                     +'</style>');

    var name = $('h2.user-name').clone().children().remove().end().text();
    var myspace = $('<div id="KMImgDLer" style="position:absolute;top:100px;left:2px;overflow:auto;z-index:10000;background-color:white;border:2px solid red;padding:8px;"></div>').appendTo('body');
    $('<h2>'+name+'</h2>').appendTo(myspace);
    $(myspace).append('First, open gallery! Then, ');
    $('<a href="#">[start downloading]</a>').on('click', start).appendTo(myspace);

});

function start() {
    var downloadlist = [];
    $('#profile-gallery li').each(function() {
        var link = $(this).attr('data-photo-src');
        if (! link.match(/images\/placeholders/)) {
            downloadlist.push(link);
            console.log(link);
        }
    });
    var name = $('h2.user-name').clone().children().remove().end().text();
    dlAll(name,downloadlist);
}

function dlAll(path,downloadlist) {

    var dialog = $('<div id="dialog" title="Download to '+path+' ..."></div>').appendTo($('#KMImgDLer'));

    for (let URL of downloadlist) {
        var name = URL.replace(/.*\//,'');
        var file = path.replace(/[^\w-\(\)]/g,'')+'/'+name;
        URL = URL.replace(/^\/\//,'https://');
        var line = $('<div class="RLDL" data-name="'+name+'">'+name+'</div>\n').appendTo(dialog);

        console.log([URL,file]);

        (function(url,filepath,filename,linediv) {
            var dl = GM_download({
                url: url,
                name: filepath,
                saveAs: false,
                onerror: function(){
                    $(linediv).append('<span class="download_error">ERROR: '+err.error+'<br>'+err.details+'</span>');
                },
                onload: function() {
                    $(linediv).append('<span class="download_ok">✓</span>');
                }
            });
        })(URL,file,name,line);

    }
}