Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name MAL seiyuu years jQuery
- // @namespace Taosique
- // @version 1
- // @include http://myanimelist.net/people/*
- // @require http://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.js
- // @grant GM_xmlhttpRequest
- // @grant GM_getValue
- // @grant GM_setValue
- // @noframes
- /// <reference path="jquery-2.1.0-vsdoc.js" />
- var specialCases = ['anime', 'manga'];
- specialCases['anime'] = [];
- specialCases['anime'][6055] = 1988;
- specialCases['anime'][7279] = 2009;
- specialCases['anime'][14467] = 2012;
- specialCases['manga'] = [];
- specialCases['manga'][2990] = 1996;
- specialCases['manga'][5953] = 1979;
- specialCases['manga'][7097] = 2004;
- specialCases['manga'][7688] = 2002;
- specialCases['manga'][12523] = 1986;
- specialCases['manga'][25852] = 2011;
- specialCases['manga'][32965] = 2010;
- specialCases['manga'][35475] = 1988;
- specialCases['manga'][41361] = 1988;
- specialCases['manga'][53565] = 2008;
- specialCases['manga'][72583] = 2014;
- specialCases['manga'][88170] = 2009;
- specialCases['manga'][90756] = 2011;
- var entries = [];
- function getGmValueKey(entryType, entryIndex) {
- return 'MAL_year_' + entryType + '_' + entryIndex;
- }
- $(".normal_header").each(function (index, normal_header) {
- var headerText = $(normal_header).contents().get(1);
- if (headerText) {
- var entryType = '';
- switch ($(headerText).text()) {
- case 'Voice Acting Roles':
- case 'Anime Staff Positions':
- entryType = 'anime';
- break;
- case 'Published Manga':
- entryType = 'manga';
- break;
- default:
- return;
- break;
- }
- var previousIndex;
- $(normal_header).next('table').find('tr').each(function (index, tr) {
- var a = $(tr).find('a:eq(1)');
- var entryIndex = a.attr('href').split('/', 3)[2];
- var entryGmValueKey = getGmValueKey(entryType, entryIndex);
- if (entryIndex != previousIndex) {
- previousIndex == entryIndex;
- var entryName = a.text();
- entries.push({
- type: entryType,
- index: entryIndex,
- name: entryName,
- gmValueKey: entryGmValueKey
- });
- }
- $(tr).find('td:eq(1)').after($('<td></td>', {
- id: entryGmValueKey,
- 'class': 'borderClass ' + entryGmValueKey,
- width: 25,
- valign: 'top',
- nowrap: '',
- align: 'left'
- }));
- });
- }
- });
- var requestCount = 0;
- entries.forEach(function (entry, index) {
- var year = GM_getValue(entry.gmValueKey, null);
- if (!year) {
- year = specialCases[entry.type][entry.index];
- }
- if (year && year != '0000') {
- $('.' + entry.gmValueKey).text(year);
- } else
- {
- setTimeout(function () {
- $.ajax('http://myanimelist.net/api/' + entry.type + '/search.xml?q=' + encodeURIComponent(entry.name),
- {
- /*
- You can specify your username and password to avoid prompt every time:
- username: 'UserName',
- password: 'password#123',
- */
- method: 'GET',
- context: entry,
- success: function (xml, textStatus, xhr) {
- var contextIndex = this.index;
- var $xmlEntry = $(xml).find('id').filter(function () { return $(this).text() == contextIndex; });
- if ($xmlEntry.length == 1) {
- year = $xmlEntry.siblings('start_date:eq(0)').text().substr(0, 4);
- if (year) {
- if (year != '0000') {
- $('.' + entry.gmValueKey).text(year);
- GM_setValue(this.gmValueKey, year);
- }
- }
- }
- },
- });
- }, (requestCount++) * 100);
- }
- });
- // ==/UserScript==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement