When can I read [X]? - WaniKani Level Checker

Thanks for sharing Breadstick.  Looks useful.

Xyresic pasted a wall of JavaScript code and said…

[…]

All you have to do is copy+paste the code below, launch the JavaScript console on your browser (press F12), then paste it into the box and press enter. Of course, that’s only if you trust what I just pasted and that it’s not going to steal your first-born baby or something.
JavaScript can do many things, but I have yet to see a way to have it steal someone’s first-born.  Then again, there’s probably a library for that…

Awful jokes aside, if you want to avoid fiddling with the console you can bookmark <strike>the address of this link</strike> the code below which is just @Xyresic’s code modified to work as a JS bookmarklet that displays the info in an alert box.  Fair warning, though, your browser may hate a little you if you try it.  In Chrome, the UI slows a bit when hovering over the bookmark, but it still works properly when clicked.

EDIT: Though I was trying to avoid another massive wall of JS, the forum’s post editor wouldn’t accept a link with such a long address, so here’s the full code (sorry):

javascript:wk = [[“卵”,32],[“浜”,28],[“七”,1],[“謎”,44],[“二”,1],[“雇”,39],[“加”,19],[“潔”,28],[“三”,1],[“鳩”,46],[“山”,1],[“衆”,28],[“値”,22],[“岐”,39],[“大”,1],[“女”,1],[“芽”,44],[“販”,24],[“巨”,28],[“排”,40],[“湧”,60],[“才”,2],[“替”,25],[“煙”,18],[“仙”,39],[“員”,12],[“奪”,39],[“階”,12],[“度”,9],[“卓”,45],[“右”,2],[“聡”,51],[“意”,11],[“拒”,39],[“甘”,36],[“白”,2],[“牛”,3],[“磨”,45],[“花”,4],[“牙”,36],[“公”,3],[“鋼”,39],[“玉”,2],[“応”,22],[“立”,2],[“笛”,19],[“微”,28],[“位”,11],[“切”,3],[“陥”,52],[“札”,7],[“太”,3],[“量”,24],[“竹”,4],[“寺”,15],[“戸”,3],[“代”,4],[“貸”,27],[“婦”,28],[“神”,11],[“少”,3],[“舞”,36],[“各”,22],[“誘”,27],[“欄”,54],[“他”,4],[“氷”,4],[“有”,6],[“肉”,5],[“頂”,51],[“矢”,3],[“母”,3],[“章”,12],[“皮”,4],[“埼”,39],[“史”,19],[“飯”,15],[“皿”,4],[“四”,2],[“農”,10],[“休”,4],[“小”,2],[“洋”,11],[“手”,2],[“資”,21],[“短”,12],[“惰”,52],[“充”,39],[“易”,19],[“町”,4],[“耳”,4],[“未”,7],[“退”,27],[“糸”,4],[“例”,14],[“虫”,4],[“剰”,53],[“不”,4],[“学”,5],[“交”,5],[“成”,11],[“練”,13],[“凍”,28],[“仕”,4],[“万”,3],[“漸”,60],[“行”,5],[“同”,5],[“希”,14],[“駅”,13],[“鳴”,10],[“西”,5],[“協”,14],[“体”,5],[“児”,28],[“貫”,52],[“声”,5],[“湿”,45],[“目”,2],[“走”,5],[“亡”,6],[“収”,23],[“金”,5],[“空”,5],[“雨”,5],[“谷”,5],[“青”,5],[“林”,5],[“第”,12],[“安”,6],[“入”,1],[“畔”,60],[“判”,21],[“括”,42],[“季”,14],[“固”,14],[“車”,4],[“親”,10],[“両”,6],[“乗”,9],[“涙”,44],[“集”,10],[“九”,1],[“血”,6],[“父”,3],[“勧”,39],[“繊”,53],[“違”,24],[“回”,5],[“知”,6],[“明”,6],[“歩”,6],[“店”,6],[“枯”,51],[“周”,14],[“権”,21],[“科”,6],[“犠”,40],[“味”,11],[“南”,6],[“沸”,51],[“茶”,6],[“椅”,46],[“活”,6],[“海”,6],[“百”,4],[“赤”,4],[“惨”,53],[“孔”,46],[“由”,7],[“恋”,17],[“怠”,52],[“失”,7],[“全”,6],[“必”,7],[“久”,3],[“翔”,45],[“末”,7],[“校”,7],[“般”,36],[“裂”,43],[“家”,7],[“遭”,52],[“紙”,7],[“帥”,53],[“対”,8],[“理”,7],[“魚”,7],[“逸”,54],[“燥”,51],[“鳥”,7],[“船”,7],[“雪”,7],[“黄”,7],[“週”,7],[“胡”,53],[“用”,3],[“君”,8],[“暗”,13],[“布”,19],[“接”,26],[“幻”,17],[“投”,8],[“杯”,29],[“役”,8],[“作”,5],[“紋”,54],[“買”,8],[“研”,8],[“馬”,8],[“飛”,20],[“負”,9],[“瓶”,51],[“島”,12],[“絵”,8],[“監”,29],[“楽”,8],[“雲”,8],[“話”,8],[“数”,8],[“詩”,13],[“践”,54],[“肥”,25],[“所”,8],[“停”,23],[“酒”,10],[“県”,9],[“待”,9],[“又”,2],[“重”,9],[“盗”,30],[“深”,12],[“倍”,12],[“累”,55],[“温”,12],[“迫”,27],[“求”,14],[“項”,39],[“死”,6],[“村”,4],[“銀”,13],[“速”,10],[“羊”,6],[“名”,4],[“鹿”,36],[“人”,1],[“夕”,2],[“茎”,54],[“広”,3],[“八”,1],[“分”,3],[“住”,8],[“主”,4],[“低”,11],[“途”,27],[“電”,8],[“通”,7],[“見”,4],[“友”,3],[“帝”,46],[“日”,2],[“薄”,40],[“朴”,55],[“嵐”,44],[“高”,7],[“補”,25],[“露”,43],[“方”,3],[“池”,5],[“月”,2],[“雅”,40],[“好”,11],[“里”,5],[“貞”,51],[“前”,6],[“技”,14],[“長”,6],[“之”,55],[“格”,14],[“尻”,20],[“読”,10],[“気”,4],[“反”,8],[“能”,14],[“冒”,16],[“物”,9],[“育”,11],[“悦”,56],[“星”,6],[“新”,9],[“私”,14],[“使”,9],[“勝”,9],[“奇”,28],[“予”,9],[“答”,8],[“轄”,56],[“便”,11],[“光”,5],[“骨”,14],[“訓”,18],[“泳”,9],[“遊”,30],[“遠”,16],[“具”,9],[“持”,9],[“即”,43],[“送”,9],[“粘”,47],[“設”,21],[“械”,20],[“虚”,17],[“準”,23],[“麗”,28],[“報”,18],[“館”,13],[“卒”,14],[“業”,10],[“次”,6],[“談”,9],[“服”,9],[“囲”,14],[“社”,5],[“美”,9],[“底”,17],[“表”,9],[“模”,25],[“評”,21],[“荒”,42],[“靖”,56],[“院”,10],[“飲”,10],[“唄”,60],[“顔”,10],[“聞”,10],[“習”,10],[“蝶”,56],[“錬”,46],[“音”,5],[“写”,4],[“最”,10],[“転”,10],[“士”,13],[“醸”,57],[“芯”,47],[“償”,37],[“列”,15],[“了”,2],[“路”,10],[“運”,10],[“致”,38],[“保”,16],[“望”,14],[“注”,11],[“拾”,11],[“仲”,11],[“御”,39],[“特”,11],[“酎”,41],[“努”,11],[“吉”,44],[“超”,36],[“師”,23],[“弓”,18],[“共”,11],[“約”,14],[“基”,14],[“波”,11],[“会”,5],[“移”,28],[“欠”,7],[“出”,2],[“鉄”,10],[“腸”,57],[“鼻”,17],[“隻”,51],[“羅”,57],[“番”,8],[“任”,21],[“北”,3],[“庭”,12],[“術”,14],[“売”,5],[“決”,8],[“一”,1],[“課”,13],[“然”,13],[“風”,7],[“東”,6],[“動”,12],[“参”,14],[“息”,12],[“根”,12],[“喝”,57],[“商”,12],[“堅”,42],[“童”,12],[“悲”,12],[“供”,24],[“笑”,16],[“俺”,44],[“植”,12],[“賞”,13],[“棟”,46],[“尼”,49],[“期”,12],[“齢”,38],[“喪”,42],[“鏡”,13],[“秋”,15],[“塊”,45],[“膜”,57],[“映”,13],[“席”,17],[“問”,13],[“岩”,15],[“六”,2],[“帰”,15],[“返”,9],[“貝”,4],[“塩”,17],[“昼”,15],[“刀”,2],[“様”,13],[“慨”,58],[“区”,15],[“綱”,42],[“計”,15],[“陪”,58],[“想”,13],[“寄”,29],[“無”,17],[“結”,17],[“葉”,10],[“果”,17],[“億”,13],[“橋”,13],[“歯”,12],[“僚”,29],[“天”,2],[“痛”,27],[“王”,2],[“石”,2],[“犬”,2],[“釈”,51],[“譜”,58],[“建”,15],[“礼”,4],[“界”,9],[“申”,4],[“診”,29],[“肪”,51],[“振”,26],[“禍”,59],[“飼”,32],[“雄”,29],[“麦”,5],[“廉”,60],[“経”,20],[“勉”,12],[“角”,5],[“崇”,59],[“医”,8],[“発”,9],[“戻”,37],[“労”,11],[“熱”,13],[“客”,9],[“漢”,10],[“批”,21],[“坂”,15],[“秒”,11],[“阪”,16],[“詳”,30],[“抗”,37],[“泣”,15],[“梅”,17],[“真”,16],[“疾”,54],[“急”,16],[“箱”,16],[“猫”,15],[“懐”,30],[“軍”,15],[“典”,16],[“府”,16],[“市”,3],[“連”,19],[“検”,21],[“侮”,59],[“英”,15],[“川”,1],[“築”,15],[“聴”,37],[“喜”,16],[“力”,1],[“辞”,16],[“信”,15],[“変”,15],[“仏”,15],[“取”,16],[“非”,17],[“初”,11],[“渉”,17],[“弁”,16],[“式”,15],[“寡”,60],[“是”,17],[“証”,16],[“識”,17],[“寒”,12],[“面”,16],[“的”,14],[“係”,16],[“門”,16],[“汽”,18],[“官”,17],[“辱”,48],[“震”,20],[“誕”,22],[“養”,13],[“緑”,13],[“湾”,37],[“残”,14],[“雰”,14],[“凶”,45],[“妥”,14],[“国”,6],[“法”,15],[“弔”,57],[“束”,14],[“折”,14],[“材”,14],[“憾”,55],[“毒”,15],[“革”,23],[“去”,4],[“昨”,15],[“黒”,7],[“浴”,16],[“晩”,15],[“険”,16],[“遍”,57],[“比”,19],[“因”,17],[“字”,4],[“喫”,18],[“夏”,7],[“色”,5],[“順”,19],[“茜”,54],[“節”,19],[“若”,19],[“財”,19],[“渓”,60],[“進”,10],[“句”,18],[“験”,18],[“僧”,18],[“稿”,53],[“閥”,19],[“狩”,45],[“像”,13],[“舌”,19],[“際”,21],[“敵”,21],[“胸”,18],[“洗”,18],[“宙”,19],[“殺”,13],[“混”,19],[“暴”,19],[“団”,19],[“履”,19],[“忙”,19],[“渦”,51],[“達”,18],[“脳”,18],[“類”,18],[“種”,18],[“可”,18],[“豪”,31],[“弟”,5],[“忘”,18],[“号”,4],[“企”,21],[“探”,31],[“得”,19],[“提”,22],[“坊”,22],[“頑”,14],[“困”,19],[“善”,19],[“災”,20],[“自”,5],[“級”,11],[“責”,21],[“増”,21],[“欧”,29],[“居”,25],[“在”,20],[“律”,23],[“産”,20],[“慮”,38],[“嫌”,20],[“落”,10],[“枚”,18],[“妙”,28],[“妻”,20],[“圧”,20],[“間”,8],[“外”,3],[“挙”,21],[“獣”,26],[“倒”,20],[“制”,21],[“裕”,20],[“冊”,19],[“務”,21],[“件”,21],[“逆”,28],[“総”,21],[“岡”,21],[“議”,20],[“穴”,20],[“守”,16],[“被”,20],[“銃”,39],[“遣”,37],[“質”,24],[“害”,20],[“半”,3],[“疑”,13],[“冗”,16],[“引”,3],[“警”,17],[“静”,18],[“覚”,17],[“闇”,48],[“続”,19],[“旅”,12],[“臨”,37],[“稚”,28],[“借”,18],[“禅”,18],[“喚”,51],[“焼”,18],[“論”,20],[“罪”,20],[“難”,20],[“機”,20],[“箸”,47],[“塁”,37],[“含”,25],[“撃”,28],[“認”,21],[“曲”,6],[“株”,24],[“置”,22],[“博”,28],[“等”,18],[“製”,24],[“謝”,13],[“録”,28],[“局”,8],[“修”,28],[“案”,22],[“隼”,52],[“清”,28],[“円”,2],[“央”,4],[“荷”,16],[“券”,28],[“勢”,22],[“装”,33],[“届”,24],[“統”,22],[“営”,22],[“陣”,37],[“腰”,24],[“亮”,51],[“肩”,24],[“庁”,24],[“型”,24],[“旬”,37],[“載”,24],[“廃”,36],[“京”,6],[“益”,28],[“濃”,27],[“管”,24],[“視”,24],[“差”,24],[“上”,1],[“部”,9],[“精”,28],[“境”,24],[“程”,28],[“象”,24],[“武”,24],[“民”,7],[“競”,11],[“述”,24],[“環”,24],[“憲”,28],[“裁”,23],[“浦”,51],[“粉”,31],[“態”,22],[“傘”,28],[“展”,24],[“況”,25],[“鐘”,45],[“影”,25],[“鬼”,23],[“施”,23],[“兆”,37],[“身”,8],[“割”,23],[“口”,1],[“崎”,23],[“限”,25],[“護”,23],[“規”,23],[“胃”,27],[“沿”,34],[“側”,17],[“姉”,6],[“捕”,25],[“景”,25],[“秀”,23],[“宅”,23],[“呼”,23],[“追”,11],[“幹”,23],[“抜”,25],[“張”,23],[“現”,23],[“沢”,23],[“掛”,25],[“針”,26],[“逮”,25],[“肌”,45],[“訟”,25],[“横”,10],[“乾”,29],[“徴”,26],[“足”,4],[“城”,23],[“伺”,41],[“看”,23],[“鮮”,25],[“契”,37],[“乳”,23],[“怪”,26],[“拝”,34],[“属”,25],[“慣”,25],[“絞”,25],[“品”,16],[“捜”,25],[“触”,24],[“選”,13],[“古”,3],[“個”,20],[“突”,26],[“今”,3],[“複”,32],[“図”,5],[“台”,3],[“心”,3],[“頻”,40],[“生”,3],[“事”,9],[“五”,2],[“午”,3],[“語”,10],[“常”,17],[“解”,21],[“義”,21],[“元”,3],[“合”,8],[“審”,21],[“済”,21],[“過”,22],[“澄”,45],[“援”,22],[“委”,21],[“厚”,20],[“異”,33],[“策”,22],[“吸”,22],[“藤”,22],[“菌”,45],[“縁”,44],[“岸”,11],[“観”,22],[“領”,22],[“秘”,32],[“千”,2],[“韓”,29],[“座”,18],[“優”,23],[“則”,23],[“輸”,24],[“隠”,25],[“豊”,25],[“祝”,24],[“奥”,38],[“眠”,27],[“迷”,27],[“萌”,57],[“極”,27],[“症”,27],[“閣”,29],[“仮”,9],[“給”,27],[“刑”,37],[“端”,27],[“盾”,48],[“再”,26],[“悪”,12],[“就”,27],[“奏”,38],[“都”,12],[“織”,27],[“障”,26],[“汁”,35],[“煩”,60],[“男”,4],[“筆”,26],[“較”,26],[“河”,26],[“菓”,26],[“刺”,26],[“励”,26],[“締”,27],[“怖”,29],[“系”,30],[“烈”,29],[“猛”,29],[“版”,30],[“適”,30],[“貧”,30],[“翌”,30],[“債”,36],[“延”,30],[“略”,29],[“流”,12],[“越”,30],[“世”,4],[“符”,30],[“娘”,29],[“献”,36],[“宗”,29],[“占”,26],[“婚”,30],[“江”,29],[“促”,29],[“催”,29],[“宴”,29],[“督”,29],[“詰”,29],[“臣”,29],[“旗”,30],[“押”,30],[“渇”,30],[“魅”,30],[“快”,30],[“照”,30],[“覧”,30],[“昇”,27],[“飾”,30],[“激”,26],[“枕”,30],[“撮”,30],[“繁”,40],[“壌”,53],[“貯”,26],[“往”,26],[“創”,26],[“印”,26],[“造”,26],[“故”,26],[“屈”,27],[“惑”,27],[“悩”,27],[“睡”,27],[“復”,26],[“独”,26],[“受”,9],[“消”,12],[“令”,11],[“専”,16],[“付”,7],[“暑”,12],[“陽”,12],[“蓄”,48],[“単”,15],[“段”,27],[“街”,29],[“板”,29],[“添”,29],[“米”,5],[“索”,29],[“請”,29],[“緊”,29],[“幼”,28],[“簿”,50],[“酢”,35],[“浮”,30],[“嫁”,45],[“融”,31],[“既”,31],[“健”,27],[“編”,31],[“粋”,34],[“棒”,31],[“与”,25],[“華”,31],[“普”,31],[“鑑”,31],[“除”,31],[“幾”,31],[“来”,5],[“聖”,34],[“倉”,31],[“孫”,31],[“径”,31],[“舎”,35],[“隊”,28],[“嘆”,31],[“尋”,31],[“討”,26],[“迎”,32],[“志”,32],[“壊”,29],[“磁”,34],[“驚”,31],[“帯”,31],[“散”,31],[“貨”,31],[“筋”,33],[“脈”,31],[“近”,5],[“銅”,35],[“酔”,35],[“陸”,31],[“射”,34],[“訳”,32],[“破”,35],[“滞”,35],[“弱”,7],[“亀”,35],[“彼”,35],[“炎”,35],[“綺”,28],[“介”,35],[“靴”,27],[“徳”,31],[“祈”,18],[“眼”,32],[“偵”,31],[“辺”,7],[“序”,32],[“賛”,32],[“乏”,30],[“密”,32],[“食”,6],[“蛇”,48],[“圏”,39],[“績”,32],[“銭”,32],[“漣”,58],[“込”,32],[“危”,16],[“背”,30],[“皇”,33],[“妹”,6],[“墳”,50],[“党”,32],[“暖”,32],[“歓”,34],[“雑”,32],[“興”,32],[“欲”,32],[“染”,32],[“朝”,8],[“机”,32],[“厄”,35],[“劇”,34],[“豆”,34],[“窓”,33],[“巧”,50],[“湖”,35],[“簡”,33],[“誌”,33],[“紹”,35],[“講”,35],[“政”,16],[“地”,6],[“互”,35],[“垂”,33],[“宝”,33],[“灰”,33],[“伴”,38],[“拡”,33],[“干”,17],[“汗”,26],[“宣”,33],[“忠”,33],[“納”,33],[“宮”,22],[“頭”,10],[“園”,16],[“剣”,35],[“杉”,35],[“料”,13],[“枝”,34],[“爪”,34],[“盛”,33],[“砂”,33],[“肺”,33],[“著”,33],[“蔵”,33],[“諸”,33],[“攻”,28],[“却”,38],[“恩”,32],[“蒸”,33],[“署”,17],[“賃”,33],[“掃”,31],[“巣”,31],[“液”,32],[“捨”,32],[“細”,17],[“操”,33],[“敬”,33],[“離”,31],[“糖”,33],[“球”,12],[“似”,31],[“鍋”,35],[“払”,35],[“崩”,37],[“称”,38],[“賄”,38],[“敗”,17],[“免”,39],[“患”,37],[“抵”,37],[“埋”,39],[“醤”,35],[“爆”,37],[“並”,28],[“恐”,29],[“毎”,5],[“弾”,37],[“器”,13],[“貴”,34],[“燃”,24],[“念”,14],[“授”,26],[“愛”,17],[“油”,35],[“奴”,34],[“隷”,34],[“紅”,34],[“純”,34],[“幕”,34],[“芋”,34],[“推”,34],[“承”,34],[“揮”,34],[“損”,34],[“刻”,34],[“恥”,35],[“松”,14],[“択”,38],[“描”,38],[“豚”,26],[“郵”,26],[“誤”,34],[“彫”,35],[“丼”,34],[“顧”,40],[“塀”,47],[“年”,4],[“緒”,38],[“算”,10],[“指”,11],[“毛”,3],[“醜”,60],[“緩”,38],[“場”,8],[“曜”,16],[“柱”,40],[“寝”,22],[“功”,11],[“者”,8],[“兄”,3],[“実”,9],[“水”,2],[“歌”,10],[“組”,7],[“平”,4],[“夜”,6],[“恵”,37],[“賂”,38],[“記”,7],[“更”,30],[“氏”,7],[“州”,6],[“着”,12],[“下”,1],[“土”,2],[“避”,38],[“担”,24],[“文”,2],[“働”,11],[“道”,8],[“租”,46],[“栄”,17],[“田”,2],[“配”,10],[“贈”,38],[“康”,27],[“療”,36],[“満”,25],[“起”,10],[“後”,6],[“宇”,19],[“効”,25],[“降”,34],[“候”,25],[“航”,29],[“購”,30],[“構”,25],[“粗”,55],[“存”,16],[“薦”,34],[“強”,7],[“別”,11],[“確”,20],[“刊”,38],[“富”,31],[“輩”,25],[“内”,3],[“寿”,35],[“打”,4],[“繰”,38],[“需”,38],[“貿”,36],[“遺”,36],[“及”,36],[“津”,36],[“維”,36],[“縄”,36],[“姓”,36],[“滑”,42],[“伎”,36],[“伸”,36],[“奈”,36],[“幅”,36],[“頼”,36],[“樹”,41],[“跳”,37],[“沖”,36],[“摘”,36],[“核”,36],[“踏”,36],[“懸”,38],[“房”,38],[“壮”,50],[“絶”,28],[“併”,38],[“盤”,38],[“託”,38],[“昭”,37],[“妊”,38],[“娠”,38],[“旧”,36],[“盟”,36],[“漁”,37],[“扱”,38],[“閉”,33],[“跡”,37],[“漠”,33],[“削”,37],[“調”,10],[“掲”,37],[“逃”,38],[“騒”,30],[“傾”,38],[“還”,38],[“絡”,19],[“従”,26],[“額”,24],[“均”,31],[“祉”,39],[“謙”,39],[“縮”,34],[“当”,5],[“丸”,2],[“十”,1],[“開”,10],[“歴”,19],[“族”,12],[“薬”,17],[“泥”,31],[“邦”,39],[“暮”,33],[“暇”,27],[“点”,6],[“線”,10],[“救”,31],[“渋”,39],[“壁”,39],[“斐”,39],[“棋”,39],[“片”,39],[“塚”,51],[“菜”,31],[“唱”,40],[“躍”,39],[“吹”,40],[“抑”,38],[“駆”,40],[“稲”,39],[“褒”,40],[“欺”,47],[“兼”,40],[“舗”,53],[“巡”,40],[“堀”,40],[“戒”,40],[“携”,40],[“敏”,40],[“獲”,40],[“乱”,19],[“透”,40],[“預”,30],[“誉”,40],[“鈴”,39],[“永”,32],[“書”,16],[“湯”,12],[“導”,23],[“蜜”,41],[“徹”,41],[“揚”,42],[“瀬”,41],[“包”,41],[“措”,41],[“我”,26],[“桃”,44],[“撤”,41],[“防”,20],[“蛍”,41],[“唆”,52],[“至”,41],[“墟”,41],[“蜂”,41],[“虎”,41],[“測”,35],[“垣”,43],[“硬”,45],[“郷”,41],[“闘”,37],[“完”,14],[“価”,22],[“艦”,41],[“桜”,32],[“犯”,20],[“炭”,41],[“仁”,41],[“拳”,41],[“潜”,41],[“鉱”,41],[“輪”,13],[“将”,36],[“陰”,45],[“衣”,41],[“枠”,39],[“偽”,41],[“侵”,41],[“棄”,41],[“処”,28],[“泉”,12],[“髪”,44],[“梨”,44],[“晴”,15],[“隆”,39],[“拠”,41],[“職”,23],[“情”,13],[“冠”,54],[“遜”,41],[“汚”,32],[“狭”,24],[“早”,4],[“素”,21],[“芳”,52],[“噌”,35],[“漂”,50],[“福”,13],[“相”,9],[“利”,11],[“賀”,22],[“時”,7],[“墓”,31],[“俳”,23],[“到”,42],[“克”,42],[“稼”,45],[“床”,42],[“思”,6],[“哲”,42],[“妨”,20],[“僕”,44],[“溝”,45],[“演”,23],[“奮”,50],[“握”,42],[“掘”,42],[“弧”,42],[“滝”,45],[“墨”,46],[“丘”,44],[“募”,37],[“暫”,42],[“仰”,50],[“珍”,43],[“泊”,42],[“枢”,42],[“析”,42],[“籍”,43],[“雷”,44],[“匹”,44],[“司”,15],[“斗”,44],[“網”,42],[“糾”,42],[“範”,42],[“焦”,42],[“潟”,42],[“升”,60],[“貢”,43],[“狂”,45],[“賭”,45],[“盲”,57],[“誰”,43],[“竜”,44],[“威”,43],[“沈”,43],[“摩”,43],[“余”,20],[“娯”,44],[“缶”,44],[“笠”,44],[“寸”,44],[“寮”,46],[“裸”,45],[“鈍”,46],[“臭”,20],[“姫”,44],[“良”,11],[“殉”,60],[“軽”,10],[“多”,5],[“木”,2],[“塾”,45],[“眺”,45],[“呪”,45],[“叫”,44],[“刃”,44],[“翼”,44],[“塔”,44],[“整”,13],[“侍”,44],[“忍”,44],[“容”,19],[“痢”,60],[“棚”,44],[“兵”,17],[“命”,11],[“粒”,44],[“釣”,44],[“曇”,45],[“井”,45],[“舟”,45],[“矛”,45],[“副”,22],[“柔”,43],[“刷”,43],[“趣”,43],[“距”,43],[“旨”,43],[“腕”,24],[“岳”,43],[“撲”,43],[“懲”,43],[“恒”,52],[“堂”,17],[“疲”,45],[“暦”,45],[“也”,45],[“脚”,45],[“炉”,43],[“滅”,43],[“穏”,46],[“魂”,45],[“泰”,43],[“衛”,32],[“採”,32],[“詞”,19],[“袋”,42],[“柄”,42],[“肝”,42],[“尾”,20],[“芝”,42],[“紛”,42],[“軸”,42],[“挑”,42],[“頃”,45],[“琴”,43],[“双”,42],[“沼”,43],[“斉”,43],[“慰”,43],[“筒”,43],[“潮”,43],[“叱”,44],[“砲”,44],[“霊”,45],[“泡”,46],[“碁”,46],[“吾”,46],[“屋”,9],[“陛”,49],[“形”,5],[“悔”,48],[“幽”,46],[“零”,46],[“寧”,46],[“斬”,46],[“控”,39],[“憶”,48],[“猿”,46],[“衝”,40],[“考”,5],[“察”,17],[“溶”,48],[“銘”,50],[“鍵”,46],[“断”,21],[“耐”,48],[“勇”,15],[“瞳”,46],[“依”,36],[“輝”,48],[“俗”,49],[“須”,52],[“癖”,46],[“巾”,47],[“瞬”,46],[“直”,6],[“渡”,25],[“積”,29],[“踊”,48],[“黙”,46],[“鍛”,46],[“換”,36],[“巻”,25],[“庫”,28],[“賢”,48],[“駒”,49],[“綿”,46],[“菊”,46],[“阻”,46],[“爽”,47],[“佐”,47],[“阜”,39],[“俵”,46],[“庄”,46],[“誇”,46],[“継”,36],[“殿”,40],[“瞭”,47],[“哀”,47],[“怒”,27],[“詐”,47],[“尺”,47],[“伊”,47],[“訴”,25],[“霧”,47],[“炊”,47],[“婆”,47],[“如”,47],[“墜”,47],[“謡”,54],[“憎”,47],[“帽”,47],[“感”,13],[“扉”,47],[“扇”,47],[“憩”,47],[“崖”,47],[“恨”,47],[“火”,2],[“搬”,50],[“掌”,47],[“挿”,47],[“戯”,58],[“桑”,49],[“揺”,42],[“咲”,48],[“悟”,49],[“抽”,49],[“窒”,56],[“滴”,47],[“葬”,37],[“拓”,49],[“傷”,32],[“誓”,49],[“紫”,49],[“胴”,47],[“襲”,43],[“剤”,40],[“脇”,48],[“把”,50],[“淀”,50],[“伯”,50],[“架”,46],[“駐”,40],[“衡”,57],[“遂”,48],[“盆”,46],[“虹”,47],[“唇”,47],[“粧”,47],[“殖”,40],[“剛”,49],[“率”,20],[“鶴”,49],[“礎”,49],[“堤”,50],[“訂”,50],[“茂”,40],[“鉛”,26],[“壇”,49],[“斎”,42],[“贅”,23],[“甲”,39],[“歳”,46],[“以”,7],[“諾”,36],[“尊”,33],[“珠”,49],[“概”,49],[“辛”,44],[“儀”,41],[“懇”,43],[“誠”,41],[“訪”,27],[“廷”,50],[“征”,49],[“劣”,49],[“堰”,50],[“彰”,50],[“邪”,50],[“淡”,49],[“畑”,41],[“招”,27],[“煮”,49],[“支”,8],[“為”,35],[“子”,2],[“羽”,5],[“殊”,52],[“標”,13],[“草”,5],[“穂”,46],[“争”,11],[“皆”,13],[“票”,25],[“画”,6],[“勘”,49],[“奨”,49],[“衰”,49],[“鰐”,50],[“域”,22],[“砕”,47],[“潤”,49],[“峰”,50],[“向”,6],[“要”,9],[“涼”,46],[“腹”,27],[“丈”,15],[“改”,19],[“紀”,15],[“留”,16],[“魔”,46],[“昔”,11],[“唐”,50],[“臓”,34],[“亭”,50],[“伝”,11],[“髄”,55],[“先”,4],[“苦”,9],[“究”,8],[“朱”,44],[“祭”,12],[“疫”,50],[“晶”,50],[“幸”,16],[“中”,2],[“洞”,50],[“滋”,43],[“穫”,48],[“病”,10],[“和”,9],[“税”,21],[“浅”,15],[“省”,21],[“寂”,56],[“殴”,48],[“塗”,48],[“班”,48],[“培”,48],[“涯”,50],[“彩”,48],[“后”,50],[“騎”,48],[“敷”,40],[“麻”,48],[“脅”,48],[“尽”,48],[“冬”,3],[“隙”,48],[“牧”,43],[“畜”,48],[“飢”,48],[“霜”,48],[“貼”,48],[“鉢”,48],[“妃”,49],[“言”,5],[“登”,12],[“帳”,48],[“謀”,49],[“浸”,49],[“唯”,49],[“刈”,49],[“翻”,50],[“駄”,50],[“諮”,50],[“擦”,43],[“芸”,14],[“偶”,50],[“軌”,50],[“漫”,50],[“蟹”,50],[“鬱”,50],[“告”,18],[“陶”,49],[“拘”,49],[“斜”,48],[“迅”,48],[“蚊”,48],[“灯”,48],[“群”,39],[“性”,14],[“首”,6],[“工”,1],[“条”,21],[“姿”,22],[“罰”,22],[“禁”,18],[“熟”,33],[“関”,16],[“抱”,37],[“縦”,34],[“腐”,34],[“港”,12],[“源”,34],[“慎”,39],[“願”,13],[“終”,10],[“何”,5],[“室”,6],[“吐”,34],[“勤”,34],[“野”,12],[“香”,37],[“費”,22],[“原”,17],[“遅”,35],[“裏”,33],[“備”,23],[“宿”,13],[“状”,22],[“示”,22],[“否”,33],[“戦”,11],[“徒”,19],[“試”,18],[“森”,8],[“昆”,19],[“派”,21],[“許”,18],[“熊”,35],[“己”,35],[“丁”,2],[“獄”,35],[“本”,2],[“層”,24],[“春”,15],[“放”,11],[“冷”,28],[“厳”,32],[“々”,2],[“響”,25],[“化”,6],[“餓”,48],[“柳”,47],[“隔”,49],[“封”,43],[“覆”,49],[“夫”,15],[“劾”,60],[“執”,37],[“老”,11],[“覇”,52],[“且”,54],[“止”,3],[“漏”,30],[“愚”,54],[“左”,2],[“孝”,40],[“朗”,43],[“赴”,55],[“呂”,52],[“騰”,53],[“叔”,59],[“郎”,27],[“題”,13],[“茨”,52],[“鎌”,54],[“廊”,31],[“教”,7],[“始”,9],[“治”,16],[“桟”,60],[“慢”,52],[“祥”,52],[“助”,8],[“正”,2],[“乃”,52],[“栞”,54],[“夢”,20],[“査”,21],[“説”,17],[“擁”,52],[“婿”,60],[“宜”,38],[“賠”,52],[“慕”,60],[“阿”,54],[“孤”,52],[“拙”,59],[“狙”,37],[“綾”,52],[“緯”,53],[“曙”,53],[“鎖”,52],[“噴”,52],[“艇”,53],[“祖”,32],[“搭”,53],[“偏”,52],[“畳”,47],[“定”,9],[“脱”,22],[“鋭”,40],[“減”,19],[“酸”,32],[“俊”,40],[“罷”,60],[“牲”,52],[“秩”,52],[“譲”,39],[“矯”,60],[“披”,53],[“嬢”,45],[“幣”,47],[“某”,60],[“囚”,60],[“倫”,52],[“錦”,53],[“瑞”,58],[“膨”,52],[“偉”,51],[“召”,51],[“瓜”,53],[“挟”,51],[“耕”,51],[“准”,53],[“泌”,60],[“藍”,60],[“濯”,51],[“那”,55],[“鯨”,54],[“堕”,57],[“吟”,59],[“軟”,51],[“脂”,51],[“肯”,51],[“寛”,53],[“膚”,51],[“郊”,51],[“胞”,53],[“庶”,54],[“甚”,59],[“軒”,51],[“鼓”,57],[“糧”,52],[“遇”,52],[“烏”,57],[“藻”,60],[“妄”,60],[“鎮”,55],[“諭”,53],[“没”,52],[“奉”,55],[“傍”,55],[“蛮”,60],[“凸”,57],[“虐”,53],[“徐”,53],[“諒”,53],[“猟”,52],[“狐”,60],[“据”,53],[“倹”,60],[“啓”,53],[“莉”,53],[“颯”,52],[“勲”,54],[“緋”,53],[“葵”,53],[“蒙”,53],[“佳”,55],[“荘”,54],[“輔”,52],[“酬”,54],[“卸”,54],[“栽”,54],[“悠”,54],[“尚”,54],[“顕”,54],[“呈”,54],[“粛”,54],[“該”,55],[“酷”,54],[“叙”,54],[“痴”,54],[“呆”,54],[“疎”,54],[“郭”,55],[“愉”,55],[“哺”,54],[“虜”,55],[“杏”,54],[“傲”,54],[“旦”,55],[“龍”,55],[“剖”,58],[“酌”,58],[“篤”,59],[“憂”,55],[“凹”,57],[“紡”,59],[“栃”,55],[“惜”,55],[“悼”,55],[“癒”,55],[“尿”,55],[“賓”,55],[“脊”,55],[“循”,55],[“凝”,55],[“弥”,55],[“昌”,55],[“抹”,55],[“弊”,56],[“遼”,55],[“瑛”,55],[“拍”,56],[“窮”,56],[“栓”,55],[“猶”,56],[“宰”,56],[“呉”,56],[“舶”,56],[“庸”,56],[“搾”,56],[“菅”,58],[“楓”,57],[“縫”,56],[“恭”,56],[“凡”,56],[“錯”,56],[“穀”,56],[“陵”,56],[“縛”,56],[“弦”,56],[“遥”,56],[“乙”,57],[“伐”,57],[“胎”,57],[“扶”,58],[“峡”,57],[“憤”,58],[“洪”,56],[“飽”,56],[“摂”,56],[“柴”,56],[“嘉”,56],[“紳”,56],[“碑”,56],[“尉”,56],[“凛”,56],[“匠”,56],[“賊”,57],[“旋”,57],[“智”,56],[“槽”,57],[“漬”,57],[“坪”,57],[“紺”,57],[“俸”,57],[“閲”,57],[“款”,57],[“敢”,57],[“酵”,57],[“哉”,57],[“蒼”,57],[“瑠”,57],[“硫”,58],[“赦”,58],[“窃”,58],[“忌”,58],[“肖”,58],[“奔”,58],[“朽”,58],[“藩”,58],[“椎”,58],[“濁”,58],[“殻”,58],[“享”,58],[“媒”,58],[“鶏”,58],[“嘱”,58],[“迭”,58],[“絹”,58],[“淑”,58],[“帆”,58],[“暁”,58],[“卑”,59],[“傑”,58],[“錠”,58],[“凌”,58],[“璃”,58],[“峠”,59],[“雌”,59],[“堪”,59],[“姻”,59],[“浪”,59],[“遷”,59],[“梓”,59],[“漆”,59],[“岬”,59],[“曹”,59],[“酪”,59],[“沙”,59],[“亜”,59],[“礁”,59],[“屯”,59],[“擬”,59],[“睦”,59],[“閑”,59],[“詠”,59],[“胆”,59],[“憧”,59],[“蔑”,59],[“慶”,59],[“汰”,59],[“逝”,60],[“匿”,60],[“鋳”,59],[“浄”,53],[“邸”,51],[“郡”,51],[“拐”,54],[“隅”,51],[“拷”,60],[“坑”,60],[“鯉”,53],[“随”,53],[“媛”,51],[“駿”,53],[“隣”,40],[“玄”,51],[“戴”,53],[“苗”,51],[“陳”,52],[“慈”,51],[“丹”,53],[“伏”,55],[“襟”,51],[“謹”,60],[“遮”,57],[“蓮”,51]]; var text = (function(a){ var seen = {}; return a.filter(function (item) { return seen.hasOwnProperty(item) ? false : (seen[item] = true); }); }((document.body.textContent || document.body.textContent).split(""))).filter(function (x) { return /^[\u4e00-\u9faf]+$/.test(x) }); alert((new Array(12)).join().split(’,’).map(function(i, index){return ++index}).map(function(x){ mDict = function(l) { var dict = {}; wk.filter(function(x){return x[1] <= l}).forEach(function(x){dict[x[0]] = x[1]}); return dict }(x * 5); return “Level " + x * 5 + “: " + text.filter(function(x){return mDict.hasOwnProperty(x)}).length / text.length * 100}).join(”\n”))

