mirror of
https://github.com/fumiama/emozi.git
synced 2026-06-05 08:40:34 +08:00
55 lines
1.0 KiB
Go
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)
|
|
}
|
|
}
|