Greasy Fork is available in English.

WaniKani additional resource links Review/Lesson/Info

Adds a link to alc/goo/weblio on vocab/kanji review/lesson/info pages

Ajankohdalta 5.11.2015. Katso uusin versio.

// ==UserScript==
// @name        WaniKani additional resource links Review/Lesson/Info
// @namespace   wanikaniALCLRV
// @description Adds a link to alc/goo/weblio on vocab/kanji review/lesson/info pages
// @include     http*.wanikani.com/vocabulary/*
// @include     http*.wanikani.com/level/*/vocabulary/*
// @include     http*.wanikani.com/kanji/*
// @include     http*.wanikani.com/level/*/kanji/*
// @include     https://www.wanikani.com/review/session*
// @include     http://www.wanikani.com/review/session*
// @include     https://www.wanikani.com/lesson/session*
// @include     http://www.wanikani.com/lesson/session*
// @version     0.0.4
// @grant       none
// ==/UserScript==

// Based on Looki's original info page alc link script

var objCurItem;
var listenString;
var strLinkInsertLocation;
var strInfoPageLinkListElement;
var url;

if ($(location).attr('href').indexOf("review") != -1 || $(location).attr('href').indexOf("lesson") != -1) {
	
	$.jStorage.listenKeyChange("currentItem", function(key, action){
		addLink(key, "#item-info");
	});


	$.jStorage.listenKeyChange("l/currentLesson", function(key, action){
		addLink(key, "#supplement-info");	
	});


	$.jStorage.listenKeyChange("l/currentQuizItem", function(key, action){
		addLink(key, "#item-info");	
	});	
	
} else {
	if ($(location).attr('href').indexOf("vocabulary") != -1) {
		strInfoPageLinkListElement = "vocabulary-icon";
	} else {
		strInfoPageLinkListElement = "kanji-icon";	
	}
	
	var strItem = document.getElementsByClassName(strInfoPageLinkListElement)[0].firstChild.innerHTML;
	
	// strip 〜 from vocab item
	strLinkContent =  strItem.replace('〜', "");
	
	
	//var url = 'http://eow.alc.co.jp/search?q=' + encodeURIComponent(strItem) + '&ref=sa'; 
		
	// alc link
	var alcURL = 'http://eow.alc.co.jp/search?q=' + encodeURIComponent(strLinkContent) + '&ref=sa';
	var strAlcLinkString = "<a id='hvAlcLink' target='_alcVocab' href='"+alcURL+"'>alc</a>";
	// goo link
	var gooURL = 'http://dictionary.goo.ne.jp/srch/all/' + encodeURIComponent(strLinkContent) + '/m0u/';
	var strGooLinkString = "<a id='hvAlcLink' target='_alcVocab' href='"+gooURL+"'>goo</a>";
	// weblio link
	var weblioURL = 'http://ejje.weblio.jp/content/' + encodeURIComponent(strLinkContent);
	var strWeblioLinkString = "<a id='hvAlcLink' target='_alcVocab' href='"+weblioURL+"'>weblio</a>";
	
	
	
	var info = document.getElementsByClassName('page-list')[0].getElementsByTagName('ul')[0];
	var alcLi = document.createElement('li');
	var gooLi = document.createElement('li');
	var weblioLi = document.createElement('li');
	alcLi.innerHTML = strAlcLinkString;
	gooLi.innerHTML = strGooLinkString;
	weblioLi.innerHTML = strWeblioLinkString;	
	
	info.appendChild(alcLi);
	info.appendChild(gooLi);
	info.appendChild(weblioLi);
}

