I just finished a degree in computer science but I have no idea where to get started actually applying what I learned. How did you learn how to make an extension? Where should I start?
As for me, I first took a script and added some stuff to it for myself here and there. I think a good script to start doing that with is Kumirei’s Bottled WaniMekani script. Very easy to see the results of what you’re doing, so easy feedback. Just experiment with some settings (especially the first part of the script).
Then I tried to add a full fledged big feature to another script, which for me was extending the functionality of an obsolete script I found somewhere.
Then I wrote something new, and looked for functionality tips here and there by looking at other people’s implementation of those functions. I mostly deduced whether those scripts had those functionalities, based on guessing how they worked internally.
It also helps to have a look at how the API and Wanikani Open Framework work.
I’d probably start off by installing the Tampermonkey browser extension and either creating a new script from scratch or modify one of the many scripts already out there:
There’s a whole bunch of WaniKani Scripts on Greasy Fork to get you going.
In my case I only knew a tiny bit of Python before I decided to make scripts. I learned everything, including JS, HTML, and CSS, by looking at other scripts and trying to figure out how things worked. Not really sure if I would recommend doing it that way, but if you already have a CS degree, then that shouldn’t be too difficult for you, I think
Thanks for the words of encouragement. I feel like I got a bunch of theory knowledge but didn’t learn how to apply it in the real world.
This script is essentially a stripped out version of @seanblue’s wanikani-dashboard-srs-and-leech-breakdown to only include the srs sub-stage counts, which gives a pretty basic example of using the WKOF to pull data, parse, and then manipulate the DOM with the data if that helps.
The hardest part of starting for me was figuring out how to even get started using a script manager (tampermonkey) and how to distribute scripts (greasyfork). This blog post covers that pretty well I think. Easiest thing to do is to install a script, familiarize yourself with how it works in tampermonkey, and tweaking it in some way.
UserScript is essentially fixing things that should have been fixed, or just some QoL improvement with opinions. Popular website can still have a lot of unseemly things - people just compensate tolerating bugs, to get what they wanted, or to go along with what is popular.
It can be started with just knowing Inspect Element / DevTools Console and installed Tampermonkey; and try to fix / extend / or create a new one inside Tampermonkey’s editor. debugger;
may also be helpful at the start.
It may help to understand API and WaniKani Open Framework. jQuery Storage
is utilized in WaniKani (as well as jQuery
pre-installed), so it might be helpful to know as well. If // @require
is used, you might need to look at the source at well. Also, there are UserScript-specific JavaScript, like GM_*
.
I also have a way of making more complex scripts, or using NPM libraries. But I haven’t gone as far as integrating a backend / shared database yet.
Also, WaniKani and WaniKani Community (which is Discourse and has window.require()
) aren’t the only places I make a UserScript for.
Personally, I started from using Python to parse text and Kanji; and adapt to JavaScript and CSS. (I have a year of C programming in high school long before that, though.)
Nonetheless, UserScript is not the only way, but it is a good way to support Chrome-Firefox-Safari at the same time. Depending on your requirements and your mileage, you might also consider making a Chrome Extension (or Firefox).