Wani Kani History Web App
This is a WaniKani statistics website similar to WK stats. Its goal is to provide the user with more information about their WaniKani achievements. It focuses primarily on showing the user their personal Japanese learning history with WaniKani but also displays some different statistics from all categories.
I couldn’t find a website that shows you more stats than the wkstats website or WK timemachine. These statistics include some which show one their history of WaniKani in different data points (like accuracy or SRS stages). I’m very new to the WaniKani API but I tried my best to create some extra statistics and make this a useful website for you.
- reviews per day (chart)
- total reviews over time (chart)
- Hall of Fame (for radicals, kanji, vocab, or all together; based on how many correct/incorrect guesses there were)
- Hall of Shame (for radicals, kanji, vocab, or all together; based on how many correct/incorrect guesses there were)
- crude projection (how many days it will probably take one to complete WaniKani)
- item types (SRS stages) to time charts (stacked and non-stacked) with time frame setting
- item accuracy to time chart (divided into radicals, kanji, and vocabulary)
- word progress (how many radicals, kanji, or vocab out of the total amount has one learned)
- word overview (x-y-chart based on reading and meaning accuracy of all learned words)
- info table (how accuracy, reviews, and lessons changed over a chosen interval of time; split into radical, kanji, and vocab)
- kanji wall (text block with all kanji learned: you can see how far you’ve come)
- Yojijukugo (four character idioms / “proverbs” with four kanji; you can look at those you can already read; includes meanings)
User Info, Level Info, and Projections
SRS Info, Word Progress, and Kanji Wall
Yojijukugo and Improved Kanji Wall
Word Info (Word Bubble, Radical Bubble)
Wall of Fame & Wall of Shame
Feedback & Stat Suggestions
This is by no means a finished project and I would really love if you gave me some ideas on what stats I could add to this web app. I’ll try my best to add them! Also if you encounter bugs of any sort definitely feel free to voice them to me. Or if you want to say something else just reply in this thread and I’ll read it!
You have to get an API v2 key. You can find it on your dashboard under your profile and “API Tokens”. This app doesn’t need any write access. Here is the link:
This is hosted on my GitHub Repository
By the way, I have a more complete projections page user script at: [Userscript] WKStats Projections Page
Maybe there’s some way we could work together to have this included on your site?
P.S. For word info, I think wall of fame & wall of shame would be better naming of the subcategories
I actually already have your Userscript installed and it’s really useful. I use it all the time and think to myself “man, I still have a long ways to go!” But it is really cleverly imbedded into the wkstats website great work on that!
I think the later levels don’t all take 7 days but only half of the time because they don’t have two stages. Did you already account for that in the projection because it seems that my time might be a little too long? Maybe I’m just stupid. Anyway great work to you too!
P.S.: Yeah, I’m definitely gonna change that, nice suggestion!
Yes, it does account for it, but only in the fastest possible projection, not the median.
By the way, your level graph doesn’t account for resets (and you made a typo on subscription):
It’s nice to see a vocabulary-only wall of shame. It might be cool to make one for radicals and kanji too!
Oh I overread that. Yeah, that would be very nice!
I don’t mind it showing all the levels, but if you did that, the X-axis labeling would need to be corrected so that level 35 isn’t labeled 42.
I tried to fix it (but I don’t think I got it). It’s difficult to debug because I haven’t reset my progress yet. I’m going to try tomorrow to get it done.
But I now implemented the individual Kanji, Radical, and Vocab Halls of Fame/Shame!
I added cookies as well. So you don’t have to type in your token every time!
You might be interested in this API token with a reset & 0 lessons:
Oh, cool! Is there also a token known which has a reset and more than 0 lessons?
Btw I added new features: SRS stage to time graph and accuracy to time graph.
I suppose you can use my token to test (reset at 1 → 1 and 28 → 22)
but I’ll expire it once you’re finished since I have a subscription active
It’s read-only, WK data is public, and I don’t really care if you look at my stats, so I’m not terribly concerned that it will be available.
P.S. Refreshing the page appends an equal sign (=) to the API token which prevents the authorization from success
Edit: Removed expired token
The review sections stays blank for me, a look in the calls says that there is a 429, too many request, you should throttle the call to wk api
Thanks for telling me! I haven’t got that many levels under my belt so I didn’t notice this was a problem! I just fixed it by throttling the requests. It should work now, although it now will take quite a while to finish (~ 20 secs).
Thank you so much for giving me your token!!!
I fixed the bug with the level display thanks to your help. You can expire the token now.
Now it probably all works and the graph should show you a one and a half year history of SRS stage data!
It stills 429 for me, with about 120k reviews.
edit: it kept continuing after that but unsure if it miss some reviews.
The update to the website takes a while to roll out. If you just reload the tab it will also not show. So you have to copy the link close the old tab and open it in a new one! And wait ~15 seconds if it shows Error 429 directly and then try again. Hope it helps ^^
And if it still shows those errors in the console, that’s because I implemented the fail safe that if there are 429 Errors it will try again until it can load the next data.
nah I think I had the latest code (not even the same computer), it took 80s to complete.
Oh ok. I have to throttle it even more probably because there is just so much data. The API was probably not made to output this amount of data… oops.
The results don’t looks right though: