1
0
mirror of https://github.com/fumiama/emozi.git synced 2026-06-05 08:40:34 +08:00
Files
emozi/codegen/radical/main.go
2024-02-22 15:59:48 +09:00

55 lines
1.0 KiB
Go

package main
import (
"html/template"
"os"
"time"
sql "github.com/FloatTech/sqlite"
"github.com/fumiama/emozi"
)
const head = `// Code generated by codegen/radical. 已经经过修改, 不要手动重新运行.
package emozi
// 部首后备 内嵌的部首到颜文字的映射, 是第二优先查询顺位. 第一顺位是数据库的部首表. 第三位是回落到 🈳.
var 部首后备 = map[rune]string{ {{range .}}
'{{.R}}': string(EmptyMark),{{end}}
}
`
func main() {
db := sql.Sqlite{DBPath: emozi.EmoziDatabasePath}
err := db.Open(time.Minute)
if err != nil {
panic(err)
}
defer db.Close()
type r struct {
R rune
}
type sr struct {
R string
}
var s r
var ss = []sr{}
db.QueryFor("SELECT DISTINCT R FROM emozi;", &s, func() error {
ss = append(ss, sr{R: string(s.R)})
return nil
})
t, err := template.New("list").Parse(head)
if err != nil {
panic(err)
}
f, err := os.Create("radical.go")
if err != nil {
panic(err)
}
defer f.Close()
err = t.Execute(f, ss)
if err != nil {
panic(err)
}
}