Fix cmd flags and defer-before-error-check (#8, #19) #36

Merged
Claude merged 1 commits from fix/cmd-flags-and-defer-ordering into main 2026-02-15 16:18:54 +00:00
7 changed files with 7 additions and 13 deletions
Showing only changes of commit e5e0db85e8 - Show all commits

View File

@@ -51,10 +51,10 @@ func (c Config) GetItemFromURL(ctx context.Context, b extractor.Browser, u *url.
res.ID, _ = strconv.Atoi(a[3]) res.ID, _ = strconv.Atoi(a[3])
doc, err := b.Open(ctx, u.String(), extractor.OpenPageOptions{}) doc, err := b.Open(ctx, u.String(), extractor.OpenPageOptions{})
defer extractor.DeferClose(doc)
if err != nil { if err != nil {
return res, fmt.Errorf("failed to open page: %w", err) return res, fmt.Errorf("failed to open page: %w", err)
} }
defer extractor.DeferClose(doc)
names := doc.Select(".h4") names := doc.Select(".h4")

View File

@@ -56,7 +56,7 @@ func main() {
cli := &cli.Command{ cli := &cli.Command{
Name: "archive", Name: "archive",
Usage: "Archive a website", Usage: "Archive a website",
Flags: Flags, Flags: flags,
Action: func(ctx context.Context, cli *cli.Command) error { Action: func(ctx context.Context, cli *cli.Command) error {
target := cli.Args().First() target := cli.Args().First()

View File

@@ -73,11 +73,10 @@ func main() {
} }
b, err := browser.FromCommand(ctx, command) b, err := browser.FromCommand(ctx, command)
defer extractor.DeferClose(b)
if err != nil { if err != nil {
return fmt.Errorf("failed to create browser: %w", err) return fmt.Errorf("failed to create browser: %w", err)
} }
defer extractor.DeferClose(b)
search, err := c.OpenSearch(ctx, b, query) search, err := c.OpenSearch(ctx, b, query)
if err != nil { if err != nil {

View File

@@ -90,11 +90,10 @@ func (c Config) Search(ctx context.Context, b extractor.Browser, query string) (
slog.Info("searching", "url", u, "query", query, "config", c, "browser", b) slog.Info("searching", "url", u, "query", query, "config", c, "browser", b)
doc, err := b.Open(ctx, u.String(), extractor.OpenPageOptions{}) doc, err := b.Open(ctx, u.String(), extractor.OpenPageOptions{})
defer extractor.DeferClose(doc)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to open url: %w", err) return nil, fmt.Errorf("failed to open url: %w", err)
} }
defer extractor.DeferClose(doc)
var res []Result var res []Result

View File

@@ -60,12 +60,10 @@ func main() {
} }
b, err := browser.FromCommand(ctx, cli) b, err := browser.FromCommand(ctx, cli)
defer extractor.DeferClose(b)
if err != nil { if err != nil {
return err return err
} }
defer extractor.DeferClose(b)
cfg := Flags.ToConfig(ctx, cli) cfg := Flags.ToConfig(ctx, cli)

View File

@@ -38,11 +38,10 @@ func main() {
cfg := Flags.ToConfig(cmd) cfg := Flags.ToConfig(cmd)
b, err := browser.FromCommand(ctx, cmd) b, err := browser.FromCommand(ctx, cmd)
defer extractor.DeferClose(b)
if err != nil { if err != nil {
return fmt.Errorf("error creating browser: %w", err) return fmt.Errorf("error creating browser: %w", err)
} }
defer extractor.DeferClose(b)
arg := cmd.Args().First() arg := cmd.Args().First()
if arg == "" { if arg == "" {

View File

@@ -61,11 +61,10 @@ func (c Config) GetItemPrice(ctx context.Context, b extractor.Browser, u *url.UR
} }
doc, err := b.Open(ctx, u.String(), extractor.OpenPageOptions{}) doc, err := b.Open(ctx, u.String(), extractor.OpenPageOptions{})
defer extractor.DeferClose(doc)
if err != nil { if err != nil {
return Item{}, err return Item{}, err
} }
defer extractor.DeferClose(doc)
timeout := 15 * time.Second timeout := 15 * time.Second
_ = doc.WaitForNetworkIdle(&timeout) _ = doc.WaitForNetworkIdle(&timeout)