mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2026-01-09 23:10:40 +08:00
🎨 优化代码结构
This commit is contained in:
parent
14ed8b7af7
commit
a9a061a4bb
@ -5,9 +5,11 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
|
"reflect"
|
||||||
"strconv"
|
"strconv"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
|
"github.com/FloatTech/zbputils/binary"
|
||||||
"github.com/FloatTech/zbputils/control"
|
"github.com/FloatTech/zbputils/control"
|
||||||
"github.com/FloatTech/zbputils/control/order"
|
"github.com/FloatTech/zbputils/control/order"
|
||||||
"github.com/FloatTech/zbputils/ctxext"
|
"github.com/FloatTech/zbputils/ctxext"
|
||||||
@ -18,8 +20,32 @@ import (
|
|||||||
|
|
||||||
const bed = "https://gitcode.net/u011570312/OguraHyakuninIsshu/-/raw/master/"
|
const bed = "https://gitcode.net/u011570312/OguraHyakuninIsshu/-/raw/master/"
|
||||||
|
|
||||||
|
//nolint: asciicheck
|
||||||
type line struct {
|
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
|
var lines [100]*line
|
||||||
@ -54,6 +80,9 @@ func init() {
|
|||||||
panic("invalid csvfile")
|
panic("invalid csvfile")
|
||||||
}
|
}
|
||||||
for j, r := range records {
|
for j, r := range records {
|
||||||
|
if len(r) != 6 {
|
||||||
|
panic("invalid csvfile")
|
||||||
|
}
|
||||||
i, err := strconv.Atoi(r[0])
|
i, err := strconv.Atoi(r[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -69,14 +98,7 @@ func init() {
|
|||||||
i := rand.Intn(100)
|
i := rand.Intn(100)
|
||||||
ctx.SendChain(
|
ctx.SendChain(
|
||||||
message.Image(fmt.Sprintf(bed+"img/%03d.jpg", i+1)),
|
message.Image(fmt.Sprintf(bed+"img/%03d.jpg", i+1)),
|
||||||
message.Text("\n",
|
message.Text("\n", lines[i]),
|
||||||
"●番 号: ", lines[i].no, "\n",
|
|
||||||
"●歌 人: ", lines[i].歌人, "\n",
|
|
||||||
"●上の句: ", lines[i].上の句, "\n",
|
|
||||||
"●下の句: ", lines[i].下の句, "\n",
|
|
||||||
"●上の句ひらがな: ", lines[i].上の句ひらがな, "\n",
|
|
||||||
"●下の句ひらがな: ", lines[i].下の句ひらがな, "\n",
|
|
||||||
),
|
|
||||||
message.Image(fmt.Sprintf(bed+"img/%03d.png", i+1)),
|
message.Image(fmt.Sprintf(bed+"img/%03d.png", i+1)),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
@ -93,14 +115,7 @@ func init() {
|
|||||||
i--
|
i--
|
||||||
ctx.SendChain(
|
ctx.SendChain(
|
||||||
message.Image(fmt.Sprintf(bed+"img/%03d.jpg", i+1)),
|
message.Image(fmt.Sprintf(bed+"img/%03d.jpg", i+1)),
|
||||||
message.Text("\n",
|
message.Text("\n", lines[i]),
|
||||||
"●番 号: ", lines[i].no, "\n",
|
|
||||||
"●歌 人: ", lines[i].歌人, "\n",
|
|
||||||
"●上の句: ", lines[i].上の句, "\n",
|
|
||||||
"●下の句: ", lines[i].下の句, "\n",
|
|
||||||
"●上の句ひらがな: ", lines[i].上の句ひらがな, "\n",
|
|
||||||
"●下の句ひらがな: ", lines[i].下の句ひらがな, "\n",
|
|
||||||
),
|
|
||||||
message.Image(fmt.Sprintf(bed+"img/%03d.png", i+1)),
|
message.Image(fmt.Sprintf(bed+"img/%03d.png", i+1)),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user