Awesome! Thanks BN!

Just realized I was being very バカ while writing the code. Please see the post again for the update (I also think I broke wanikani forums when editing…)

Functionality didn’t change much, but I should have improved the run-time from O(12(n + time_to_create_level_dictionary)) to just O(12n). Functionality hasn’t changed at all, but should run faster now.

If you want more level steps in the output, simply change these variables:

(new Array(12)).join().split(’,’).map(function(i, index){return ++index * 5}).map(function(x) { return "Level " + x + ": " + function(l) { return text.filter(function(t) { return wanikani[t] <= l })}(x).length / text.length * 100 })

The first number determines the amount of levels returned, the second determines the level gaps.

So for example:
60 levels: use [60, 1] (60 * 1 = 60)
30 levels: use [30, 2] (30 * 2 = 60)
20 levels: use [20, 3] (20 * 3 = 60)

Simple math things.

Just curious–where did the list of Kanji and levels come from? Looking at the Wanikani API, it doesn’t appear possible to pull that sort of information–it’s all user-specific. Did someone go through and manually copy and Kanji and their levels?

I’m wondering because I was considering implementing something similar to this as a web app, but I didn’t just want to copy-and-paste the kanji/level mapping and steal someone’s work (not that I was planning on, like, charging for the web app anyway, but I still wouldn’t want to use something someone else made without permission.)

