BiliEcho 是一个基于 Go 的项目,用于与 Bilibili 的消息 API 交互,轻松获取和管理私信会话、发送消息,并实时更新新会话。超级轻量!💻✨
- 📬 获取新会话:通过 Bilibili API 高效获取和管理会话列表。
- 📩 发送私信:向其他用户发送带有自定义内容的私信。
- 🔄 会话轮询:定期自动检查新会话。
- 🎛 会话过滤:根据自定义条件轻松过滤会话。
- 🔧 自定义回调:实时处理会话并执行用户定义的逻辑。
- 安装 Go(推荐使用 1.19 或更高版本)。
- 获取你的 Bilibili Cookie(用于认证)。
-
克隆此仓库:
git clone https://github.com/yourusername/BiliEcho.git cd BiliEcho
-
安装依赖:
go mod tidy
-
设置你的 Bilibili Cookie:
在main
函数中更新cookie
变量:cookie := "<your-bilibili-cookie>"
-
编译并运行项目:
go run main.go
-
在
OnSessions
回调中定义你的自定义会话处理逻辑:OnSessions(func(s Session) { fmt.Println("Processing session:", s) // 在这里添加逻辑,例如发送消息 // SendMessage(s.TalkerID, 1, "Hello!") })
main.go
:程序的入口,包含主要逻辑,如获取会话和发送消息。bilibili/v2
:用于与 Bilibili API 交互的自定义库。- 工具函数:
GetNewSessions
:从 Bilibili 获取新会话。SendMessage
:发送私信。Filter
:根据用户定义的条件过滤会话。OnSessions
:通过回调轮询并处理会话。
通过调整代码中的以下常量以满足你的需求:
- 轮询间隔:调整程序轮询新会话的频率(
pollInterval
)。 - 请求超时:设置 API 请求的超时时间(
requestTimeout
)。 - 默认分页大小:控制每次请求获取的会话数量(
defaultSize
)。
OnSessions(func (s Session) {
if s.UnreadCount > 0 {
_, err := SendMessage(s.TalkerID, 1, "Hello! 👋")
if err != nil {
fmt.Printf("Failed to send message: %v\n", err)
} else {
fmt.Printf("Greeting sent to: %s\n", s.AccountInfo.Name)
}
}
})
sessions := Filter(response.Data.SessionList, func(s Session) bool {
return s.LastMsg.SenderUID != 123456789 // 替换为你不想处理的 UID
})
- goccy/go-json - 高性能 JSON 库。
- CuteReimu/bilibili - Bilibili API 客户端库。
- Cookie 应妥善保管,请勿公开分享。
- 确保你的应用程序安全存储敏感信息。
- 🌈 支持更多 Bilibili 功能(例如,发送图片与视频链接)。
- 🌟 提供 Web 界面以便更轻松地交互。
- ⚡ 增强会话过滤功能。
欢迎贡献!你可以提交问题或 PR 来帮助改进此项目。
此项目采用 MIT 许可证授权。
特别感谢社区提供的 API 文档和支持!🎉
❤️ Made with Love by BarryWang.