Skip to content

Commit ad3b26c

Browse files
authored
feat: add plugin status&tarot&dish (#2)
* add dish&status&tarot plugin * update * fix * make lint happpy * fix * update
1 parent 451c8c6 commit ad3b26c

10 files changed

Lines changed: 1070 additions & 29 deletions

File tree

README.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ nanobot [-Tadhst] ID1 ID2 ...
8686

8787
</details>
8888

89+
<details>
90+
<summary>程序员做饭指南</summary>
91+
92+
`import _ "github.com/FloatTech/NanoBot-Plugin/plugin/dish"`
93+
94+
- [x] 怎么做[xxx] | 烹饪[xxx]
95+
96+
- [x] 随机菜谱 | 随便做点菜
97+
98+
</details>
99+
89100
<details>
90101
<summary>合成emoji</summary>
91102

@@ -151,7 +162,7 @@ nanobot [-Tadhst] ID1 ID2 ...
151162
</details>
152163

153164
<details>
154-
<summary>在线代码运行</summary>
165+
<summary>签到</summary>
155166

156167
`import _ "github.com/FloatTech/NanoBot-Plugin/plugin/score"`
157168

@@ -163,6 +174,26 @@ nanobot [-Tadhst] ID1 ID2 ...
163174

164175
</details>
165176

177+
<details>
178+
<summary>自检</summary>
179+
180+
`import _ "github.com/FloatTech/NanoBot-Plugin/plugin/status"`
181+
182+
- [x] [检查身体 | 自检 | 启动自检 | 系统状态]
183+
184+
</details>
185+
186+
<details>
187+
<summary>塔罗牌</summary>
188+
189+
`import _ "github.com/FloatTech/NanoBot-Plugin/plugin/tarot"`
190+
191+
- [x][塔罗牌|大阿卡纳|小阿卡纳]
192+
193+
- [x] 解塔罗牌[牌名]
194+
195+
</details>
196+
166197

167198
## 特别感谢
168199

go.mod

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ require (
88
github.com/FloatTech/gg v1.1.3-0.20230226151425-6ea91286ba08
99
github.com/FloatTech/imgfactory v0.2.2-0.20230413152719-e101cc3606ef
1010
github.com/FloatTech/rendercard v0.0.10-0.20230223064326-45d29fa4ede9
11+
github.com/FloatTech/sqlite v1.6.2
1112
github.com/FloatTech/zbpctrl v1.5.3-0.20230514154630-b74e6fcca380
1213
github.com/FloatTech/zbputils v1.6.2-0.20231004125426-3f1ffcf78f51
1314
github.com/disintegration/imaging v1.6.2
@@ -16,13 +17,14 @@ require (
1617
github.com/fumiama/unibase2n v0.0.0-20221020155353-02876e777430
1718
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
1819
github.com/jinzhu/gorm v1.9.16
20+
github.com/shirou/gopsutil/v3 v3.23.9
1921
github.com/sirupsen/logrus v1.9.3
2022
github.com/wcharczuk/go-chart/v2 v2.1.1
2123
github.com/wdvxdr1123/ZeroBot v1.7.4
24+
golang.org/x/text v0.12.0
2225
)
2326

2427
require (
25-
github.com/FloatTech/sqlite v1.6.2 // indirect
2628
github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b // indirect
2729
github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e // indirect
2830
github.com/RomiChan/websocket v1.4.3-0.20220227141055-9b2c6168c9c5 // indirect
@@ -34,19 +36,25 @@ require (
3436
github.com/fumiama/gofastTEA v0.0.10 // indirect
3537
github.com/fumiama/imgsz v0.0.2 // indirect
3638
github.com/fumiama/jieba v0.0.0-20221203025406-36c17a10b565 // indirect
39+
github.com/go-ole/go-ole v1.2.6 // indirect
3740
github.com/google/uuid v1.3.0 // indirect
3841
github.com/jinzhu/inflection v1.0.0 // indirect
42+
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
3943
github.com/mattn/go-isatty v0.0.16 // indirect
4044
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
4145
github.com/pkg/errors v0.9.1 // indirect
46+
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
4247
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
48+
github.com/shoenig/go-m1cpu v0.1.6 // indirect
4349
github.com/tidwall/gjson v1.14.4 // indirect
4450
github.com/tidwall/match v1.1.1 // indirect
4551
github.com/tidwall/pretty v1.2.0 // indirect
52+
github.com/tklauser/go-sysconf v0.3.12 // indirect
53+
github.com/tklauser/numcpus v0.6.1 // indirect
54+
github.com/yusufpapurcu/wmi v1.2.3 // indirect
4655
golang.org/x/crypto v0.4.0 // indirect
4756
golang.org/x/image v0.11.0 // indirect
48-
golang.org/x/sys v0.8.0 // indirect
49-
golang.org/x/text v0.12.0 // indirect
57+
golang.org/x/sys v0.12.0 // indirect
5058
modernc.org/libc v1.21.5 // indirect
5159
modernc.org/mathutil v1.5.0 // indirect
5260
modernc.org/memory v1.4.0 // indirect

go.sum

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,17 @@ github.com/fumiama/sqlite3 v1.20.0-with-win386 h1:ZR1AXGBEtkfq9GAXehOVcwn+aaCG8i
5757
github.com/fumiama/sqlite3 v1.20.0-with-win386/go.mod h1:Os58MHwYCcYZCy2PGChBrQtBAw5/LS1ZZOkfc+C/I7s=
5858
github.com/fumiama/unibase2n v0.0.0-20221020155353-02876e777430 h1:XL4SnagpaVHYybnnj6whQxmt8Ps9/kaG6sCNn4X1GGA=
5959
github.com/fumiama/unibase2n v0.0.0-20221020155353-02876e777430/go.mod h1:lEaZsT4FRSqcjnQ5q8y+mkenkzR/r1D3BJmfdp0vqDg=
60+
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
61+
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
6062
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
6163
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
6264
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
6365
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
6466
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
6567
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
68+
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
69+
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
70+
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
6671
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
6772
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
6873
github.com/jinzhu/gorm v1.9.16 h1:+IyIjPEABKRpsu/F8OvDPy9fyQlgsg2luMV2ZIH5i5o=
@@ -73,6 +78,8 @@ github.com/jinzhu/now v1.0.1 h1:HjfetcXq097iXP0uoPCdnM4Efp5/9MsM0/M+XOTeR3M=
7378
github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
7479
github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4=
7580
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
81+
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
82+
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
7683
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
7784
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
7885
github.com/mattn/go-sqlite3 v1.14.0 h1:mLyGNKR8+Vv9CAU7PphKa2hkEqxxhn8i32J6FPj1/QA=
@@ -83,23 +90,41 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
8390
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
8491
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
8592
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
93+
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
94+
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
95+
github.com/shirou/gopsutil/v3 v3.23.9 h1:ZI5bWVeu2ep4/DIxB4U9okeYJ7zp/QLTO4auRb/ty/E=
96+
github.com/shirou/gopsutil/v3 v3.23.9/go.mod h1:x/NWSb71eMcjFIO0vhyGW5nZ7oSIgVjrCnADckb85GA=
97+
github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
98+
github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ=
99+
github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU=
100+
github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k=
86101
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
87102
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
88103
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
104+
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
105+
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
89106
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
90107
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
91-
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
108+
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
109+
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
110+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
92111
github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM=
93112
github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
94113
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
95114
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
96115
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
97116
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
117+
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
118+
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
119+
github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
120+
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
98121
github.com/wcharczuk/go-chart/v2 v2.1.1 h1:2u7na789qiD5WzccZsFz4MJWOJP72G+2kUuJoSNqWnE=
99122
github.com/wcharczuk/go-chart/v2 v2.1.1/go.mod h1:CyCAUt2oqvfhCl6Q5ZvAZwItgpQKZOkCJGb+VGv6l14=
100123
github.com/wdvxdr1123/ZeroBot v1.7.4 h1:+148rELpf/FCDW2EuvKqpb9bNKcwKRtoh16s2sIb5SE=
101124
github.com/wdvxdr1123/ZeroBot v1.7.4/go.mod h1:y29UIOy0RD3P+0meDNIWRhcJF3jtWPN9xP9hgt/AJAU=
102125
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
126+
github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw=
127+
github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
103128
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
104129
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
105130
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -124,16 +149,20 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ
124149
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
125150
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
126151
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
152+
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
127153
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
128154
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
155+
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
129156
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
130157
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
131158
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
132159
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
133160
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
134161
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
135-
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
136162
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
163+
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
164+
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
165+
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
137166
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
138167
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
139168
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
@@ -148,9 +177,11 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
148177
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
149178
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
150179
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
180+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
151181
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
152182
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
153183
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
184+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
154185
modernc.org/libc v1.21.5 h1:xBkU9fnHV+hvZuPSRszN0AXDG4M7nwPLwTWwkYcvLCI=
155186
modernc.org/libc v1.21.5/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI=
156187
modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=

main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ import (
1313
_ "github.com/FloatTech/NanoBot-Plugin/plugin/base64gua"
1414
_ "github.com/FloatTech/NanoBot-Plugin/plugin/baseamasiro"
1515
_ "github.com/FloatTech/NanoBot-Plugin/plugin/chrev"
16+
_ "github.com/FloatTech/NanoBot-Plugin/plugin/dish"
1617
_ "github.com/FloatTech/NanoBot-Plugin/plugin/emojimix"
1718
_ "github.com/FloatTech/NanoBot-Plugin/plugin/fortune"
1819
_ "github.com/FloatTech/NanoBot-Plugin/plugin/genshin"
1920
_ "github.com/FloatTech/NanoBot-Plugin/plugin/hyaku"
2021
_ "github.com/FloatTech/NanoBot-Plugin/plugin/manager"
2122
_ "github.com/FloatTech/NanoBot-Plugin/plugin/runcode"
2223
_ "github.com/FloatTech/NanoBot-Plugin/plugin/score"
24+
_ "github.com/FloatTech/NanoBot-Plugin/plugin/status"
25+
_ "github.com/FloatTech/NanoBot-Plugin/plugin/tarot"
2326

2427
// -----------------------以下为内置依赖,勿动------------------------ //
2528
nano "github.com/fumiama/NanoBot"

plugin/dish/main.go

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
// Package dish 程序员做饭指南, 数据来源Anduin2017/HowToCook
2+
package dish
3+
4+
import (
5+
"fmt"
6+
"strings"
7+
"time"
8+
9+
"github.com/sirupsen/logrus"
10+
11+
sql "github.com/FloatTech/sqlite"
12+
ctrl "github.com/FloatTech/zbpctrl"
13+
nano "github.com/fumiama/NanoBot"
14+
15+
"github.com/FloatTech/NanoBot-Plugin/utils/ctxext"
16+
)
17+
18+
type dish struct {
19+
ID uint32 `db:"id"`
20+
Name string `db:"name"`
21+
Materials string `db:"materials"`
22+
Steps string `db:"steps"`
23+
}
24+
25+
var (
26+
db = &sql.Sqlite{}
27+
initialized = false
28+
)
29+
30+
func init() {
31+
en := nano.Register("dish", &ctrl.Options[*nano.Ctx]{
32+
DisableOnDefault: false,
33+
Brief: "程序员做饭指南",
34+
Help: "-怎么做[xxx]|烹饪[xxx]|随机菜谱|随便做点菜",
35+
PublicDataFolder: "Dish",
36+
})
37+
38+
db.DBPath = en.DataFolder() + "dishes.db"
39+
40+
if _, err := en.GetLazyData("dishes.db", true); err != nil {
41+
logrus.Warnln("[dish]获取菜谱数据库文件失败")
42+
} else if err = db.Open(time.Hour); err != nil {
43+
logrus.Warnln("[dish]连接菜谱数据库失败")
44+
} else if err = db.Create("dish", &dish{}); err != nil {
45+
logrus.Warnln("[dish]同步菜谱数据表失败")
46+
} else if count, err := db.Count("dish"); err != nil {
47+
logrus.Warnln("[dish]统计菜谱数据失败")
48+
} else {
49+
logrus.Infoln("[dish]加载", count, "条菜谱")
50+
initialized = true
51+
}
52+
53+
if !initialized {
54+
logrus.Warnln("[dish]插件未能成功初始化")
55+
}
56+
57+
en.OnMessagePrefixGroup([]string{"怎么做", "烹饪"}).SetBlock(true).Limit(ctxext.LimitByUser).Handle(func(ctx *nano.Ctx) {
58+
if !initialized {
59+
_, err := ctx.SendPlainMessage(false, "客官,本店暂未开业")
60+
if err != nil {
61+
_, _ = ctx.SendPlainMessage(false, "ERROR: ", err)
62+
}
63+
return
64+
}
65+
66+
name := ctx.Message.Author.Username
67+
dishName := ctx.State["args"].(string)
68+
69+
if dishName == "" {
70+
return
71+
}
72+
73+
if strings.Contains(dishName, "'") ||
74+
strings.Contains(dishName, "\"") ||
75+
strings.Contains(dishName, "\\") ||
76+
strings.Contains(dishName, ";") {
77+
return
78+
}
79+
80+
var d dish
81+
if err := db.Find("dish", &d, fmt.Sprintf("WHERE name like %%%s%%", dishName)); err != nil {
82+
return
83+
}
84+
85+
_, err := ctx.SendPlainMessage(false, fmt.Sprintf(
86+
"已为客官%s找到%s的做法辣!\n"+
87+
"原材料:%s\n"+
88+
"步骤:\n"+
89+
"%s",
90+
name, dishName, d.Materials, d.Steps),
91+
)
92+
if err != nil {
93+
_, _ = ctx.SendPlainMessage(false, "ERROR: ", err)
94+
}
95+
})
96+
97+
en.OnMessagePrefixGroup([]string{"随机菜谱", "随便做点菜"}).SetBlock(true).Limit(ctxext.LimitByUser).Handle(func(ctx *nano.Ctx) {
98+
if !initialized {
99+
_, err := ctx.SendPlainMessage(false, "客官,本店暂未开业")
100+
if err != nil {
101+
_, _ = ctx.SendPlainMessage(false, "ERROR: ", err)
102+
}
103+
return
104+
}
105+
106+
name := ctx.Message.Author.Username
107+
var d dish
108+
if err := db.Pick("dish", &d); err != nil {
109+
_, _ = ctx.SendPlainMessage(false, "ERROR: ", err)
110+
return
111+
}
112+
113+
_, err := ctx.SendPlainMessage(false, fmt.Sprintf(
114+
"已为客官%s送上%s的做法\n"+
115+
"原材料:%s\n"+
116+
"步骤:\n"+
117+
"%s",
118+
name, d.Name, d.Materials, d.Steps),
119+
)
120+
if err != nil {
121+
_, _ = ctx.SendPlainMessage(false, "ERROR: ", err)
122+
}
123+
})
124+
}

plugin/fortune/fortune.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616
"github.com/FloatTech/gg" // 注册了 jpg png gif
1717
"github.com/FloatTech/zbputils/img/text"
1818
"github.com/sirupsen/logrus"
19-
"github.com/wdvxdr1123/ZeroBot/utils/helper"
2019

2120
fcext "github.com/FloatTech/floatbox/ctxext"
2221
"github.com/FloatTech/floatbox/file"
@@ -143,7 +142,7 @@ func init() {
143142
// 随机获取签文
144143
randtextindex := fcext.RandSenderPerDayN(int64(uid), len(omikujis))
145144
title, text := omikujis[randtextindex]["title"], omikujis[randtextindex]["content"]
146-
digest := md5.Sum(helper.StringToBytes(zipfile + strconv.Itoa(index) + title + text))
145+
digest := md5.Sum(nano.StringToBytes(zipfile + strconv.Itoa(index) + title + text))
147146
cachefile := cache + hex.EncodeToString(digest[:])
148147
if file.IsNotExist(cachefile) {
149148
f, err := os.Create(cachefile)

plugin/score/sign_in.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,19 @@ func init() {
146146
}
147147
// done.
148148
f, err := os.Create(drawedFile)
149-
if err == nil {
150-
_, err = imgfactory.WriteTo(drawimage, f)
149+
if err != nil {
150+
data, err := imgfactory.ToBytes(drawimage)
151+
if err != nil {
152+
_, _ = ctx.SendPlainMessage(false, "ERROR: ", err)
153+
return
154+
}
155+
_, err = ctx.SendImage("base64://"+nano.BytesToString(data), false)
156+
if err != nil {
157+
_, _ = ctx.SendPlainMessage(false, "ERROR: ", err)
158+
}
159+
return
151160
}
161+
_, err = imgfactory.WriteTo(drawimage, f)
152162
defer f.Close()
153163
if err != nil {
154164
_, _ = ctx.SendPlainMessage(false, "ERROR: ", err)

0 commit comments

Comments
 (0)