Wanikani Override Userscript 1.1.2 ("Ignore Answer" Button) [No longer supported]

Wanikani Override Userscript

THIS SCRIPT IS NO LONGER SUPPORTED BY ME.

Look at this post for further information.

Description:


One of my biggest peeves with Wanikani is how once you get something wrong, you can't change it. If you type too fast and make a typo, or if the spell checker doesn't like you, you're out of luck. It's really frustrating to know an answer but have Wanikani deny it to you because it wants the '-ing' form of the verb, but you typed the infinitive. Sometimes you get lucky, and the spell checker is lenient enough to mark the answer correctly. Other times, that's not the case.
Then, there's the other type of mistakes. The ones where you type a reading but were supposed to type a meaning, or the opposite. Those are really annoying, since most times you actually knew the correct reading or meaning respectively.

My problem is that the decision was completely out of my hands. My objective is to learn Kanji, and I'm not going to cheat since that wouldn't bring me closer to where I want to be, but Wanikani decides that since some people could cheat if given the chance, I can't be trusted and does not let me correct it when it is wrong.


But now, with the client-side reviews update, we can finally do something about all this!


This userscript fixes this problem, by adding an "Ignore Answer" button to the footer during reviews. This button can be clicked anytime an answer has been marked as wrong by Wanikani.

Once clicked, the current answer will be changed from "incorrect" (red background) to "ignored" (yellow background), and Wanikani will forget you even answered it.
This way, the item will appear again later on during the review cycle, effectively giving you a second chance to get it right without stupid typos or the spell checker getting in the way.

You may also use '~' as a hotkey, instead of clicking the button.

Screenshot:



Have
you ever written a meaning instead of a reading, or the opposite? Just
click the “Ignore Answer” button (lower left of the screen, next to the “Hotkeys” and “Report Errors” buttons), and Wanikani will forget this ever
happened.

Changelog

1.1.2 (11 March 2014)
- Relicensed under the GPLv3

1.1.1 (23 January 2014)
- Now supports the HTTPS protocol.

1.1.0 (24 November 2013)
 - Previously ignored answers can be unignored by pressing the ‘Ignore’ button again before skipping to the next question.
 - Code cleaned up, added debug functionality and better error logging (like all my other Wanikani scripts)

1.0.5 (7 November 2013)
- Ignores ‘~’ hotkey if pressed while editing an item’s notes.

1.0.4 (14 August 2013)
- Fixed the ‘~’ hotkey in Chrome.

1.0.3 (5 August 2013)
- Wanikani update changed the review URL. While the script worked, it also affected the reviews summary page. This has been fixed

1.0.2 (29 July 2013)
- Made ‘~’ a hotkey, as requested by some users of the Wanikani forums.
- Script now updates the question count and error count correctly.

1.0.1 (24 July 2013)
- Fixed a bug that would cause “Null” to appear instead of “Reading” or “Meaning” after ignoring a certain Vocabulary.
- Tested the script on Google Chrome with Tampermonkey (the script does not work natively).

DISCLAIMER:

I am not responsible for any problems caused by this script.
This script was developed on Firefox 25.0.1 with Greasemonkey 1.12.
It was also tested on Chrome 31.0.1650.57 with Tampermonkey 3.5.3630.77.
Because I’m just one person, I can’t guarantee the script works anywhere else.

Also, anyone using this script is responsible for using it correctly. This should be used only if you make an honest mistake but actually knew the correct answer. Using it in any other way will harm your Kanji learning process, cheating will only make learning Japanese harder and you’ll end up harming only yourselves!

Download Version 1.1.2:


This script can be installed here. Please do notice that this is an old version (as the script is no longer supported) and as such will likely not work correctly. Search this thread for fixes from other community members.

Warning for Chrome users: Due to some
limitations imposed on us by Chrome’s userscript API (and because I
developed the script primarily for Firefox), it uses some stuff only
available in the Greasemonkey userscript engine (and derivatives, like
Tampermonkey). You should install the Tampermonkey
extension for Chrome. Once you try to install my Userscript, you
should get a choice to install it using Tampermonkey, and if you choose
that everything should work fine!



