🎨 优化代码结构

This commit is contained in:
源文雨 2022-03-28 23:01:36 +08:00
parent 14ed8b7af7
commit a9a061a4bb

View File

@ -5,9 +5,11 @@ import (
"fmt"
"math/rand"
"os"
"reflect"
"strconv"
"unsafe"
"github.com/FloatTech/zbputils/binary"
"github.com/FloatTech/zbputils/control"
"github.com/FloatTech/zbputils/control/order"
"github.com/FloatTech/zbputils/ctxext"
@ -18,8 +20,32 @@ import (
const bed = "https://gitcode.net/u011570312/OguraHyakuninIsshu/-/raw/master/"
//nolint: asciicheck
type line struct {
no, 歌人, 上の句, 下の句, 上の句ひらがな, 下の句ひらがな string
番号, 歌人, 上の句, 下の句, 上の句ひらがな, 下の句ひらがな string
}
func (l *line) String() string {
b := binary.NewWriterF(func(w *binary.Writer) {
r := reflect.ValueOf(l).Elem()
for i := 0; i < r.NumField(); i++ {
switch i {
case 0:
w.WriteString("●")
case 1:
w.WriteString("◉")
case 2, 3:
w.WriteString("○")
case 4, 5:
w.WriteString("◎")
}
w.WriteString(r.Type().Field(i).Name)
w.WriteString("")
w.WriteString(r.Field(i).String())
w.WriteString("\n")
}
})
return binary.BytesToString(b)
}
var lines [100]*line
@ -54,6 +80,9 @@ func init() {
panic("invalid csvfile")
}
for j, r := range records {
if len(r) != 6 {
panic("invalid csvfile")
}
i, err := strconv.Atoi(r[0])
if err != nil {
panic(err)
@ -69,14 +98,7 @@ func init() {
i := rand.Intn(100)
ctx.SendChain(
message.Image(fmt.Sprintf(bed+"img/%03d.jpg", i+1)),
message.Text("\n",
"●番 号: ", lines[i].no, "\n",
"●歌 人: ", lines[i].歌人, "\n",
"●上の句: ", lines[i].上の句, "\n",
"●下の句: ", lines[i].下の句, "\n",
"●上の句ひらがな: ", lines[i].上の句ひらがな, "\n",
"●下の句ひらがな: ", lines[i].下の句ひらがな, "\n",
),
message.Text("\n", lines[i]),
message.Image(fmt.Sprintf(bed+"img/%03d.png", i+1)),
)
})
@ -93,14 +115,7 @@ func init() {
i--
ctx.SendChain(
message.Image(fmt.Sprintf(bed+"img/%03d.jpg", i+1)),
message.Text("\n",
"●番 号: ", lines[i].no, "\n",
"●歌 人: ", lines[i].歌人, "\n",
"●上の句: ", lines[i].上の句, "\n",
"●下の句: ", lines[i].下の句, "\n",
"●上の句ひらがな: ", lines[i].上の句ひらがな, "\n",
"●下の句ひらがな: ", lines[i].下の句ひらがな, "\n",
),
message.Text("\n", lines[i]),
message.Image(fmt.Sprintf(bed+"img/%03d.png", i+1)),
)
})