jaearess said... Just curious--where did the list of Kanji and levels come from? Looking at the Wanikani API, it doesn't appear possible to pull that sort of information--it's all user-specific. Did someone go through and manually copy and Kanji and their levels?

I'm wondering because I was considering implementing something similar to this as a web app, but I didn't just want to copy-and-paste the kanji/level mapping and steal someone's work (not that I was planning on, like, charging for the web app anyway, but I still wouldn't want to use something someone else made without permission.)
 You're not reading the API carefully enough:

Optional Arguments

An optional argument of declaring a single or comma-delimited list of levels is available, as seen in the example as 1. An example of a comma-delimited list oflevels is 1,2,5,9.

The levels can be a minimum of 1 and a maximum of 60 (Maximum is always increasing as we continue to add more content).

If the levels argument is not specified, then all levels up to the user's level will be returned.


So therefore just request the entire thing: api/kanji/1,2,3,4,5,...,59,60

Xyresic said...
jaearess said... Just curious--where did the list of Kanji and levels come from? Looking at the Wanikani API, it doesn't appear possible to pull that sort of information--it's all user-specific. Did someone go through and manually copy and Kanji and their levels?

I'm wondering because I was considering implementing something similar to this as a web app, but I didn't just want to copy-and-paste the kanji/level mapping and steal someone's work (not that I was planning on, like, charging for the web app anyway, but I still wouldn't want to use something someone else made without permission.)
 You're not reading the API carefully enough:

Optional Arguments An optional argument of declaring a single or comma-delimited list of levels is available, as seen in the example as 1. An example of a comma-delimited list oflevels is 1,2,5,9. The levels can be a minimum of 1 and a maximum of 60 (Maximum is always increasing as we continue to add more content). If the levels argument is not specified, then all levels up to the user's level will be returned.
So therefore just request the entire thing: api/kanji/1,2,3,4,5,...,59,60
 Ah, thank you! I was reading it as saying it would only ever return levels up to the user's level, but that's not the case. Perfect!

I went to “NHK News Easy”, which is targeted at children. I ran the Javascript version. Turns out I need to be level 55 to read the first article I opened.

Just one year of intense daily studies left to go until I can read like a child. Yey!



1 Like

To be fair though, out of the 154 kanji, there’s only 10 that’s above level 30:



Wow that Javascript version is cool! Thanks for making it. I’m definitely bookmarking so I can just use the JS console in the future.



And @stillfire, xyresic is right. You can always expect to stumble across an odd kanji here and there, so once you’re in the 80-90% range you’re probably in a good position to start reading the material. Just look up the ones you don’t know as you go.

Edit: Other questions.

jaearess said…
Just curious–where did the list of Kanji and levels
come from? Looking at the Wanikani API, it doesn’t appear possible to
pull that sort of information–it’s all user-specific. Did someone go
through and manually copy and Kanji and their levels?

I’m
wondering because I was considering implementing something similar to
this as a web app, but I didn’t just want to copy-and-paste the
kanji/level mapping and steal someone’s work (not that I was planning
on, like, charging for the web app anyway, but I still wouldn’t want to
use something someone else made without permission.)
 I wrote a few Excel formulas to process the text from WK’s kanji overview pages and convert them into a list of kanji and their levels. So I only had to copy six times for each of the ten-level summaries at the top of the dashboard.

redberryofdoom said…
I gave this a quick go before i left for work and it looks really good!

Bread, since you mention the volume of columns used, is this all done with formulas or have you used some VBA in there?

I
could maybe add in some VBA to make it a bit more flexible but then it
probably wouldn’t work in applications other than excel.

This one is just formulas. VBA is one of the only languages I’m actually any good at, and I could make a more complex version without the 512-character or 42-row limits if I took a little bit of time. But this one works all right for a really Q&D approach. Feel free to modify and improve on it however you’d like! I love to see the cool stuff that this community is able to do.

Very cool!

It’s extremely useful as a compass toward my actual skill level. I’ve often found that the sentences included with our WK lessons and reviews are generally useless to me as I can’t read many or most of the Kanji that Koichi has included in the examples! I end up ignoring most of his examples with the confidence that I’ll be able to read them "later…"

