rendered paste bodyon *: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
}
}