[Extension] WICS - WaniKani Integrated Custom SRS - Now with deck exports!

WICS

An extension that lets you add new, custom items to the WaniKani SRS system.

Installing

I’ll cut the crap, and jump straight to where you can get it.

Version info

Available versions:

  • Source: 0.1.9
  • Firefox: 0.1.9
  • Chrome: 0.1.9

Why?

There are plenty of existing methods to have a WaniKani-esque SRS system for your own custom items, but outside WaniKani. If you are rather looking for something like that, check out Tangochou, Anki, or, if you don’t mind paying for it, Kitsun.io.

However, having separate SRS systems has certain disadvantages, such as having to visit separate apps with possibly separate timings.

WICS integrates right into the WaniKani review system, so that you theoretically don’t even need to know, if a given item is original or custom. Though the wk team is doing such a good work, that you certainly will I’m done sucking up now

To read more about the extension, visit its Github Page

Original Post (don’t use, broken)

Original post for history reasons

Premise

It’s sometimes a pain to juggle 2 or more srs systems all at once. Having wanikani and anki all with different timing intervals and completely different places to look for can be maddening.

Introducing the Wanikani Integrated Custom SRS system (WICS for short).

Features


Enables the addition of custom vocab and kanji items which will appear alongside your other reviews inside a review session at usual wanikani intervals. Allows you to manually add cards one by one or take an exported anki deck and import the deck into its database.


Sometimes you just can’t wait for the content additions to happen.

Importing Card from Anki


To import an existing deck, you first need to export it from anki. This can be done by clicking on the cog icon next to a deck, selecting export, there for export format, select “Notes in plain text” and save the file.

After opening the “Add Card” dialog (on the navigation bar on the dashboard), select “import” and the type of cards that are inside the deck, then open up the deck itself.

Afterwards the dialog will present you with all the fields you can fill out and using the first card in the file, it will ask you, what column each one should be.

Before using


This extension is very much a work in progress. These are the features I would like to implement before a 1.0.0:

  • Managing cards. Right now the best way is to open the javascript console, run let cards = $.jStorage.get(“customCards”), edit it, and then save it with $.jStorage.set(“customCards”, cards)
  • Exporting cards. I feel it’s quite necessary to be able to save your acquired deck for savekeeping and sharing.
  • Custom card types. One of the most common flashcard type when learning a language is a sentence card. Right now you can add them only by adding a vocab item, which might not be ideal. Same goes for hiragana-only cards.
  • Better integration with the dashboard, and post review page. Right now all custom reviews are excluded from statistics and the like.
  • Audio, sentences, more readings, more meanings, etc. etc. Basically filling out the entire item page.
  • Lessons. Right now srs 0 custom items just appear as reviews. Would be nice to have them as lessons.

Some nicities to haves I might include later depending on reception:

  • Yomichan integration. This is a big one, I already did some research and this seems like a tough nut to crack. You can technically substitute it with putting cards into anki and exporting it, but that’s lame.
  • Interface design. Right now it’s a steaming pile of 幺.
  • Better anki integration. Maybe using AnkiConnect and importing apkg files.
  • Userscript support. I will have a list of userscripts that are supported.

Right now I just want early testers, so that I can see what needs fixing and what might be good to add.

I do take feature requests and constructive criticism.

Installation


The extension can be downloaded from greasyfork.

Source and contribution


The source code and informations about contributing to the project can be found on the github repository.

54 Likes

This is a great idea, I think a lot of people have been requesting the ability to add custom content to the site :grin: The script seems to work well too (it even seems to work with the pitch accent script automatically, which is a nice bonus) :grin:

I did find one bug when adding some words. If you fail a review during the “lesson” (or the first review that’s immediately available after you add something), it seems to go down an SRS stage to stage -1, meaning it will pop up twice in your reviews before it passes on to the normal SRS stages, and the SRS stage indicator will show no stage while the item is moving to an invalid stage.

4 Likes

That’s a silly oversight on my end, fixed it in 0.2.1

1 Like

image
Shoutout to the wanikani team for even dealing with this very odd edgecase.

12 Likes

Update 0.2.2:
Now lessons are a thing. The items you’ve just added will appear as lessons and will be handled just like any other new wanikani item would be.

1 Like

That’s a cool idea!

Does this only rely on local storage, meaning you can’t do your imported cards reviews on a different device?

Would it be possible integrating with ankiweb so that it can use your anki deck directly?

1 Like

Right now it relies entirely on localstorage, but I’m planning on adding some kind of sync, maybe with like anki (though the srs intervals differ there) or something like saving to google drive/sheets or a server you have.

I’m definitely planning an anki integration, so the cards can be pulled from anki directly.

2 Likes

This is very cool!

3 Likes

v0.2.4:

  • Mainly did some code cleanup and moved over to an actual editor instead of using the tampermonkey one
  • Fixed a bug, where lessons wouldn’t work with kanji
1 Like

In case you don’t already know, if you’re using Chrome you can have a Tampermonkey script @require a local file, so you only have to refresh the page as you make changes

Yeah, that’s what I’m doing, it’s neat.

1 Like

so is thiss a script I can create/write my own mnemonics?

Well, in the sense, that you add the items in as well, sure. If you check the first image, that’s what you should expect.

1 Like

v0.2.5 is out, can’t tell me I’m not developing granularly enough.

Now you can input multiple values for fields where it’s applicable like so:


It (hopefully) doesn’t let you mess up in any way and for example allow you to input absolutely no kunyomi.

Also, now you can define the parts of speech for a vocab.

The size of the codebase is getting bigger and bigger over time, now at 1150 loc. When it gets to 1500, I’m probably splitting it up and making it a github repo.

1 Like

y-you’re very cool!

0.2.6 Is out sitting at just 1327 lines!

The things people hate on the most:

  • Useless vocab and kanji
  • Bad mnemonics
  • Weird or unreadable or both context sentences

Well, now you can pretend to be better at creating all three of these

Changes:

  • Added the ability to include context sentences and kanji composition to vocab
4 Likes

Just a quick question for those interested in the script.
When I add syncing, what would be the preferred method?
Anki syncing, this would mean having to download anki everywhere you want to access your data.
Google drive syncing, of course this would mean you would have to have a Google account (though I’m sure most people do).
Syncing to some kind of server you own, best for those that already have a website or at least some kind of server (a raspberry pi works too).

  • Anki
  • Google Drive
  • Own server

0 voters

I noticed some unexpected behavior when this script is active: It seems to replace all children of document.body with copies? (If I save document.body.children before executing the script, then these elements are not attached to the current page’s DOM tree anymore after this script executes) I’m a bit curious why this is necessary, or if this is an unintended side effect.


Just in case the order of execution in relation to wkof actually matters for your script: wkof contains @run-at document-start, while your script only contains @run-at document-body, so wkof will always execute before your script, no matter how they are ordered in the userscript manager.


Not really important, but I thought I’d mention it anyway: You link to the Hungarian GreasyFork page (I assume most people already know that the green button is for installing, so it should not really be a problem even if we cannot read it).

2 Likes

Ho boy, in order

I haven’t seen this before, I will investigate, hopefully a fix goes into 0.2.7

Yeah, I noticed it with “Oh No”, it’s not necessary, I’ll remove it from the installation instructions.

Didn’t notice it, I’ll fix it

2 Likes