At least with your tool, I’ll be able to tell when I can attempt to read the sentences here (and in other places) without wasting my precious study time!

cruzssskm96 said... Very cool!

It's extremely useful as a compass toward my actual skill level. I've often found that the sentences included with our WK lessons and reviews are generally useless to me as I can't read many or most of the Kanji that Koichi has included in the examples! I end up ignoring most of his examples with the confidence that I'll be able to read them "later..."

At least with your tool, I'll be able to tell when I can attempt to read the sentences here (and in other places) without wasting my precious study time!
 I used a version of this very tool to arrange the Tofugu 500 Sentences by WaniKani level, so you know when you'll know all the kanji in a sentence. That might be more what you're looking for in the near term! You can get that here: https://www.dropbox.com/s/e6h8pyju4htvyfn/500%20Japanese%20Sentences%20by%20WK%20Level.xls?dl=0

Just pointing out that there is a slight difference between the JS checker and the spreadsheet: while the spreadsheet will count each Kanji (and the Katakana long vowel marker ー, that it thinks is a Kanji for some reason) the number of times they appear, the JS checker counts each Kanji only once. So maybe the percentage of Kanji you can read in the overall text is a bit higher than what the JS reports.

Also, about efficiency, there’s no reason to scan the text 12 times: just build an array counting how many Kanji there are for each level, then do your final counting based on that. But 12 is such a small constant that it probably won’t matter.

