refactor: 改进浏览器实例管理,按需创建浏览器实例 (#12)
- 移除全局浏览器单例,改为按需创建浏览器实例 - 添加 configs/browser.go 用于管理无头模式配置 - 更新 service.go 中所有方法,每次调用时创建新的浏览器实例 - 更新测试文件,使用新的浏览器管理方式 - 确保每个浏览器实例使用后正确关闭,避免资源泄漏 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
19
service.go
19
service.go
@@ -47,9 +47,12 @@ type FeedsListResponse struct {
|
||||
|
||||
// CheckLoginStatus 检查登录状态
|
||||
func (s *XiaohongshuService) CheckLoginStatus(ctx context.Context) (*LoginStatusResponse, error) {
|
||||
// 使用全局单例浏览器创建新页面
|
||||
page := browser.NewPage()
|
||||
b := browser.NewBrowser(configs.IsHeadless())
|
||||
defer b.Close()
|
||||
|
||||
page := b.NewPage()
|
||||
defer page.Close()
|
||||
|
||||
loginAction := xiaohongshu.NewLogin(page)
|
||||
|
||||
isLoggedIn, err := loginAction.CheckLoginStatus(ctx)
|
||||
@@ -103,8 +106,10 @@ func (s *XiaohongshuService) processImages(images []string) ([]string, error) {
|
||||
|
||||
// publishContent 执行内容发布
|
||||
func (s *XiaohongshuService) publishContent(ctx context.Context, content xiaohongshu.PublishImageContent) error {
|
||||
// 使用全局单例浏览器创建新页面
|
||||
page := browser.NewPage()
|
||||
b := browser.NewBrowser(configs.IsHeadless())
|
||||
defer b.Close()
|
||||
|
||||
page := b.NewPage()
|
||||
defer page.Close()
|
||||
|
||||
action, err := xiaohongshu.NewPublishImageAction(page)
|
||||
@@ -118,8 +123,10 @@ func (s *XiaohongshuService) publishContent(ctx context.Context, content xiaohon
|
||||
|
||||
// ListFeeds 获取Feeds列表
|
||||
func (s *XiaohongshuService) ListFeeds(ctx context.Context) (*FeedsListResponse, error) {
|
||||
// 使用全局单例浏览器创建新页面
|
||||
page := browser.NewPage()
|
||||
b := browser.NewBrowser(configs.IsHeadless())
|
||||
defer b.Close()
|
||||
|
||||
page := b.NewPage()
|
||||
defer page.Close()
|
||||
|
||||
// 创建 Feeds 列表 action
|
||||
|
||||
Reference in New Issue
Block a user