What do you want now? (Request extensions here)

Don’t know if there still is one, but would love a quick mode that immediately jumps to the next item when you answer correctly

That’s “Lightning Mode”. There’s an unsupported standalone version, but the Double-Check script (which is still supported) has Lightning Mode built in. You can disable all of the other features of Double-Check if you only want Lightning Mode.

3 Likes

Has anyone written a script to help disambiguate vocabulary with identical English “meanings”?

I’m thinking of something that compiles all the English primary and alternate meanings for every vocabulary item, then looks for items that accept an identical response for “meaning”.

It wouldn’t be hard to write something, but I wondered if it already exists.

I see posts like this one periodically. I’ve written some myself.

It would be interesting to at least view a sorted list of words with identical “meanings” (in quotes because often these words mean different things entirely).

I’m ultimately interested in identifying “hash collisions” where one English phrase has multiple, quite different, connotations, but Japanese has different words for the different connotations.

The first step is to just generate the list. The next (much harder) step would be to identify “hash collisions” vs. actual synonyms.

(Scripts like the Confusion Gueser do more than what I’m looking for.)

So is this the point I recommend starting a “one disambiguation a day” thread? :joy:
I don’t think there’s a script like that, at least haven’t seen anyone use anything like it and it would be out of date by now I’m pretty sure

1 Like

I think I’m done volunteering for a while! :laughing:

Between senryu and an entire freaking website I’m in the process of creating for sentence diagramming, I’m pretty much fully consumed.

It is probably not what you are looking for, but your description reminded me of the Kanji Search Notes script which lists groups of related words (similar kanji, pronunciations, meanings) for kanji and vocab items.

3 Likes

I am not sure if someone has created this one – New Lesson Blocker. Like no new lesson when

  • Apprentice count more than 150
  • Guru more than 500
  • All Kanji of the level unlocked, and less than 90% of vocabularies in review Guru’d
  • Level 58-59, and strict criteria not met; and checkpoints every 10 levels

The idea comes from this – Level Up Work Around, but in the end, prioritize vocabularies of the level.

2 Likes

My Lesson Lock can do some of that

1 Like

This would be a (hopefully) fun little forum stat script. I want to know how many of my posts has been liked by any given user.

For example, the number of my posts that have been liked by TofuguJenny or Vanilla are not so many, so those are no problem to count manually. On the flip side, we have Naphthalene who has liked so many of my posts I can’t really count all of them, but at the same time, is not showing up in the “most liked by” column on my profile page (yet).

If this kind of script is possible at all, preferably just a button (which shows the total number of posts) somewhere around the top of the page, like this:

https://community.wanikani.com/u/Redglare/notifications/likes-received?acting_username=Naphthalene

(Insert your own username where it says Redglare for it to work.)

4 Likes

I am not sure if your URL endpoint is correct, but I make a quick script for the console (copied from Like Counter).

// ==UserScript==
// @name         WaniKani Community API
// @namespace    polv/wanikani-community
// @version      0.1
// @description  Fetch JSON from WaniKani Community (Discourse) API
// @author       polv
// @match        *://community.wanikani.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=community.wanikani.com
// @grant        none
// ==/UserScript==

(function () {
  'use strict';

  Object.assign(window, {
    wkCommunity: {
      fetch: apiFetch,
      likesReceived: (acting_username) =>
        apiFetch(
          `/u/${getUsername()}/notifications/likes-received?acting_username=${acting_username}`,
        ),
      // From https://community.wanikani.com/t/userscript-like-counter/27389
      summary: () => apiFetch(`/u/${getUsername()}/summary`),
      help: 'https://docs.discourse.org/',
    },
  });

  function getUsername() {
    return ($('#current-user a').attr('href') || '').split('/u/')[1] || '';
  }

  function apiFetch(url) {
    return fetch(url, {
      headers: {
        accept: 'application/json, text/javascript, */*; q=0.01',
        'x-requested-with': 'XMLHttpRequest',
      },
    })
      .then((r) => (r.ok ? r.json() : null))
      .then((r) => {
        console.log(r);
        return r;
      });
  }
})();
4 Likes

Hmm, there seem to be an issue?

Some quicc mafs helped me find the answer

Seems like each post are counted in steps of 5.

First post: 2346 (I round it down to 2345)
Latest post: 60
The difference: 2285
Divide it by 5: 457

And that’s the total number of posts :durtle_megane:

I don’t think that actually gives you the number of likes, does it?

Yeah. I am confused about what that endpoint does…

@Redglare I tried making a simple script that searches through the user_actions.json endpoint. This should serve you well, I think. For some reason it seems to be off by a couple of likes compared to the summary page, but it’s pretty accurate

likes = 0
minPage = -1
maxPage = 100_000
page = 50_000
pageSize = 30
user = 'Redglare'
liker = 'Naphthalene'
while (true) {
    response = await fetch(`https://community.wanikani.com/user_actions.json?username=${user}&filter=2&acting_username=${liker}&offset=${page * pageSize}`)
    items = (await response.json()).user_actions.length
    if (!items) {
        maxPage = page
        console.log(`page ${page} doesn't exist`)
        if (minPage === maxPage - 1) {
            likes = page * pageSize + items
            break
        }
    } else {
        minPage = page
        console.log(`page ${page} has ${items} items`)
        if (items !== pageSize) {
            likes = page * pageSize + items
            break
        }
    }
    page = Math.floor((minPage + maxPage)/2)
}
console.log(`${liker} has given ${user} ${likes} likes`)
4 Likes

Kumiii :durtle_love:

image

Seems very accurate! It wasn’t off at all compared to any on my summary page, at least.

Thank you, I appreciate it~ :grin:

2 Likes

I imagine it could have something to do with deleted posts or posts in forum categories that you can’t see, or maybe even PMs

2 Likes

ohhh, yeah that might be it. Since you’re not a regular anymore… Do you happen to see the same number as me on your summary page? (2,588)

1 Like

I get 2486

1 Like

oho :eyes: There must be a connection. Wait, so what number did you get with your script?

1 Like