thread-master/internal/worker/job/crawler_search.go

35 lines
889 B
Go
Raw Permalink Normal View History

2026-06-26 08:37:04 +00:00
package job
import (
"context"
"strings"
"haixun-backend/internal/library/placement"
)
func makeCrawlerSearchFn(deps ScanPlacementDeps, tenantID, ownerUID string) placement.CrawlerSearchFn {
return func(ctx context.Context, member placement.MemberContext, keyword string, limit int) ([]placement.DiscoverPost, error) {
accountID := strings.TrimSpace(member.ActiveAccountID)
if accountID == "" {
return nil, placementErr("請先選定經營帳號並同步 Chrome Session")
}
session, err := deps.ThreadsAccount.GetBrowserSession(ctx, tenantID, ownerUID, accountID)
if err != nil {
return nil, err
}
return placement.RunExecCrawlerSearch(ctx, session.StorageState, keyword, limit)
}
}
func placementErr(msg string) error {
return &placementError{msg: msg}
}
type placementError struct {
msg string
}
func (e *placementError) Error() string {
return e.msg
}