MAL Full History

Just an Easy Script that lets You to check Your Full Watching History on MAL

安装此脚本
作者推荐脚本

您可能也喜欢MAL Date Fix

安装此脚本
// ==UserScript==
// @name         MAL Full History
// @namespace    Check Your Full Watching History on MAL!
// @version      1.1
// @description  Just an Easy Script that lets You to check Your Full Watching History on MAL
// @author       NurarihyonMaou
// @match        https://anime.plus/*/list,anime
// @match        https://myanimelist.net/ajaxtb.php*
// @icon         https://www.google.com/s2/favicons?domain=anime.plus
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @grant        GM_getValue
// @require      http://code.jquery.com/jquery-3.5.1.min.js
// ==/UserScript==

const $ = window.jQuery;

let id = [];
let CurrentTitle;
let FullHistory = [];

function ExportDataToCSV($table, filename) {
  let csv = "";
  let rows = $table.find("tr");

  $.each(rows, function (index, row) {

        $.each($(row).find("td"), function (index, entry) {
            if (index < 2) csv += $(entry).text() + "|";
            else csv += $(entry).text() + "\n";
        });
  });

  let csvData = "data:application/csv;charset=utf-8," + encodeURIComponent(csv);

  $(this).attr({
    download: filename,
    href: csvData,
    target: "_blank",
  });
}

function FillTable() {

  for (let e = 0; e < FullHistory.length; e++) {
    $("table").append(
      "<tr><td>" +
        FullHistory[e].Title +
        "</td><td>" +
        FullHistory[e].Ep +
        "</td>" +
        "<td>" +
        FullHistory[e].Date +
        "</td></tr>"
    );
  }

  $("body table td").css("padding", "10px").css("border", "1px black solid");
  $("body table td").css("background-color", "#4B5054");
}

if (window.location.pathname.split("/")[2] === "list,anime") {
  alert("Start");
  $("tbody")
    .find(".status-F, .status-C, .status-H, .status-D")
    .next()
    .children()
    .each(function () {
      id.push($(this).attr("href").slice(30));
    });
  GM_setValue("id", id);
  document.location =
    "https://myanimelist.net/ajaxtb.php?keepThis=true&detailedaid=" + id[0];
}

if (window.location.pathname.split("/")[1] === "ajaxtb.php") {

  $("body").css("background-color", "#7E848A").css("color", "#2db300");

  id = GM_getValue("id");

  $("body").html(
    "<h1><center><label for='p1'>Fetching Data</label></br><progress id='p1' value='0' max='" +
      id.length +
      "'></progress></center></h1>"
  );

  for (let i = 0; i < id.length; i++) {
    $.ajax({
      method: "GET",
      url:
        "https://myanimelist.net/ajaxtb.php?keepThis=true&detailedaid=" + id[i],
      complete: function (data) {
        data = data.responseText;

        CurrentTitle = $(data)
          .find(".normal_header")
          .text()
          .replace(" Episode Details", "");

        $($(data).find(".spaceit_pad").get().reverse()).each(function () {
          FullHistory.push({
            Title: CurrentTitle,
            Ep: $(this).text().replace("Ep ", "").split(",")[0],
            Date: $(this)
              .append(":00")
              .text()
              .replace("Ep ", "")
              .replace("watched", "")
              .replace(" Remove", "")
              .split(",")[1]
              .replace("on ", "")
              .replace("at ", "")
              .replace("  ", ""),
          });
        });

        if ($("#p1").attr("value") < i) $("#p1").attr("value", i + 1);

        if (i == id.length - 1) {
          $("body").html("<center><h1>Wait for a few Seconds</h1></center>");
          setTimeout(function () {
            FullHistory.sort(function (a, b) {
              return (
                Date.parse(a.Date) - Date.parse(b.Date) ||
                parseInt(a.Ep) - parseInt(b.Ep) ||
                a.Title - b.Title
              );
            });
            $("body").html(
                "<center><h1>Records: " +
                  FullHistory.length +
                  "<table><br><a href='' class='Export'>Export Data to CSV</a><tr><td>Title</td><td>Ep</td><td>Date</td></tr>"
              );
              $("body").on("click", ".Export", function () {
                ExportDataToCSV.apply(this, [$("body table"), "FullWatchingHistory.csv"]);
              });
            FillTable();
          }, 3000);
        }
      },
      error: function () {
        alert("Unexpected Error Occured");
      },
    });
  }
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址