WaniKani at Terminal Speed
Purpose:Speedread training of vocab and kanji
Description:Please don't mind the name, my lack of creativity as a programmer is severely apparent.
Image 1 Image 2 Image 3 Image 4 Image 5
For those of you who have played BrainSpeed on smart.fm, this is very very much like it. A term is displayed and you must choose the corresponding answer within a time limit. The more consecutive answers you get right, the shorter the time limit becomes. I had originally wanted to write an Android app, but this thread essentially made me want to get something cross-platform out there fast. Unfortunately, the user friendliness bar of this project is a little high ... so this thing could possibly be a mock for a future Android app.
Installation and Requirements:
Get the script here: WaniKani at Terminal Speed Python Script
There is an API_KEY string at the top of the file where you should put your API key.
It's written in python and relies heavily on the curses library. I've tested it on OSX, Ubuntu Precise, and Win7+Cygwin - but three machines is hardly inclusive, so there may still be compatibility issues. It wants a terminal sized at least 80x25. (I've also found it nice to increase the font size of your terminal since Japanese in a terminal is eyecancer).
Invoke it from a terminal however you like, there are no arguments to the script.
$ python wkts.py
Use numbers or arrow keys for navigation. Backspace sometimes allows you to go back a screen (Where it makes sense).
Left and Right keys for performing the reviews. [There are some more such as (1 + 2). and (asdf + jkl;)]
The "Update Local Data" option must be run the first time to synchronize a local cache of your vocab and kanji lists from the WaniKani cloud. This will create 3 files in your working directory: kanji, vocabulary, and srs-distribution.
Status and ToDo:
This is the first functional release, so I may go back to clean it up for an official 1.0.
Only one thing I can think of for feature update:
- Mixed Review Types (Kanji + Vocab)
Edit Mar.11: Properly use time for statistics, less timer backoff when getting an item wrong, less conceited window, a little code cleanup (aka bugs introduced)