What do you want now? (Request extensions here)

this might be interesting:

though as est_fills_cando said, i think Bunpro itself would rather need to change CORS settings.


That feels like it’s a little beyond my javascript abilities of mimicking existing code, but I might try it if Bunpro doesn’t change the api cors setting.
I’m pretty happy with how it looks, at least (ignoring the Now for next bunpro review).


A script that draws the characters in the correct stroke order instead of having them just pop up?

There is this one:

But it’s kinda broken currently, are there any others?

And besides, JISHO has these beautiful animations I’d love to see implemented

maybe a silly request but not a programmer… something that would be a nice to have (aside from separate scripts and what not)…

when you do your reviews something that takes in your top (3 leeches) and does a review along with your normal reviews … outside of the self study script, tables, etc… … specifically something like a built in leech reviewer (and with only a handful of the top - ideally selectable between 1-5) it wouldn’t add a lot of reviews to the cycle and just automatically run when you do your reviews… (or above a potential leech score)

yeah there are of various external tools and what not, but since WK won’t do anything about leeches at the native level …something that automates it while you are doing reviews anyway would be a nice to have…

and a step above that is adding reviews to cycles that are missing - as an option … review the master items at 2 weeks … review the enlightened items at 2 months…etc… (yes it makes counts go up)…but if it’s built in… might not be so bad … and since they wouldn’t actually count towards your actual review (or shouldn’t) … but I guess it could… won’t necessarily knock you down when it comes up later.

I would like a script that allows me to do reviews based on srs level. Something like ultimate review, but with srs level options instead of item type or numeric level. Bonus points if it’s compatible with ultimate review so that you can sort by srs level within item type, etc :joy:

Situation: coming back after a long break with a large pile of reviews, it would be great to be able to clear out all my burns right away. I work on a few levels at a time (like 20-24) to keep my review pile manageable for the amount of time I have. I would love to sit down and do all my burns from levels 20-24, then all my enlightened from 20-24, then all my master… saving apprentice for last since it will take the most time and attention.

There is this script:

Which allows you to either go by SRS level ascending or descending (i.e. you cannot pick the level freely like in Ultimate Reorder, but you can either work your way up from Apprentice 1 or down from Enlightened). It is … semi-compatible with Ultimate Reorder - that means, most of the time you can run them both and they don’t interfere too much, and the script whose ordering mechanism you used last will gain precedence over the other, so that you can switch between the two scripts in one session (but they don’t overlay each other, e.g. you cannot sort by level inside apprentice 1 items as far as I remember).
One downside of the two-script approach that I sometimes bumped into was that I could not make the Reorder script actually reorder the input queue, so I could not defer a given item if I wanted to think about it for some more. Therefore I ended up disabling the Reorder Buttons script again a few days ago (but I will definitely reenable it again if I end up having a pile of reviews once more :sweat_smile:).


This is exactly what I wanted! Thank you so much!

1 Like

A “smart bomb” or “power blast” button. It takes your entire review stack and automatically passes them all. Except the burn reviews; it fails those first, then passes them (so they don’t actually get burned).

Why this would be useful (in spite of the cheating):

When you get far enough behind in the reviews (not just behind, but WAY behind, like thousands of reviews behind), it becomes impossible to review your way out. The shorter SRS intervals are blocked by thousands of other waiting reviews.

Ideally what I was thinking is it would take that thousands-of-reviews stack, take off a manageable chunk, and give it to you today, while deferring the rest to another day, Then, repeat the process every day. Take a big vertical stack, and convert it to a horizontal flow of incoming reviews, with time to re-review and learn the failures. Unfortunately the only way the due date can be changed user-side is to pass or fail a review. So, in desperate times, desperate measures. Smart bomb it.

1 Like

Nope :joy_cat: I’ve done it a few times, and lots of others have done it as well, as you can read in a bunch of threads around here.
You can use the Ultimate Reorder script to go by level (the idea being that you might know the lower-level items better and thus can pass them more easily) or the Reorder Buttons script to go by SRS level ascending (if you want to do your newest items first, but that wouldn’t help you much to reduce your review load as they will come back real quick) or descending (i.e. moving the high-level items out of the way so that you can focus on the not-so-well-known ones). Once you reached a level where you really don’t know the items any more, you can reset to that level and start over from there. But you don’t have to; you can as well work your way up all the way to the top.


i’ve found that reordering reviews was already a huge help, reviewing apprentice items first. Those are the ones you struggle with, with the most repetitions because of the interval. The guru, master and enlightened items can wait, they’re on a long interval anyway.
I’ve had a 2000+ review stack a few months ago, and i beat it. It took 1-2 weeks of 200+ reviews a day. i think even with 100 reviews a day you could beat such a stack in a little longer. It just needs consistent work.
Big stacks just show you that you’ve missed a period of regular work, which has now piled up, and you need to do it all one way or another. It’s like not washing the dishes for a few weeks, you’ll just need to get through the pile. There could be things which make it easier, like reordering, segmenting a chunk of reviews off for later as you say (which i do imagine can be useful), etc, but in the end, it will come out as pretty much the same as just doing all the reviews.
I hope this isn’t condescending or disheartening, but i really think a review stack is just piled up work that you need to get to one way or another. And you can do it!

