Linux command line client?

Hey would anyone be interested in using a linux command line client for wanikani? If there is interest I might be able to throw something together. I saw another user started working on something similar but never finished it.

What’s the practical use case? Well, none that I can think of except that the terminal looks dope. A potential barrier could be that I believe some radicals are rendered as images rather than ASCII characters.

20 Likes

You could use Sixel or image2ascii or just spawn an external image viewer. I’m pretty sure all the rendered images are svg.

4 Likes

Using? No. But I would be interested in following its development if you go ahead with it, and it sounds like a cool project regardless of how much real use it gets!

2 Likes

Agree, I probably wouldn’t use it, but it sounds like a neat project idea!

edit: on second thought, it could be useful for “stealth reviewing” :stuck_out_tongue:

7 Likes

Time to use it as a login mechanism. Solve this review if you want to do sudo!

9 Likes

Incidentally I’ve considered making a browser extension where you need to complete a single review before loading a new webpage.

10 Likes

yeah :joy: this is the true use case. Nothing to see here, boss.

4 Likes

Yes this sounds dope!
I’m always for using command line unnecessarily just because it looks cool.
I’d be down to try to help development as well.

4 Likes

Boss: What are those squiggles in your .bash_history?
WK User: That’s my new password encryption.

8 Likes

A number of radicals that are rendered as images on WK do have typeable counterparts that are very similar. For example for the beggar radical you could use 丂 as a stand-in for the image. It looks subtly different from how the radical looks on WK, but some kanji made up of that radical already use the altered appearance, so it shouldn’t be too much of a difference for this application. You’d still need something to deal with the subset of radicals that have no typeable counterpart though.

Well, I was looking for something like that to do “stealth reviewing”.

Let’s work on it together? Can you create a repository on Github.

What language do you want to use? Python?

1 Like

Yeah we should kick this off! I may take a stab at getting things started

2 Likes

Let’s do it then. We should decide on a language first.

I can go with: Python, Ruby, JavaScript (node)

My main experience is in python so that’s where I’ll be most helpful. I know there’s proof of concept repository linked above by someone but haven’t look at it much

1 Like

Great. I am also more familiar with python.

Let’s go with Python 3.9. Do you want me to create a repo on Github or you do it?

Cheers,

I’d be interested in using it. Good luck!

Yeah that is fine with me.
You can start it off!
My GitHub username is naf445

Hi,

I made a quick prototype: GitHub - ajite/hebikani: A CLI interface to do your review on WaniKani

There are a lot of things to be done. We need indeed to display SVG for radicals since some of them do not have an UTF entry.

So far my understanding of the API is that your “summary” contains both the lessons in your queue and the reviews. At the moment I only focused on the reviews. The lessons should be pretty similar. I then request all “subjects” using the subject IDS of the reviews I got from the summary endpoint. Once I retrieved the subjects, I create a deck of cards. Radicals have one card, kanji and vocabularies have two cards. The front of the card always contains the characters (or later a svg for the radicals) while the back of the card contains the readings or the meanings. When your answer is correct, we delete the card from the deck and go to next one, when your answer is wrong we keep the card and shuffle your deck.

There are some limitation on the number of reviews we can fetch at once. We will take that into account later since it only concerns account that have a lot of reviews in their queue.

The user input will also be an issue. So far we can use a Japanese keyboard to submit hiragana and katana. It is easy to convert a text using something like a dictionary {‘a’:‘あ’, ‘tt’: ‘っt’…} but I don’t think we can add events on the default input function. We might have to use a custom input or some kind of library.

Unless mistaken we also need to add “typo tolerance” since I did not see any API endpoint to send an answer to WaniKani. We probably have to decide if a user answer is correct or not and then inform the API about the review status. I feel that should not be a priority. We should focus on the basic interface.

I will work on the SVG display next. Let me know on what you are working so we don’t do things twice.

Feel free to fork it and submit pull requests. Remember it’s a prototype feel free to change whatever needs to be changed or make an entirely new fork. Let’s use that project to improve both our Japanese and programming skills.

Usage:

Summary:

Review session:

Cheers,

6 Likes

very interesting project. I would like to help but I am not too familiar with python, more into typescript javascript and java. I don’t think that would be very helpful for your project.
Ill be following it tho, sounds interesting. I am not always able to go into the browser on desktop to do reviews so punching a few on terminal sometimes might help me out lol

1 Like

Hi all,

I published a small update to improve the input method.

The input method will now convert romaji to hiragana or katakana. See the gif below:

output

I use the same principle as : https://github.com/asweigart/stdiomask. Since I do not have a Windows computer, I could not implement it for Windows. It should work well on both OSX and Linux systems.

I also added the “python-romkan” library which converts romaji to kana and vice versa. I had to play a bit with the string since the WaniKani system uses lower case for hiragana and upper case for katakana and I wanted the same end-user experience.

Feel free to contribute,

Cheers,

4 Likes