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.

Stan na 18-09-2020. Zobacz najnowsza wersja.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==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");
});
}}
})();