🎉 基础功能跑通
This commit is contained in:
commit
138f15d371
22
.gitea/workflows/build-image.yaml
Normal file
22
.gitea/workflows/build-image.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
name: BuildImage
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: setup go
|
||||
uses: https://github.com/actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.1'
|
||||
|
||||
- name: compile
|
||||
run: |
|
||||
docker build -t ${{ github.repository }}:${{ github.ref }} .
|
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
.idea
|
||||
vendor
|
||||
logs
|
||||
*.exe
|
||||
*.pprof
|
||||
cache
|
||||
log
|
||||
dist
|
16
Dockerfile
Normal file
16
Dockerfile
Normal file
@ -0,0 +1,16 @@
|
||||
FROM golang:alpine as builder
|
||||
|
||||
WORKDIR /builder
|
||||
COPY . .
|
||||
RUN apk add upx
|
||||
RUN go mod download
|
||||
RUN go build -o app
|
||||
RUN upx -9 app
|
||||
RUN ls -lh && chmod +x ./app
|
||||
|
||||
FROM code.hyxc1.com/open/alpine:3.16.0 as runner
|
||||
LABEL org.opencontainers.image.authors="lxh@cxh.cn"
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=builder /builder/app ./app
|
||||
CMD ./app
|
12
go.mod
Normal file
12
go.mod
Normal file
@ -0,0 +1,12 @@
|
||||
module game-db-robot
|
||||
|
||||
go 1.20
|
||||
|
||||
require (
|
||||
github.com/bits-and-blooms/bitset v1.2.2 // indirect
|
||||
github.com/bits-and-blooms/bloom/v3 v3.2.0 // indirect
|
||||
github.com/gorilla/websocket v1.5.0 // indirect
|
||||
github.com/lonelyevil/kook v0.0.33 // indirect
|
||||
github.com/lonelyevil/kook/log_adapter/plog v0.0.31 // indirect
|
||||
github.com/phuslu/log v1.0.80 // indirect
|
||||
)
|
15
go.sum
Normal file
15
go.sum
Normal file
@ -0,0 +1,15 @@
|
||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
|
||||
github.com/bits-and-blooms/bitset v1.2.2 h1:J5gbX05GpMdBjCvQ9MteIg2KKDExr7DrgK+Yc15FvIk=
|
||||
github.com/bits-and-blooms/bitset v1.2.2/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
|
||||
github.com/bits-and-blooms/bloom/v3 v3.2.0 h1:N+g3GTQ0TVbghahYyzwkQbMZR+IwIwFFC8dpIChtN0U=
|
||||
github.com/bits-and-blooms/bloom/v3 v3.2.0/go.mod h1:MC8muvBzzPOFsrcdND/A7kU7kMhkqb9KI70JlZCP+C8=
|
||||
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
||||
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/lonelyevil/kook v0.0.29/go.mod h1:WjHC7AmbmNjInT/U/etBVOmAw7T6EqdCwApceRGs1sk=
|
||||
github.com/lonelyevil/kook v0.0.33 h1:+rXofbtiwJhZmQ9WSuuQT4oNtsumItdy56zNLrB6Z5U=
|
||||
github.com/lonelyevil/kook v0.0.33/go.mod h1:WjHC7AmbmNjInT/U/etBVOmAw7T6EqdCwApceRGs1sk=
|
||||
github.com/lonelyevil/kook/log_adapter/plog v0.0.31 h1:L3lpDpxXcD6nEbT00gj2rMfa2TNScbUbnyAwXSIgmKc=
|
||||
github.com/lonelyevil/kook/log_adapter/plog v0.0.31/go.mod h1:J/ClWHIMo9hALhK88Zd+zZ5jC6nKfBx8XDWicO+QRZc=
|
||||
github.com/phuslu/log v1.0.80 h1:spAqKcba2lTTpxp6uBFLSVZrtirHiD4B8UepJdXR0H4=
|
||||
github.com/phuslu/log v1.0.80/go.mod h1:kzJN3LRifrepxThMjufQwS7S35yFAB+jAV1qgA7eBW4=
|
||||
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
13
handler/guild_member_add.go
Normal file
13
handler/guild_member_add.go
Normal file
@ -0,0 +1,13 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/lonelyevil/kook"
|
||||
)
|
||||
|
||||
// GuildMemberAdd
|
||||
// @description: 用户加入服务器
|
||||
// @param ctx
|
||||
func GuildMemberAdd(ctx *kook.GuildMemberAddContext) {
|
||||
fmt.Printf("有新用户加入服务器: %s\n", ctx.Extra.UserID)
|
||||
}
|
50
handler/kmarkdown.go
Normal file
50
handler/kmarkdown.go
Normal file
@ -0,0 +1,50 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/lonelyevil/kook"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
// KMarkdownHandler
|
||||
// @description:
|
||||
func KMarkdownHandler(ctx *kook.KmarkdownMessageContext) {
|
||||
if ctx.Common.Type != kook.MessageTypeKMarkdown || ctx.Extra.Author.Bot {
|
||||
return
|
||||
}
|
||||
|
||||
pattern := `\(met\)[^()]*\(met\) `
|
||||
re := regexp.MustCompile(pattern)
|
||||
content := re.ReplaceAllString(ctx.Common.Content, "")
|
||||
fmt.Printf("收到新消息: %s(%s) -> %s\n", ctx.Extra.Author.Username, ctx.Extra.Author.Nickname, content)
|
||||
|
||||
// 判断是否为at机器人,不是的话就不处理
|
||||
isAt := false
|
||||
for _, part := range ctx.Extra.Kmarkdown.MentionPart {
|
||||
if part.ID == "2259002513" {
|
||||
isAt = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !isAt {
|
||||
return
|
||||
}
|
||||
|
||||
reply := "机器人功能开发中~"
|
||||
if content == "ping" {
|
||||
reply = "pong"
|
||||
}
|
||||
|
||||
resp, err := ctx.Session.MessageCreate(&kook.MessageCreate{
|
||||
MessageCreateBase: kook.MessageCreateBase{
|
||||
TargetID: ctx.Common.TargetID,
|
||||
Content: reply,
|
||||
Quote: ctx.Common.MsgID,
|
||||
Type: kook.MessageTypeKMarkdown,
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Printf("消息回复失败: %v", err)
|
||||
fmt.Printf("接口返回信息: %+v", resp)
|
||||
}
|
||||
}
|
31
main.go
Normal file
31
main.go
Normal file
@ -0,0 +1,31 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"game-db-robot/handler"
|
||||
"github.com/lonelyevil/kook"
|
||||
"github.com/lonelyevil/kook/log_adapter/plog"
|
||||
"github.com/phuslu/log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// main
|
||||
// @description: 启动入口
|
||||
func main() {
|
||||
l := log.Logger{
|
||||
Level: log.InfoLevel,
|
||||
Writer: &log.ConsoleWriter{},
|
||||
}
|
||||
s := kook.New("1/MTY4MzU=/s8MDdc+Yz9qArpCDFycktA==", plog.NewLogger(&l))
|
||||
s.AddHandler(handler.KMarkdownHandler) // KMarkdown消息处理
|
||||
s.AddHandler(handler.GuildMemberAdd) // 用户加入服务器
|
||||
s.Open()
|
||||
// Wait here until CTRL-C or other term signal is received.
|
||||
fmt.Println("Bot is now running. Press CTRL-C to exit.")
|
||||
sc := make(chan os.Signal, 1)
|
||||
signal.Notify(sc, os.Interrupt, syscall.SIGTERM)
|
||||
<-sc
|
||||
s.Close()
|
||||
}
|
Loading…
Reference in New Issue
Block a user