[Userscript]: Reorder Ultimate 2 [newest]

I assume just click the middle of the scale to ‘balance’ it, and maybe it won’t sort.

The middle of the scale that is labeled “ランダム”? No, surprisingly enough, that randomizes the item order for me :wink:

3 Likes

ok, good to know. (I’m on my tablet right now, so can’t look at the script)

Hi! I’m having trouble loading the level sorting buttons, under Sort Levels:

There are times when I open the review session and they appear normally, but other times it will start like this, empty, and I can’t filter out the levels I don’t want in the reviews D:

I’ve already checked and the userscript is properly updated and while I took this print this was the only script enabled on tampermonkey and running. Do you guys know if there anything more that could be done to fix this?

Additionaly, there seem to be some errors on Chrome’s console:


image

The first thing I noticed is that your scales (on the left and right) aren’t tipped to select sorting priority. If Reorder was working for you previously, I would guess your settings have been reset or corrupted, so you will need to reselect some settings.

Second, those errors indicate that the browser is pulling invalid item data from $.jStorage, which may mean that something is being corrupted outside of the script.

Anyway, I would recommend clearing cache, reload the page, then reselect your settings.

1 Like

Context: Input box changes text to hiragana for radicals - #7 by Adi-M

@rfindley sorry for the trouble. There was a change the to subject objects delivered in the payload which broke the script.

Namely there is a change to the rad property. In the past we would either assign the radical’s character or the radical’s image filename as the value. We have introduced a new property called character_image_url where the value is the full url to the image. This led to reducing the rad role of only having the character as the value. If the character is not present, then it is null. So the expectation that rad value is always truthy is no longer there…

Scanning the scripts code there is a lot of logic which checks the truthiness of rad’s value. Given the change we made on our end, it broke the script.

The solution to this is to replace any truthy checks by checking the existence of the rad key. I recommend using Object.prototype.hasOwnProperty.call(object, property). Using an example, if one had a if (item.rad) {...}, it’ll need to be replaced with if (Object.prototype.hasOwnProperty.call(item, 'rad')) {...}.

This change should address the breaking.

Again, sorry for the inconvenience.

5 Likes

Thanks for the investigation! I am only partly familiar with this script’s code (xMunch was the author, and I did a minimal adaptation for APIv2), so your insights will save a ton of time. I’ll go ahead and patch the code.

3 Likes

:point_right: [v2.2.8] - Fixed item type detection after WK change to item.rad property.

I’ve tested to the extent that I can without having any image-based radicals in my test queue.

3 Likes

Hey, I reported the issue earlier and it seems to be gone now with the update. Thank you so much for the quick fix! :heart:

1 Like

I’d like to add that this change also broke my Lesson Filter script. I’ve mentioned this before, but I think adding a formal way to manipulate the lesson/review queue would be very beneficial here. As I’m sure you know, scripts that filter or reorder the lesson/review queues are very popular, but they are currently manipulating internal details which are bound to change as they did here. It would be nice if in the long run the lesson and review pages included hooks in the JavaScript workflow for initializing the queue or picking the next item off of the queue, etc., which could make scripts like this easier to build and less likely to break.

I know script users are a relatively small fraction of the entire community, but a not insignificant number of users rely on my Lesson Filter script (it’s been downloaded about 3000 times for what that’s worth). For some of these users, it’s the only reason they haven’t quit WaniKani entirely. I want to share the two main use cases (as far as I know) in case it helps. Maybe something here will impact the long term roadmap of the product.

  1. The first usage is probably the one you’re most familiar with: prioritizing lessons for radicals and kanji to increase level up speed, then doing the vocab while waiting until the radicals and kanji reach guru. This helps users go at max speed with a more balanced workload since they can do lessons over many days instead of all at once.
  2. The second usage is to create a more balanced learning experience. I know that many (myself included) use Lesson Filter to do a mix of kanji and vocab lessons each day. For some people, using the default lesson order setting (lowest level then type) can be incredibly painful. I always found it much harder to learn kanji than vocab, so doing 30 kanji lessons in a row before learning any vocab would have been an absolutely nightmare for me. But the other options in the settings are not ideal alternatives since the randomization can result in slower level up times for no good reason. That’s why these users like using Lesson Filter: They can level up at a steady pace while still learning a mix of kanji and vocab together. Increased efficiency and lower stress. I think it would be great if a feature like Lesson Filter was included in WaniKani by default, even if it worked slightly differently to not overwhelm beginners.
2 Likes

Hey Sean.

I do appreciate you taking the time writing out your request and outlining the reasons why offering additional ordering options is beneficial to the user.

I have logged the request in our feature request tool so the appropriate eyes can review it. It is the best I can do for you at the moment.

1 Like

Thanks, that’s all I can ask. Feel free to reach out if you ever want to know more about the script.

1 Like

@seanblue,
For whatever it’s worth, I also outlined an off-the-cuff Review API idea to WanikaniJavi a few days ago as an aside in a direct message related to Double-Check. The example API (which was just a general example to convey the notion) covers much of what you mentioned: Getting and setting the review queue, decoupling UI state from “submit” actions, decoupling of answer checking from answer submittal, a function to get the current question info from the review queue, a function to advance the queue index, etc.

Anyway, I’m not pushing for anything… The discussion was just about why I’m not fond of Double-Check internally. It’s too invasive into the WK UI code (out of necessity), which makes it susceptible to easy breakage. So I sketched up a “would be nice someday” idea… sort of “food for thought”.

2 Likes

Right, same here. I’ve been finished with WaniKani for quite a while and don’t plan to do it over at any point, so I don’t really have a stake in this. I can only point to my experience using the platform and building scripts for the platform to provide a few suggestions.

1 Like

the UI is confusing af

maybe I’m dumb but can someone please tell me how to make a lesson “vocabulary only”? I’ve been trying for a few minutes and I still get a kanji in my lesson queue.

I had “Wanikani Lesson Ordering II” until the recent web update broke it and there was simply a button for Vocab (or another button for Kanji+Radicals)

Try the lesson filter script. Put 0 in radicals and kanji and a non-zero number in vocabulary to get a vocabulary only lessons.

1 Like

You can also leave the vocab field blank to keep all vocab lessons. :slight_smile:

2 Likes

So I’ve been getting a few problems recently.
First, it appears doubled on the screen.


I thought this would be fine as long as it was still working (for example, if i deleted the radicals, all four of the bars would disappear.)

But then, a radical still appeared in a kanji only study.

I then reinstalled the newest version, and the parts that were being doubled was fixed, but radicals showing up in a kanji only study is still happening.

Any ideas?

1 Like

Right-click on radicals and kanji to remove them

1 Like

thanks, that seems to work