1 Like

ă™ă°ă‚‰ă—ăăŠć±é™șăȘこべだ。。。


Apraxas said... ă™ă°ă‚‰ă—ăăŠć±é™șăȘこべだ。。。
 Let's try to use some of my japanese knowledge (and Rikaichan for the Kanji in the middle that I haven't learned yet) - something like "That's a wonderful, dangerous thing". How'd I do?

But yeah, I added a disclaimer to the end of the first post. This is a "dangerous" script if used incorrectly. Do not cheat people! You'll only harm yourselves in the process.

ええ、そうだよ。

ă‚ă‚ŠăŒăšă†ïŒ

The only cases I can see you’d use this fairly, is when you enter:
a meaning instead of a reading
on’yomi instead of kun’yomi
a reading for the Kanji when it asked for vocab (or vice versa)
typo/misspell for meanings

Instead of allowing the user to manually forgive all errors, which in my opinion is too much power at least for me, it catch them before analysis is displayed.
Typos for meanings and radical names should be handled by a context based lenient edit distance algorithm (I think the new one is a bit unfair, transpositions kill you i.e. “tiems” is not counted as times). This algorithm would also be more lenient if your word is not actually an english word. For example, I agree that three letter words should not allow for substitutions, but if the resultant word isn’t valid English, the mistake should be forgivin. i.e. “boc” should be counted as input for “box”. For readings, I agree that typos shouldn’t be fixed with edit distance, but I wish you could opt for a grace period for evaluation in some manner. I.e. you could click a setting where it takes 3 seconds for a reading to be evaluated, or maybe you’d have to press enter twice. I really hate it when I knock ă€Œć„łă€ down to apprentice when I accidentally submit 「おんあ」. It’s even worse with the lightning fast client side reviews.

Also, it should refuse to accept mixed kana, such as ă€Œă‚’ăŸïœŽă€ when you accidentally typed woman instead of おんăȘ. Similarly, if you type in something that’s correct for another field, (such as On when they want Kun, or a meaning when they wanted a reading) the catcher should through a new prompt saying, “That’s the on’yomi for __ . Please type the kun’yomi”.

Most of those features wouldn’t be that hard to implement.

Senjougahara said... The only cases I can see you'd use this fairly, is when you enter:
a meaning instead of a reading
on'yomi instead of kun'yomi
a reading for the Kanji when it asked for vocab (or vice versa)
typo/misspell for meanings

Instead of allowing the user to manually forgive all errors, which in my opinion is too much power at least for me, it catch them before analysis is displayed.
Typos for meanings and radical names should be handled by a context based lenient edit distance algorithm (I think the new one is a bit unfair, transpositions kill you i.e. "tiems" is not counted as times). This algorithm would also be more lenient if your word is not actually an english word. For example, I agree that three letter words should not allow for substitutions, but if the resultant word isn't valid English, the mistake should be forgivin. i.e. "boc" should be counted as input for "box". For readings, I agree that typos shouldn't be fixed with edit distance, but I wish you could opt for a grace period for evaluation in some manner. I.e. you could click a setting where it takes 3 seconds for a reading to be evaluated, or maybe you'd have to press enter twice. I really hate it when I knock ă€Œć„łă€ down to apprentice when I accidentally submit 「おんあ」. It's even worse with the lightning fast client side reviews.

Also, it should refuse to accept mixed kana, such as ă€Œă‚’ăŸïœŽă€ when you accidentally typed woman instead of おんăȘ. Similarly, if you type in something that's correct for another field, (such as On when they want Kun, or a meaning when they wanted a reading) the catcher should through a new prompt saying, "That's the on'yomi for __ . Please type the kun'yomi".

Most of those features wouldn't be that hard to implement.

 You're right, this shouldn't be that difficult. A primitive distance algorithm would more than suffice for transposition errors. However, the context comes in for more intricate typos (like pressing a key nearby by mistake). 

It should detect mixed kana versions of the MEANING when it is asking for the reading and the romaji of the READING when asking for the meaning. I usually don't mess up on these, but sometimes I just type without thinking. I guess it isn't necessary, but it'd sure be great.