1 Like

I know, I’ve done it myself. “Impossible” is a bit of an exaggeration.

Still, it would be fun to just BOOM! Blast away that stack of 3000 down to like, 20. You’d pay for it later, of course.

Might be a fun programming challenge for someone, too, just to do it.


Not at all, Like I said, I’ve experienced powering through a 3000 stack.

It is and it isn’t. Doing the reviews when your accuracy is fairly high while you’ve been keeping up with the intervals as designed (more or less) is not at all the same experience as doing it when your accuracy is terrible. Every review takes AT LEAST twice as long (fail, then pass the second time), not counting the long thinking time if you’re trying. Then, when you fail, maybe you should review that again in 24 hours, but you can’t guarantee that. (Ultimate Reorder would help with that part)

I decided to reset to 10 this time, and I’m pretty happy with that decision, but it has its drawbacks too.


Could be a script to make just for fun if I ever have some time to kill, but personally I would prefer to reorder by level so that you can follow the SRS of the items


How about a “Bury related new cards/reviews until the next day/session”? (like anki has, sort of) Basically if there’s more than one (or a certain number) of vocab sharing the same kanji in one lesson/review session then some will be postponed until a later time (say, two hours later for Apprentice/Guru, a day later for Master/Enlightened for example).
Tried to search for a way to avoid having a sesson with being asked for the same kanji repeadedly and thusly not being quite sure whether I actually would have remembered it correctly for the second or third vocab. The best solution people have suggested was to let vocab lessons pile up, and then do them in batches randomised by level. Which on average helps, but by the nature of randomness may still result in a ~時、時、一時 lesson (and thusly usually also subsequential reviews). Or conversely a vocab not getting seen until four levels later.
(And yes, I’m aware that especially on lower levels this would lead to a lot of delays… but I’m happy to work slow if it helps properly memorising words/kanji ^_^)

1 Like

If you do, it should have an anime cut-scene with a satisfying countdown and big explosion.

Seems like it would be a hard script to test

1 Like

A script to check how accurate you are, on average, on a given day of the week. Like, are Saturdays better for accuracy than Wednesdays? And so on. I think that would be interesting.

1 Like

Oh, I have that! I’m pretty sure. It’s not a browser plug-in, but a short bit of code you can cut/paste in the console and get a text output. Also by time of day.

I’ll paste it in here when I get back to my other computer. Probably wouldn’t be hard for someone to turn into a browser extension. (For that matter, it wouldn’t be hard for someone to do it from scratch either, it’s pretty straightforward unless you want pretty graphs)


It actually would be handy to have a script that dumped the whole database to a series of excel tables, so I could do my own PowerQuery/PowerPivot crosstab and graph making magic. I’ve put off learning how to pull all that with the pagination in the API because I just don’t ever have the time.


Alright, sounds great! I will probably, when my current review nightmare is over, look into the API myself, but for the time being I’ll wait and see what you’ve got going on :slight_smile:

Well it looks like I don’t have day of the week, but I do have hour of the day.

function fetch_data() {
        return wkof.Apiv2.fetch_endpoint('/reviews');
function process_data(json) {
        let stages = ['Lessons', 'Apprentice 1', 'Apprentice 2', 'Apprentice 3', 'Apprentice 4', 'Guru 1', 'Guru 2', 'Master', 'Enlightened'];
        let reviews = json.data;
        let hourCount = new Array(12).fill(0);
        let hourCorrect = new Array(12).fill(0);
        reviews.forEach(review => {
                let hour = new Date(review.data.created_at).getHours();
                let bin = Math.floor(hour/2);
                if (review.data.ending_srs_stage > review.data.starting_srs_stage) {
        let output = ['Accuracy:'];
        for (let i=0; i<12; i++) {
                let time = ('0'+(i*2)).slice(-2)+':00 - '+('0'+((i+1)*2)).slice(-2)+':00';
                if (hourCount[i] > 0) {
                        output.push('  '+time+': '+(hourCorrect[i] / hourCount[i] * 100).toFixed(2)+'%'+' ('+hourCount[i]+')');
                } else {
                        output.push('  '+time+': ---');

If you cut and paste it into the javascript console you should get something like:

  00:00 - 02:00: 89.77% (2180)
  02:00 - 04:00: 91.78% (937)
  04:00 - 06:00: 89.24% (474)
  06:00 - 08:00: 84.58% (694)
  08:00 - 10:00: 88.79% (2275)
  10:00 - 12:00: 90.58% (5065)
  12:00 - 14:00: 88.80% (4438)
  14:00 - 16:00: 90.49% (4015)
  16:00 - 18:00: 89.23% (5527)
  18:00 - 20:00: 89.86% (10681)
  20:00 - 22:00: 89.26% (12359)
  22:00 - 24:00: 88.42% (7133)

Credit: originally from user rfindley, I believe, or substantially so and slightly modified.