on *:TEXT:!jp *:#Admin:{ ; Check if the db is open, if not open it! if (!$sqlite_is_valid_conn(%hiragana_db)) { set %hiragana_db $sqlite_open_memory(hiragana.db) } ; Do the magic var %i = 1, %len = $len($2), %jpname while (%i <= %len) { ; Ignore hyphen if ($mid($2,%i,1) == -) continue ; Check for double consonant if ($mid($2,%i,1) == $mid($2,$calc(1+%i),1) && $mid($2,%i,1) !isin aeiouy) { ; Double consonant %jpname = %jpname $+ $+($chr(227),$chr(129),$chr(163)) inc %i } var %sql = SELECT sym, length(seq) AS len FROM hiragana WHERE seq IN ( $sqlite_qt($mid($2,%i,1)) , $sqlite_qt($mid($2,%i,2)) , $sqlite_qt($mid($2,%i,3)) ) ORDER BY len DESC LIMIT 1 var %res = $sqlite_query(%hiragana_db, %sql) if ($sqlite_fetch_row(%res, hiragana)) { %jpname = %jpname $+ $hget(hiragana, sym) inc %i $hget(hiragana, len) ; Check for double vowels while ($mid($2,$calc(-1+%i),1) == $mid($2,%i,1) && $mid($2,%i,1) isin aeiouy) { ; Double vowel %jpname = %jpname $+ $+($chr(227),$chr(131),$chr(188)) inc %i } } else { %jpname = $null } sqlite_free %res if (!%jpname) break } if (%jpname) { msg $chan Success: %jpname } else { msg $chan Failure } }