Export Your Anime/Manga XML List On Any Page + Wayback Machine Your Profile.

This script adds a button on any anime/manga page, click on this button to download your Anime/Manga XML list. There's a button that's added on your profile only and Backups Your Profile using the Wayback Machine services.

От 18.09.2020. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Export Your Anime/Manga XML List On Any Page + Wayback Machine Your Profile.
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  This script adds a button on any anime/manga page, click on this button to download your Anime/Manga XML list. There's a button that's added on your profile only and Backups Your Profile using the Wayback Machine services.
// @author       hacker09
// @match        https://myanimelist.net/anime/*
// @match        https://myanimelist.net/manga/*
// @match        https://myanimelist.net/profile/*
// @match        https://myanimelist.net/panel.php?go=export
// @grant        none
// @require      https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
// @run-at       document-end
// ==/UserScript==

(function() {
    'use strict';
    var $ = window.jQuery; //Defines That The Symbol $ Is A jQuery
    var username = document.querySelector('a.header-profile-link').innerText;

    if (location.href === 'https://myanimelist.net/panel.php?go=export')
    {
      document.querySelector("input.inputButton").outerHTML = '<input type="submit" name="subexport" value="Export My List Now" class="inputButton">';
    }
    //*****************************************************************************************************************************************************
    if (location.href !== 'https://myanimelist.net/panel.php?go=export' && window.location.href !== 'https://myanimelist.net/profile/'+username+'')
     {
    var type,downtype;
    var token = document.head.querySelector("[name='csrf_token']").content;

    window.location.pathname.split('/')[1] === 'anime' ? (type = 'anime', downtype = 'type=1') : (type = 'manga', downtype = 'type=2');
    var XMLBackupBTN = document.createElement("a");
    type === 'anime' ? XMLBackupBTN.innerHTML = "Backup My AnimeList" : XMLBackupBTN.innerHTML = "Backup My MangaList";
    document.querySelector("span.information.type").parentElement.appendChild(XMLBackupBTN);
    XMLBackupBTN.setAttribute("id", "XMLBackupBTN");
    XMLBackupBTN.setAttribute("style", "cursor: pointer;margin-left: 15px;font-size: 10px;");
     document.querySelector("#XMLBackupBTN").addEventListener ("click", function() {(async function() {
    const response = await fetch("https://myanimelist.net/panel.php?go=export", { "headers": { "content-type": "application/x-www-form-urlencoded"}, "body": downtype+"&subexport=Export+My+List&csrf_token="+token+"", "method": "POST"}); //Get the xml file
    const html = await response.text(); //Gets the fetch response
    const newDocument = new DOMParser().parseFromString(html, 'text/html'); //Parses the fetch response
    document.location = newDocument.querySelectorAll("div.goodresult")[0].childNodes[2].href;
}()); //Finishes the async function
} , false);
}
    //*****************************************************************************************************************************************************
    if (window.location.href === 'https://myanimelist.net/profile/'+username+'')
{
    var BackupProfileBTN = document.createElement("a");
    BackupProfileBTN.innerHTML = "Backup My Profile";
    document.querySelector("a.header-right.mt4.mr0").parentElement.appendChild(BackupProfileBTN);
    BackupProfileBTN.setAttribute("id", "BackupProfileBTN");
    BackupProfileBTN.setAttribute("style", "cursor: pointer;margin-left: 15px;font-size: 10px;");
    document.querySelector("#BackupProfileBTN").addEventListener ("click", saveprofileonarchiveorg , false);
    function saveprofileonarchiveorg (){function iFrameLoaded(id, src) {
    var deferred = $.Deferred(),
        iframe = $("<iframe id='iframe'></iframe>").attr({
            "id": id,
            "src": src
        });

    iframe.load(deferred.resolve);
    iframe.appendTo("body");

    deferred.done(function() {
        console.log("iframe loaded: " + id);
    });

    return deferred.promise();
}
$.when(iFrameLoaded("Update MALGraph", "https://anime.plus/"+username+"/queue-add"),
iFrameLoaded("Update Badges", "https://www.mal-badges.net/users/"+username+"/update"),
iFrameLoaded("Currently Watching", "https://web.archive.org/save/https://myanimelist.net/animelist/"+username+"?status=1"),
iFrameLoaded("Completed", "https://web.archive.org/save/https://myanimelist.net/animelist/"+username+"?status=2"),
iFrameLoaded("On Hold", "https://web.archive.org/save/https://myanimelist.net/animelist/"+username+"?status=3"),
iFrameLoaded("Dropped", "https://web.archive.org/save/https://myanimelist.net/animelist/"+username+"?status=4"),
iFrameLoaded("Plan to Watch", "https://web.archive.org/save/https://myanimelist.net/animelist/"+username+"?status=6"),
iFrameLoaded("Topics in Forum Replied To", "https://web.archive.org/save/https://myanimelist.net/forum/search?u="+username+"&q=&uloc=1&loc=-1"),
iFrameLoaded("MAL History", "https://web.archive.org/save/https://myanimelist.net/history/"+username+"/anime"),
iFrameLoaded("Profile texts/statistics/Favorites/Comments and 12 Friends","https://web.archive.org/save/https://myanimelist.net/profile/"+username+"#statistics"), iFrameLoaded("Clubs","https://web.archive.org/save/https://myanimelist.net/profile/"+username+"/clubs"),
iFrameLoaded("Recommendations", "https://web.archive.org/save/https://myanimelist.net/profile/"+username+"/recommendations"),
iFrameLoaded("Reviews", "https://web.archive.org/save/https://myanimelist.net/profile/"+username+"/reviews"))
.then(function() {window.location.assign("https://google.com");
});
}}
})();