And checking all of the possible readings may be harder for some kanji, but really easy for those with only one kun'yomi or only one on'yomi.
Senjougahara said... The only cases I can see you'd use this fairly, is when you enter:
a meaning instead of a reading
on'yomi instead of kun'yomi
a reading for the Kanji when it asked for vocab (or vice versa)
typo/misspell for meanings.
 Those are exactly the cases I want to cover, since they happen often enough and are really annoying.


Senjougahara saidMost of those features wouldn't be that hard to implement.
 Yes, but they have refused to implement stuff like refusing to accept mixed Kanji. I doubt they'll be changing the spell checker leniency again, since everyone complained it was too lenient before (I actually thought that apart from a few things, it was as lenient as it should be). But who knows.

Thing is, I trust myself not to cheat and only use it on those kinds of cases you mentioned. Hell, I was just doing reviews and typed a reading when it requested a meaning, so it's already been useful for me! If I'd waited for them to correct all my complaints, I'd probably be waiting forever.

Still, the point of this thread is not to discuss how the spell checker should be changed (there have been tons of discussions about that before) so I digress.
Senjougahara said...

which in my opinion is too much power at least for me

 http://youtu.be/b23wrRfy7SM?t=12s
Senjougahara said...Also, it should refuse to accept mixed kana, such as ă€Œă‚’ăŸïœŽă€ when you accidentally typed woman instead of おんăȘ. 
Wanikani customizer does this by default.

Definitely gonna give this a try! Being at the higher levels, which still lack editing and adding synonyms, really sucks. Answering “Plan” instead of “A Plan” for example, or typing the right reading ぞうしゅうわい instead of WK’s wrong reading for èŽˆćŽèł„ still gets you sent two levels down sigh
It will be useful to avoid sending some items about to be burned down to guru (like 怒) because you answered “Anger” instead of “Angry”.
 
One question, though. If I wanted to fail an item on purpose because I want to see it soon in my review queue. Can I still click random keys and hit enter?
My next review is like 3 hours away.

ruipgpinheiro said...Thing is, I trust myself not to cheat and only use it on those kinds of cases you mentioned. Hell, I was just doing reviews and typed a reading when it requested a meaning, so it's already been useful for me! If I'd waited for them to correct all my complaints, I'd probably be waiting forever.
 Clever, indeed! And still at quite a young age (I mean, lower level). I was in LV32 when I reached that conclusion. 
sumairu said..One question, though. If I wanted to fail an item on purpose because I want to see it soon in my review queue. Can I still click random keys and hit enter?
My next review is like 3 hours away.
 Yes. The script does not do anything automatically. All it does is add a button to the bottom left of the screen (where the "Hotkeys" and "Report Error" buttons are) that once clicked after getting an answer incorrectly (before skipping to the next question) will have Wanikani forget your mistake. If you do not click this button, everything works exactly as before!
ruipgpinheiro said...
sumairu said..One question, though. If I wanted to fail an item on purpose because I want to see it soon in my review queue. Can I still click random keys and hit enter?
My next review is like 3 hours away.
 Yes. The script does not do anything automatically. All it does is add a button to the bottom left of the screen (where the "Hotkeys" and "Report Error" buttons are) that once clicked after getting an answer incorrectly (before skipping to the next question) will have Wanikani forget your mistake. If you do not click this button, everything works exactly as before!
 Sounds great! Off to do  some reviews to try it out.
sumairu said... Sounds great! Off to do  some reviews to try it out.
 Good luck.
Just to add to my previous post since I re-read it and it seems to be unclear, "will have Wanikani forget your mistake" means that it'll be as if you weren't asked the question at all, and so later on during that review cycle you'll be asked the same question again.

I did a couple tests yesterday, getting 15+ questions wrong on purpose and then clicking the button (after each "mistake"). Every single time, once I answered correctly when the same question showed up again later on, the statistics would never show that item as downgraded. For comparison, every time I got something wrong and didn't click the button, the question would also be asked again, but they'd be downgraded (as Wanikani normally does).

