- 移除全局浏览器单例,改为按需创建浏览器实例 - 添加 configs/browser.go 用于管理无头模式配置 - 更新 service.go 中所有方法,每次调用时创建新的浏览器实例 - 更新测试文件,使用新的浏览器管理方式 - 确保每个浏览器实例使用后正确关闭,避免资源泄漏 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com>
28 lines
690 B
Go
28 lines
690 B
Go
package browser
|
|
|
|
import (
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/xpzouying/headless_browser"
|
|
"github.com/xpzouying/xiaohongshu-mcp/cookies"
|
|
)
|
|
|
|
func NewBrowser(headless bool) *headless_browser.Browser {
|
|
|
|
opts := []headless_browser.Option{
|
|
headless_browser.WithHeadless(headless),
|
|
}
|
|
|
|
// 加载 cookies
|
|
cookiePath := cookies.GetCookiesFilePath()
|
|
cookieLoader := cookies.NewLoadCookie(cookiePath)
|
|
|
|
if data, err := cookieLoader.LoadCookies(); err == nil {
|
|
opts = append(opts, headless_browser.WithCookies(string(data)))
|
|
logrus.Debugf("loaded cookies from filesuccessfully")
|
|
} else {
|
|
logrus.Warnf("failed to load cookies: %v", err)
|
|
}
|
|
|
|
return headless_browser.New(opts...)
|
|
}
|