ROMS43 3DS Downloader

A simple script that let you get a direct download link from ROMS43's 3DS section

Versione datata 22/03/2015. Vedi la nuova versione l'ultima versione.

// ==UserScript==
// @name        ROMS43 3DS Downloader
// @namespace   roms43_3ds_downloader
// @description A simple script that let you get a direct download link from ROMS43's 3DS section
// @license     GPL; https://www.gnu.org/licenses/gpl.html
// @version     1.03
// @grant       none
// @match       http://www.roms43.com/download/*
// ==/UserScript==
/*
*
* ROMS43 3DS Downloader
* A simple script that let you get a direct download link from ROMS43's 3DS section.
* Licensed under the GPL license.
* https://www.gnu.org/licenses/gpl.html
* 
* Made by / aka slash
*
* Some files are still returning a 404 error, feel free to report these bugs as well as any idea to improve this script.
* https://greasyfork.org/en/scripts/8727-roms43-3ds-downloader/feedback
* Have fun
*
*/

link = "http://www.instantshare.net";

stop = false;

region = "none";

releaseName = "";

breadcrumb = document.getElementById("breadcrumb").innerHTML;

baseTitle = document.querySelectorAll(".topbar.orange")[0].innerHTML.slice(4,-5);
title = baseTitle.replace("Patched - ", "");
title = title.replace(/ /g, "%20");

if(document.body.innerHTML.search("eu.gif")!=-1){
    region = "eu";
} else if((document.body.innerHTML.search("jp.gif")!=-1)||(document.body.innerHTML.search("ja.gif")!=-1)){
    region = "jp";
} else if(document.body.innerHTML.search("us.gif")!=-1){
    region = "us";
}

if(breadcrumb.search("3ds")!=-1){
    if(breadcrumb.search("/3ds/")!=-1){
        link = link + "/3DS/" + title + ".3ds";
    }
    else if(breadcrumb.search("/3dscia/")!=-1){    
        for(i=0;i<document.querySelectorAll(".right").length;i++){
                if(document.querySelectorAll(".right")[i].innerHTML.search(baseTitle)!=-1){
                    releaseName = document.querySelectorAll(".right")[i].innerHTML;
                    releaseName = releaseName.replace(/ /g, "%20");
                    link = "http://www.instantshare.net/3DSCIA/" + releaseName+".cia";
                }
            }
        if(releaseName!=""){
           downloading = "<div style='text-align:center'><a style='font-size:50px' href="+link+">Download</a></div><p style='font-size:10px'>Feel free to report any bug <a style='font-size:10px' href='https://greasyfork.org/en/scripts/8727-roms43-3ds-downloader/feedback'>there.</a></p>";
           document.querySelectorAll(".full-wrapper")[1].innerHTML = downloading;
        }else{

           link = link + "/3DSCIA/" + title;
            downloading = "<div style='text-align:center;'><p style='font-size:50px'>Please check every link*</p><p style='font-size:10px'>Feel free to report any bug <a style='font-size:10px' href='https://greasyfork.org/en/scripts/8727-roms43-3ds-downloader/feedback'>there.</a></p><br/>";
            switch(region){
                    case "eu":downloading = downloading + "<a href="+link+"(Europe)(En,Fr,Ge,It,Es,Nl,Da,Sv,Nb,Fi).cia>Link 1</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)%20(En,Fr,De,Es,It,Nl,Sv,No,Da,Fi).cia>Link 2</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)%20(eShop).cia>Link 3</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(eShop)%20(Europe).cia>Link 4</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)(En,Fr,Ge,It,Es).cia>Link 5</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)%20(En,Fr,Ge,It,Es).cia>Link 6</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)%20(Theme).cia>Link 7</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe).cia>Link 8</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)%20(Rev%201)%20(eShop).cia>Link 9</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)%20(En,Fr,De,Es,It,Nl,Da).cia>Link 10</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)(RF)(FS).cia>Link 11</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Europe)%20(Update1.1)%20(DLC).cia>Link 12</a><br/>";break;
                    
                    case "jp":downloading = downloading + "<a href="+link+"%20(Japan)%20(RF).cia>Link 1</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Japan)(RF%20FS).cia>Link 2</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Japan).cia>Link 3</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(eShop)%20(Japan).cia>Link 4</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Japan)%20(Theme).cia>Link 5</a><br/>";break;
                    
                    case "us":downloading = downloading + "<a href="+link+"%20(USA)%20(RF).cia>Link 1</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(USA)(RF%20FS).cia>Link 2</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(USA).cia>Link 3</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(Usa).cia>Link 4</a><br/>";
                              downloading = downloading + "<a href="+link+"%20(USA)%20(Theme).cia>Link 5</a><br/>";break;
                    
                    case "none":downloading = downloading + "<a href="+link+".cia>Link</a>";break;
            }
            downloading = downloading + "</div><p style='font-size:10px'>*There's a lot of filename confusion in CIA's and you cannot directly know how a file is named using it's page informations.<br/>It's possible that you have to use the links ROMS43 is providing you.</p><p style='font-size:5px'>I'm sorry guys.</p>"
            document.querySelectorAll(".full-wrapper")[1].innerHTML = downloading + document.querySelectorAll(".full-wrapper")[1].innerHTML;
        }
    }
    else if(breadcrumb.search("/3dsvc/")!=-1){
        link = link + "/3DSVC/" + title;
        switch(region){
                case "eu":link=link+"%20(E).cia";break;
                case "jp":link=link+"%20(J).cia";break;
                case "us":link=link+"%20(U).cia";break;
                case "none":
                downloading = "<div style='text-align:center;'><p style='font-size:50px'>Please check every link*</p><p style='font-size:10px'>Feel free to report any bug <a style='font-size:10px' href='https://greasyfork.org/en/scripts/8727-roms43-3ds-downloader/feedback'>there.</a></p><br/>";
                downloading = downloading + "<a href="+link+"%20(E).cia>Link 1</a><br/>";
                downloading = downloading + "<a href="+link+"%20(J).cia>Link 2</a><br/>";
                downloading = downloading + "<a href="+link+"%20(U).cia>Link 3</a><br/>";
                downloading = downloading + "</div><p style='font-size:10px'>*There's a lot of filename confusion in VC's and you cannot directly know how a file is named using it's page informations.<br/>It's possible that you have to use the links ROMS43 is providing you.</p><p style='font-size:5px'>I'm sorry guys.</p>"
            document.querySelectorAll(".full-wrapper")[1].innerHTML = downloading + document.querySelectorAll(".full-wrapper")[1].innerHTML;
                stop=true;
                break;
        }
    }
    else if(breadcrumb.search("/3ds-patched/")!=-1){
        link = link + "/3DS-onlinepatched/" + title;
        switch(region){
                case "eu":link=link+"EUR-Online%20Patched.3dz";break;
                case "jp":link=link+"JPN-Online%20Patched.3dz";break;
                case "us":link=link+"USA-Online%20Patched.3dz";break;
        }

    }

    if((breadcrumb.search("/3dscia/")==-1)&&(stop==false)){
    downloading = "<div style='text-align:center'><a style='font-size:50px' href="+link+">Download</a></div><p style='font-size:10px'>Feel free to report any bug <a style='font-size:10px' href='https://greasyfork.org/en/scripts/8727-roms43-3ds-downloader/feedback'>there.</a></p>";
        document.querySelectorAll(".full-wrapper")[1].innerHTML = downloading;}
}