function addLink(strKey, strLinkElement) {
	    var strLinkContent = "";
    
    objCurItem = $.jStorage.get(strKey);
    
    
    if (objCurItem === null) {
		return 0;
	}
    
    if ("kan" in objCurItem)
	{
		// Kanji
		strLinkContent = objCurItem['kan'];
		
		strLinkString = "";		
		// alc link
		alcURL = 'http://eow.alc.co.jp/search?q=' + encodeURIComponent(strLinkContent) + '&ref=sa';
		strLinkString += "<a id='hvAlcLink' target='_alcVocab' href='"+alcURL+"'>alc</a>";
		// goo link
		gooURL = 'http://dictionary.goo.ne.jp/srch/all/' + encodeURIComponent(strLinkContent) + '/m0u/';
		strLinkString += " | <a id='hvAlcLink' target='_alcVocab' href='"+gooURL+"'>goo</a>";
		// weblio link
		weblioURL = 'http://ejje.weblio.jp/content/' + encodeURIComponent(strLinkContent) + '';
		strLinkString += " | <a id='hvAlcLink' target='_alcVocab' href='"+weblioURL+"'>weblio</a>";
		
		
		if ($(strLinkElement + " #hvAlcLinkDisplayDiv").length) {
			$(strLinkElement + " #hvAlcLinkDisplayDiv").html(strLinkContent + " on: " +strLinkString);
		} else {
			$(strLinkElement).prepend( "<p><span id='hvAlcLinkDisplayDiv'> "+strLinkContent + " on: " +strLinkString+" </span></p>" );
		}
		$('a#hvAlcLink').css("text-decoration", "none");
		$('a#hvAlcLink').css("color", "#ffffff");
		//$('a#hvAlcLink').css("font-style", "italic");
		//$('a#hvAlcLink').css("font-weight", "bold");
		//$('a#hvAlcLink').css("background-color", "#ff00aa");
		//$('a#hvAlcLink').css("padding", "2px");
		
		//$('span#hvAlcLinkDisplayDiv').css("border", "1px solid #666666");
		$('span#hvAlcLinkDisplayDiv').css("padding", "4px");		
		$('span#hvAlcLinkDisplayDiv').css("color", "#ffffff");
		$('span#hvAlcLinkDisplayDiv').css("background-color", "#ff00aa");
		$('span#hvAlcLinkDisplayDiv').css("margin-bottom", "6px");
		
	}
	else if ("voc" in objCurItem)
	{
		// Vocabulary
		strLinkContent = objCurItem['voc'];	
		// strip 〜 from vocab item
		strLinkContent =  strLinkContent.replace('〜', "");
		
		strLinkString = "";		
		// alc link
		alcURL = 'http://eow.alc.co.jp/search?q=' + encodeURIComponent(strLinkContent) + '&ref=sa';
		strLinkString += "<a id='hvAlcLink' target='_alcVocab' href='"+alcURL+"'>alc</a>";
		// goo link
		gooURL = 'http://dictionary.goo.ne.jp/srch/all/' + encodeURIComponent(strLinkContent) + '/m0u/';
		strLinkString += " | <a id='hvAlcLink' target='_alcVocab' href='"+gooURL+"'>goo</a>";
		// weblio link
		weblioURL = 'http://ejje.weblio.jp/content/' + encodeURIComponent(strLinkContent) + '';
		strLinkString += " | <a id='hvAlcLink' target='_alcVocab' href='"+weblioURL+"'>weblio</a>";
		
		
		if ($(strLinkElement + " #hvAlcLinkDisplayDiv").length) {
			$(strLinkElement + " #hvAlcLinkDisplayDiv").html(strLinkContent + " on: " +strLinkString);
		} else {
			$(strLinkElement).prepend( "<p><span id='hvAlcLinkDisplayDiv'> "+strLinkContent + " on: " +strLinkString+" </span></p>" );
		}
		$('a#hvAlcLink').css("text-decoration", "none");
		$('a#hvAlcLink').css("color", "#ffffff");
		//$('a#hvAlcLink').css("font-style", "italic");
		//$('a#hvAlcLink').css("font-weight", "bold");
		//$('a#hvAlcLink').css("background-color", "#9f00ef");
		//$('a#hvAlcLink').css("padding", "4px");
		
		//$('span#hvAlcLinkDisplayDiv').css("border", "1px solid #666666");
		$('span#hvAlcLinkDisplayDiv').css("padding", "2px");		
		$('span#hvAlcLinkDisplayDiv').css("color", "#ffffff");
		$('span#hvAlcLinkDisplayDiv').css("background-color", "#9f00ef");
		$('span#hvAlcLinkDisplayDiv').css("margin-bottom", "6px");
		
	}
	else if ("rad" in objCurItem)
	{
		// Clear the link element if the item is a Radical
		if ($(strLinkElement + " #hvAlcLinkDisplayDiv").length) {
			$(strLinkElement + " #hvAlcLinkDisplayDiv").html("");
		}
		
	}
}