Categorygithub.com/YeSZ1520/lagrange-bot
repositorypackage
0.1.0
Repository: https://github.com/yesz1520/lagrange-bot.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# README

lagrange-bot

基于 Lagrange.Core 的 Go 语言实现机器人框架,实现了 Lagrange.Core 的拓展 API ,使用Http Post 通讯

API

使用

  1. 创建 api.Api 并传入 Lagrange.Core 地址
  2. 调用 API
api := apis.Api{Hosts: "http://lagrange-core:8081"}
api.SendPrivateMsg(userID, message, false)

OneBot V11 API

APIMethod
/send_private_msgSendPrivateMsg
/send_group_msgSendGroupMessage
/send_msgSendMsg
/delete_msgDeleteMsg
/get_msgGetMsg
/get_forward_msgGetForwardMsg
/send_likeSendLike
/set_group_kickSetGroupKick
/set_group_banSetGroupBan
/set_group_whole_banSetGroupWholeBan
/set_group_adminSetGroupAdmin
/set_group_cardSetGroupCard
/set_group_nameSetGroupName
/set_group_leaveSetGroupLeave
/set_group_special_titleSetGroupSpecialTitle
/set_friend_add_requestSetFriendAddRequest
/set_group_add_requestSetGroupAddRequest
/get_login_infoGetLoginInfo
/get_stranger_infoGetStrangerInfo
/get_friend_listGetFriendList
/get_group_infoGetGroupInfo
/get_group_listGetGroupList
/get_group_member_infoGetGroupMemberInfo
/get_group_member_listGetGroupMemberList
/get_group_honor_infoGetGroupHonorInfo
/get_cookiesGetCookies
/get_csrf_tokenGetCsrfToken
/get_credentialsGetCredentials
/can_send_imageCanSendImage
/can_send_recordCanSendRecord
/get_statusGetStatus
/get_version_infoGetVersionInfo
/set_restartSetRestart

拓展 API

APIMethod
/fetch_custom_faceFetchCustomFace
/get_friend_msg_historyGetFriendMsgHistory
/get_group_msg_historyGetGroupMsgHistory
/send_forward_msgSendForwardMsg
/send_group_forward_msgSendGroupForwardMsg
/send_private_forward_msgSendPrivateForwardMsg
/upload_group_fileUploadGroupFile
/upload_private_fileUploadPrivateFile
/get_group_root_filesGetGroupRootFiles
/get_group_files_by_folderGetGroupFilesByFolder
/get_group_file_urlGetGroupFilesByFolder
/friend_pokeFriendPoke
/group_pokeGroupPoke

事件

使用

  1. 创建 receivers.Receiver
  2. 注册事件处理函数
  3. 调用 Run 启动服务
r := receivers.Receiver{}
r.RegisterPrivateMessageHandle(func (message model.PrivateMessage, context *receivers.Context) {
    time.Sleep(5 * time.Second)
    if message.Sender.UserID != userID {
        context.Abort()
    }
})

r.RegisterPrivateMessageHandle(func (message model.PrivateMessage, context *receivers.Context) {
    _, err := api.SendPrivateMsg(message.Sender.UserID, model.ToCQCodes(message.Message), false)
    if err != nil {
        slog.Error("Send Private Msg Error" + err.Error())
    }
})
r.Run(":8745")
  • 事件注册会按注册先后顺序执行
  • 若调用 Context.Abort() 则停止执行后续事件处理函数
  • 可通过 Context 在事件处理函数之间传递数据

支持

类型事件事件注册函数
消息私聊消息RegisterPrivateMessageHandle
消息群消息RegisterGroupMessageHandle
通知群文件上传RegisterGroupUploadNoticeHandle
通知群管理员变动RegisterGroupAdminNoticeHandle
通知群成员减少RegisterGroupDecreaseNoticeHandle
通知群成员增加RegisterGroupIncreaseNoticeHandle
通知群禁言RegisterGroupBanNoticeHandle
通知好友添加RegisterFriendAddNoticeHandle
通知群消息撤回RegisterGroupRecallNoticeHandle
通知好友消息撤回RegisterFriendRecallNoticeHandle
请求加好友请求RegisterFriendRequestHandle
请求加群请求/邀请RegisterGroupRequestHandle
生命周期RegisterLifeCycleHandle
心跳事件RegisterHeartBeatHandle

参考

参考 docker-compose.yml

services:
  lagrange-core:
    image: ghcr.io/lagrangedev/lagrange.onebot:edge
    restart: always
    container_name: lagrange-core
    volumes:
      - /opt/lagrange:/app/data
      - /opt/lagrange/upload:/app/upload
    environment:
      - TZ=Asia/Shanghai

  github.com/YeSZ1520/lagrange-bot:
    build:
      context: .
    image: github.com/YeSZ1520/lagrange-bot:1.6
    restart: always
    container_name: github.com/YeSZ1520/lagrange-bot
    volumes:
      - /opt/lagrange/upload:/app/upload

参考 appsettings.json

[
  {
    "Type": "HttpPost",
    "Host": "lagrange-bot",
    "Port": 8745,
    "Suffix": "/",
    "HeartBeatInterval": 20000,
    "HeartBeatEnable": true,
    "AccessToken": ""
  },
  {
    "Type": "Http",
    "Host": "*",
    "Port": 8081,
    "AccessToken": ""
  }
]