Skip to content

Commit 39af90e

Browse files
authored
add WarframeAPI (#541)
1 parent 36b09b8 commit 39af90e

File tree

7 files changed

+1239
-1
lines changed

7 files changed

+1239
-1
lines changed

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1289,6 +1289,23 @@ print("run[CQ:image,file="+j["img"]+"]")
12891289

12901290
- [x] 来份网易云热评
12911291

1292+
</details>
1293+
<details>
1294+
<summary>WarframeAPI</summary>
1295+
1296+
`import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/warframeapi"`
1297+
1298+
- [x] wf时间同步
1299+
1300+
- [x] [金星|地球|火卫二]平原状态
1301+
1302+
- [x] .wm [物品名称]
1303+
1304+
- [x] 仲裁
1305+
1306+
- [x] 警报
1307+
1308+
- [x] 每日特惠
12921309
</details>
12931310
<details>
12941311
<summary>天气/拼音查询-名言</summary>

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ require (
1515
github.com/RomiChan/websocket v1.4.3-0.20220227141055-9b2c6168c9c5
1616
github.com/antchfx/htmlquery v1.2.5
1717
github.com/corona10/goimagehash v1.1.0
18+
github.com/davidscholberg/go-durationfmt v0.0.0-20170122144659-64843a2083d3
1819
github.com/fumiama/ahsai v0.1.0
1920
github.com/fumiama/cron v1.3.0
2021
github.com/fumiama/go-base16384 v1.6.4
@@ -25,6 +26,7 @@ require (
2526
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
2627
github.com/jinzhu/gorm v1.9.16
2728
github.com/jozsefsallai/gophersauce v1.0.1
29+
github.com/lithammer/fuzzysearch v1.1.5
2830
github.com/lucas-clemente/quic-go v0.31.1
2931
github.com/mroth/weightedrand v1.0.0
3032
github.com/pkg/errors v0.9.1

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ github.com/d4l3k/messagediff v1.2.2-0.20190829033028-7e0a312ae40b/go.mod h1:Oozb
3838
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3939
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
4040
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
41+
github.com/davidscholberg/go-durationfmt v0.0.0-20170122144659-64843a2083d3 h1:qshMBFxVjYjzI+kwvWvgoByF3uMCvnJiaK8KslWAbr8=
42+
github.com/davidscholberg/go-durationfmt v0.0.0-20170122144659-64843a2083d3/go.mod h1:M9fx6rAdHSYLKxXPgUXGgblb586CA7ceNrpu4DEc2No=
4143
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd h1:83Wprp6ROGeiHFAP8WJdI2RoxALQYgdllERc3N5N2DM=
4244
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
4345
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
@@ -126,6 +128,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
126128
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
127129
github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4=
128130
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
131+
github.com/lithammer/fuzzysearch v1.1.5 h1:Ag7aKU08wp0R9QCfF4GoGST9HbmAIeLP7xwMrOBEp1c=
132+
github.com/lithammer/fuzzysearch v1.1.5/go.mod h1:1R1LRNk7yKid1BaQkmuLQaHruxcC4HmAH30Dh61Ih1Q=
129133
github.com/lucas-clemente/quic-go v0.31.1 h1:O8Od7hfioqq0PMYHDyBkxU2aA7iZ2W9pjbrWuja2YR4=
130134
github.com/lucas-clemente/quic-go v0.31.1/go.mod h1:0wFbizLgYzqHqtlyxyCaJKlE7bYgE6JQ+54TLd/Dq2g=
131135
github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s=

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ import (
132132
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/vtb_quotation" // vtb语录
133133
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/wallet" // 钱包
134134
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/wangyiyun" // 网易云音乐热评
135+
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/warframeapi" // warframeAPI插件
135136
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/wenben" // 文本指令大全
136137
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/wenxinAI" // 百度文心AI画图
137138
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/word_count" // 聊天热词
@@ -261,7 +262,6 @@ func init() {
261262
logrus.Infoln("[main] 从", *runcfg, "读取配置文件")
262263
return
263264
}
264-
265265
config.W = []*driver.WSClient{driver.NewWebSocketClient(*url, *token)}
266266
config.Z = zero.Config{
267267
NickName: append([]string{*adana}, "ATRI", "atri", "亚托莉", "アトリ"),

plugin/warframeapi/gametime.go

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package warframeapi
2+
3+
import (
4+
"github.com/davidscholberg/go-durationfmt"
5+
"sync"
6+
"time"
7+
)
8+
9+
// 游戏时间模拟
10+
type gameTime struct {
11+
rwm sync.RWMutex
12+
Name string `json:"name"` //时间名称
13+
NextTime time.Time `json:"time"` //下次更新时间
14+
Status bool `json:"status"` //状态
15+
StatusTrueDes string `json:"true_des"` //状态说明
16+
StatusFalseDes string `json:"false_des"` //状态说明
17+
DayTime int `json:"day"` //白天时长
18+
NightTime int `json:"night"` //夜间时长
19+
}
20+
21+
var (
22+
gameTimes [3]*gameTime
23+
)
24+
25+
// TimeString 根据传入的世界编号,获取对应的游戏时间文本
26+
func (t *gameTime) String() string {
27+
return "平原时间:" + t.daynight() + "\n" +
28+
"下次更新:" + t.remaintime()
29+
}
30+
31+
// 获取当前游戏时间状态(白天/夜晚)
32+
func (t *gameTime) daynight() string {
33+
t.rwm.RLock()
34+
defer t.rwm.RUnlock()
35+
if t.Status {
36+
return t.StatusTrueDes
37+
}
38+
return t.StatusFalseDes
39+
}
40+
41+
// 获取下一次时间状态更新的剩余游戏时间(x分x秒)
42+
func (t *gameTime) remaintime() string {
43+
t.rwm.RLock()
44+
d := time.Until(t.NextTime)
45+
t.rwm.RUnlock()
46+
durStr, _ := durationfmt.Format(d, "%m分%s秒后")
47+
return durStr
48+
}
49+
50+
// 根据API返回内容修正游戏时间
51+
func loadTime(api wfAPI) {
52+
gameTimes = [3]*gameTime{
53+
{Name: "地球平原", NextTime: api.CetusCycle.Expiry.Local(), Status: api.CetusCycle.IsDay, StatusTrueDes: "白天", StatusFalseDes: "夜晚", DayTime: 100 * 60, NightTime: 50 * 60},
54+
{Name: "金星平原", NextTime: api.VallisCycle.Expiry.Local(), Status: api.VallisCycle.IsWarm, StatusTrueDes: "温暖", StatusFalseDes: "寒冷", DayTime: 400, NightTime: 20 * 60},
55+
{Name: "火卫二平原", NextTime: api.CambionCycle.Expiry.Local(), Status: api.CambionCycle.Active == "fass", StatusTrueDes: "fass", StatusFalseDes: "vome", DayTime: 100 * 60, NightTime: 50 * 60},
56+
}
57+
}
58+
59+
// timeDet游戏时间更新
60+
func timeDet() {
61+
for _, v := range gameTimes {
62+
//当前时间对比下一次游戏状态更新时间,看看还剩多少秒
63+
nt := time.Until(v.NextTime).Seconds()
64+
//已经过了游戏时间状态更新时间
65+
if nt < 0 {
66+
v.rwm.Lock()
67+
//更新游戏状态,如果是白天就切换到晚上,反之亦然
68+
if v.Status {
69+
//计算下次的晚上更新时间
70+
v.NextTime = v.NextTime.Add(time.Duration(v.NightTime) * time.Second)
71+
} else {
72+
//计算下次的白天更新时间
73+
v.NextTime = v.NextTime.Add(time.Duration(v.DayTime) * time.Second)
74+
}
75+
v.rwm.Unlock()
76+
}
77+
}
78+
}

0 commit comments

Comments
 (0)