مۇنازىرىلەر » قۇرۇش تەلىپى

Can someone make a script to download video attachments from forums?

§
يوللانغان ۋاقتى: 2020-04-06
تەھرىرلەنگەن ۋاقتى: 2020-04-06

Can someone make a script to download video attachments from forums?

I already have a script for downloading images and exporting as zip from forum posts but can some help me do the same for videos too?

Thanks in advance

Here's the script for image downloads

// ==UserScript==
// @name         Gallery Downloader - Sep 1, 2019
// @namespace    ThotDev
// @description  Download galleries from posts on example.com
// @version      1.1.2
// @icon         https://i.imgur.com/5xpgAny.jpg
// @license      WTFPL; http://www.wtfpl.net/txt/copying/
// @match        https://example.com/*
// @require      https://code.jquery.com/jquery-3.3.1.min.js
// @require      https://unpkg.com/[email protected]/dist/jszip.min.js
// @require      https://unpkg.com/[email protected]/dist/FileSaver.min.js
// @require      https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js?v=a834d46
// @noframes
// @connect      self
// @run-at       document-start
// @grant        GM.xmlHttpRequest
// @grant        GM_xmlhttpRequest
// ==/UserScript==

/* globals jQuery JSZip saveAs */

jQuery(function ($) {
    $('.message-attribution-opposite')
        .map(function () { return $(this).children('li:first'); })
        .each(function () {
                var downloadLink = $('<li><a href="#">⬇️ Download</a><li>');
                var $text = downloadLink.children('a');
                downloadLink.insertBefore($(this));
                downloadLink.click(function (e) {
                    e.preventDefault();

                    var urls = $(this)
                        .parents('.message-main')
                        .first()
                        .find('a.js-lbImage,.lbContainer-zoomer')
                        .map(function () { return $(this).is('[href]') ? $(this).attr('href') : $(this).data('src'); })
                        .get();

                    var zip = new JSZip(),
                        current = 0,
                        total = urls.length;

                    $text.text('Downloading...');

                    function next () {
                        if (current < total) {
                            $text.text('Downloading ' + (current+1) + '/' + total);

                            GM.xmlHttpRequest({
                                method: 'GET',
                                url: urls[current++],
                                responseType: 'arraybuffer',
                                onload: function (response) {
                                    try {
                                        debugger;
                                        var name = response.responseHeaders.match(/^content-disposition.+(?:filename=)(.+)$/mi)[1].replace(/\"/g, '');
                                        var data = response.response;
                                        zip.file(name, data);
                                    }
                                    catch (err) {

                                    }

                                    next();
                                },
                                onerror: function (response) {
                                    next();
                                }
                            });
                        }
                        else {
                            const fileName = $(".p-title-value")[0].textContent
                            const timeStamp = $.now()
                            $text.text('Generating zip...');
                            zip.generateAsync({ type: 'blob' })
                                .then(function (blob) {
                                    $text.text('Download complete!');
                                    saveAs(blob, `${fileName}-${timeStamp}.zip`);
                                });

                        }
                    }
                    next();
                });
            }
        );
});

جاۋاب قايتۇرۇش

جاۋاب قايتۇرۇش ئۈچۈن كىرىش.