ffao said...Also, about efficiency, there's no reason to scan the text 12 times: just build an array counting how many Kanji there are for each level, then do your final counting based on that. But 12 is such a small constant that it probably won't matter.
 /facedesk

You're totally right, and this is why I shouldn't be trying to code & do asymptotic analysis at 2am in the morning. I'll fix it later.

OK, Xyresic, I love you ! But I am too lazy to open console everytime I want to check my level…so I made this Google Chrome extension using your script. To use it, go to a page with kanji and click the Japanese language icon in extension bar.

Download here : https://www.dropbox.com/s/p5en168obuvvqlz/WaniKani.crx?dl=0

Note : I am a hardware engineer. I do VHDL, C, C++. I have absolute no idea what I’m doing here, I don’t know javascript and this is my first Chrome extension of all time. Also, there is 01:00 AM in the morning and I did this in ~2 hours just out of curiosity. There is a link to the GitHub repository : https://github.com/pohlondrej/WK-reading-ability-checker . Feel free to contribute.

Bless all your souls.

Ok, I updated the JS again, incorporating ffao’s suggestions. The runtime is down from O(n + 12m) -> O(n + ~m), where n is the webpage text input and m is the size of the wanikani dictionary. So in theory, it should be faster. I think. The script now also puts out a list of wanikani kanji & levels (including unknowns) for a better overview of the text.

Click to go to the updated script (still in the original post)


I’m honored and really, really impressed that you were able to make this. That’s really awesome work! Thanks for sharing it.

BreadstickNinja said... I'm honored and really, really impressed that you were able to make this. That's really awesome work! Thanks for sharing it.
 Thank you for the inspiration. I hope I haven't been stealing your topic / thunder here though.
Xyresic said...
BreadstickNinja said... I'm honored and really, really impressed that you were able to make this. That's really awesome work! Thanks for sharing it.
 Thank you for the inspiration. I hope I haven't been stealing your topic / thunder here though.
Well done on making your script even fancier! Both of you guys are awesome! ^_^

I updated the Chrome extension to reflect the latest changes Xyresic made.

Download : https://www.dropbox.com/s/p5en168obuvvqlz/WaniKani.crx?dl=0