This is really awesome. A lot of times I would put the reading instead of meaning, catch my mistake while it was still loading, close the web browser and open it up again for it to be wrong. Every time I would think “I wish WaniKani had something that let me claim I didn’t actually get my kanji wrong and gave us a set number of ‘second chances’ per review”

I’ve also had problems with trying to input the kanji reading and wanikani just submitting my answer when I was still in the middle of typing it. I still have no idea what that problem is, and it might be because one of the scripts I was using, but thank god I won’t have those counted as wrong anymore.

ruipgpinheiro said...
sumairu said... Sounds great! Off to do  some reviews to try it out.
 Good luck.
Just to add to my previous post since I re-read it and it seems to be unclear, "will have Wanikani forget your mistake" means that it'll be as if you weren't asked the question at all, and so later on during that review cycle you'll be asked the same question again.

I did a couple tests yesterday, getting 15+ questions wrong on purpose and then clicking the button (after each "mistake"). Every single time, once I answered correctly when the same question showed up again later on, the statistics would never show that item as downgraded. For comparison, every time I got something wrong and didn't click the button, the question would also be asked again, but they'd be downgraded (as Wanikani normally does).
 I see. Well, many thanks for this :D

BTW I made 2 mistakes in Chrome and 2 in Firefox. The yellow bar never showed up in Chrome. And, one of the two items was downgraded (weird!)
But, it works perfectly in Firefox. I'll do my reviews in Firefox from now on :)
sumairu said..BTW I made 2 mistakes in Chrome and 2 in Firefox. The yellow bar never showed up in Chrome. And, one of the two items was downgraded (weird!)
But, it works perfectly in Firefox. I'll do my reviews in Firefox from now on :)
 That's to be expected, since as I wrote in the main post, I did not test this in Chrome even once (I don't even have it installed). I'll see about installing Chrome and seeing whether I can figure out what the problem is.

Glad you find it useful :)

Huh, while testing in Chrome with Tampermonkey everything was working fine, but then suddenly stuff started appearing as “Vocabulary Null” (instead of “Vocabulary Meaning” and “Vocabulary Reading”) after using the ignore answer functionality. Now, suddenly, this happens on Firefox as well.

There must have been an update to Wanikani that broke this script
 Let’s see if I can fix it.

ruipgpinheiro said... Huh, while testing in Chrome with Tampermonkey everything was working fine, but then suddenly stuff started appearing as "Vocabulary Null" (instead of "Vocabulary Meaning" and "Vocabulary Reading") after using the ignore answer functionality. Now, suddenly, this happens on Firefox as well.

There must have been an update to Wanikani that broke this script... Let's see if I can fix it.
 I used it yesterday and got the "null" thing as well, but I entered a meaning and got it right, then both meaning and reading appeared later. The item didnt get downgraded.

Okay, the fix was fairly straight-forward and required just changing two lines.

After looking around the Wanikani code, it seems that for some reason it checks for the “reading completed” or “meaning completed” variables for an item to be undefined, and only then does it assign “Meaning” or “Reading”. Since my script was setting those to 0 (false), and not undefined, depending on the code path taken, this “undefined” check would fail and thus “Null” would appear. As long as you answered the “Null” correctly, no harm would be done and nothing would be downgraded. I’m still not sure why this hadn’t happened once for me - maybe there was an update during the night or something. Who knows.

If, however, someone has a problem with a “Null” constantly appearing due to the old version even after updating, you can reset the local Wanikani database. Just open the javascript console (Ctrl+Shift+K in Firefox, Ctrl+Shift+J in Chrome) while on the Wanikani homepage and type this line followed by pressing “Enter”:

localStorage.clear();
If everything works correctly, the console should output “undefined”.
In case a “Null” appears after the update and a database reset, please post about it here since that’s probably a bug with my script, and give me as many details as possible (including which vocabulary that happened for, and whether you have used “Ignore Answer” on it previously)

Also, I tested the script on Chrome. While natively it does not work right (due to incompatibilities between Chrome’s and Greasemonkey’s API), I tested using the extension Tampermonkey and everything worked correctly as far as I could tell, so I added that to the disclaimer in the top post.