[ILLUSION] Koikatu! - Card Sharing/Request Thread

5.00 star(s) 1 Vote
Status
Not open for further replies.
Mar 11, 2023
40
53
Update to userscript for batch downloading in the ux.getuploader.com
Now supported with passwords


JavaScript:
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://ux.getuploader.com/*/
// @match        https://ux.getuploader.com/*/index/date/desc/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=getuploader.com
// @grant        none
// ==/UserScript==

(function () {
    var target_tables = [...document.querySelectorAll('table.table.table-small-font.table-hover')];

    // target_tables returns 2 tables, one of the table has a suffix of "-clone", therefore,
    // we can safely ignore it.
    var target_table = target_tables.filter(x => x.id.indexOf('-clone') < 0)[0];

    // If it doesn't exist, don't run.
    if (!target_table) {
        return;
    }

    var base_download_url = 'https://downloadx.getuploader.com';
    var username = location.href.split('/')[3];
    var password = ''; // to be set by a input later

    async function download_protected(user, id, filename, password) {
        var url_template = `https://ux.getuploader.com/${user}/download/${id}`;

        var form = new FormData();
        form.append('password', password);

        var submit = await fetch(url_template, {
            method: 'POST',
            body: form
        });

        var submit_result = await submit.text();

        // Find the ID for downloading
        const index = submit_result.indexOf('<input type="hidden" name="token"');
        const value_range = [
            index + 33 + 8,
            index + 33 + 44
        ];

        const token = submit_result.slice(value_range[0], value_range[1]);

        // Return url via token
        return `https://downloadx.getuploader.com/g/${token}/${user}/${id}/${filename}`;
    }

    async function get_all_urls() {
        var urls = '';
        var table_links = [...target_table.querySelectorAll('tr td a')].filter(x => x.href.indexOf('/download/') >= 0);
        for (var i = 0; i < table_links.length; i++) {
            // Check if current item got lock
            var id = table_links[i].href.split('/').slice(-1)[0];
            var filename = table_links[i].innerText;

            if (table_links[i].parentElement.parentElement.querySelector('.glyphicon.glyphicon-lock') === null) {
                urls += `${base_download_url}/g/${username}/${id}/${filename}\n`;
            } else {
                urls += await download_protected(username, id, filename, password) + '\n';
            }
        }

        return urls;
    }

    function tryPasteToClipboard(links) {
        if (navigator.clipboard === undefined) {
            alert('Failed to put in clipboard! Links on devtools');
            console.log("\n\n" + links);
            return;
        }

        navigator.clipboard.writeText(links)
            .then(() => alert('Pasted on clipboard!'))
            .catch(() => {
                alert('Failed to put in clipboard! Links on devtools');
                console.log("\n\n" + links);
            });
    }

    var input = document.createElement('input');
    input.type = 'text';
    input.placeholder = 'password';
    input.onchange = function (e) {
        password = e.currentTarget.value;
    }

    // Create button for interaction
    var btn = document.createElement('a');
    btn.href = '#';
    btn.classList.add('btn', 'btn-default', 'btn-xs');
    btn.title = 'Get all download links';
    btn.innerText = 'Get all download links';
    btn.onclick = function () {
        get_all_urls().then(x => tryPasteToClipboard(x));
    }

    var btnParent = document.querySelector('.pull-left.space');
    btnParent.appendChild(btn);
    btnParent.appendChild(input);
})();
The password input field will be put here:
1700890023131.png

But this assumes that entire files shares the same password. if they are different then this won't work :(
 

gaud

Newbie
Oct 29, 2017
40
45
anyone has JMC/Sweii's Dinelynd?
part of october 2023 pack
 

AvadaN1441

New Member
Nov 7, 2020
3
0
Can anyone kindly share the works of ?
More specifically, these are:


 

yeah05

Newbie
Jul 5, 2023
24
7
Doen anyone has Ravenant's mashu card?
It's not include in Cramps archives

 

Kaubuto

Newbie
Oct 29, 2022
46
5
I'll ask in an indeterminate time. Don't think I want to have discussed this exact topic here then just immediately ask about it in DMs. o_O Lots of waller spies lurking around these waters. For now, try loading the coordinates on the card I posted? It's the same character so the body and face should be correct.


Scroll up a bit to the original (the one that doesn't say MECopy1) and click "Copy Material"
View attachment 3115209
Custom Chika credit to

Tq, where can I learn more regarding charamaker and scene?
 

SpringKoba108

New Member
Apr 30, 2020
1
0
Frieren(Frieren:Beyond Journey's End) from unagi,
Clementine(Overlord) from seth.
Would like to get the new Tamamo from ltsuki if anyone has it. Or Seth's Rei Ayanami posted back in june, really wish I was subbed at that time.
Can you share Clementine again? file link is dead.
 
Status
Not open for further replies.
5.00 star(s) 1 Vote