Skip to content

Commit

Permalink
code(pkg/connectors) - add support formatting to proxy object
Browse files Browse the repository at this point in the history
  • Loading branch information
PxyUp committed Jan 28, 2024
1 parent 52f13ff commit 72741fe
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 14 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,9 @@ type ProxyConfig struct {
}
```

- Server - address with schema of proxy server
- Username - username for proxy(can be empty)
- Password - password for proxy(can be empty)
- Server - address with schema of proxy server. Also support [formatting](#placeholder-list)
- Username - username for proxy(can be empty). Also support [formatting](#placeholder-list)
- Password - password for proxy(can be empty). Also support [formatting](#placeholder-list)

```json
{
Expand Down
2 changes: 1 addition & 1 deletion pkg/connectors/browser.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func (c *browserConnector) Get(parsedValue builder.Jsonable, index *uint32) ([]b
}

if c.cfg.Playwright != nil {
return getFromPlaywright(formattedURL, c.cfg.Playwright, utils.Format(c.cfg.Playwright.PreRunScript, parsedValue, index), c.logger.With("emulator", "playwright"))
return getFromPlaywright(formattedURL, c.cfg.Playwright, parsedValue, index, c.logger.With("emulator", "playwright"))
}

return nil, nil
Expand Down
15 changes: 8 additions & 7 deletions pkg/connectors/playwright.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package connectors
import (
"context"
"errors"
"github.com/PxyUp/fitter/pkg/builder"
"github.com/PxyUp/fitter/pkg/config"
"github.com/PxyUp/fitter/pkg/limitter"
"github.com/PxyUp/fitter/pkg/logger"
Expand All @@ -19,7 +20,7 @@ var (
errNoDriver = errors.New("empty playwright driver")
)

func getFromPlaywright(url string, cfg *config.PlaywrightConfig, script string, logger logger.Logger) ([]byte, error) {
func getFromPlaywright(url string, cfg *config.PlaywrightConfig, parsedValue builder.Jsonable, index *uint32, logger logger.Logger) ([]byte, error) {
if instanceLimit := limitter.PlaywrightLimiter(); instanceLimit != nil {
errInstance := instanceLimit.Acquire(ctx, 1)
if errInstance != nil {
Expand Down Expand Up @@ -90,13 +91,13 @@ func getFromPlaywright(url string, cfg *config.PlaywrightConfig, script string,
if cfg.Proxy != nil {
proxy := &playwright.BrowserTypeLaunchOptionsProxy{}
if cfg.Proxy.Server != "" {
proxy.Server = utils.String(cfg.Proxy.Server)
proxy.Server = utils.String(utils.Format(cfg.Proxy.Server, parsedValue, index))
}
if cfg.Proxy.Username != "" {
proxy.Server = utils.String(cfg.Proxy.Username)
proxy.Username = utils.String(utils.Format(cfg.Proxy.Username, parsedValue, index))
}
if cfg.Proxy.Password != "" {
proxy.Server = utils.String(cfg.Proxy.Password)
proxy.Password = utils.String(utils.Format(cfg.Proxy.Password, parsedValue, index))
}
logger.Debugw("set proxy", "server", cfg.Proxy.Server, "username", cfg.Proxy.Username, "password", cfg.Proxy.Password)
opts = append(opts, playwright.BrowserTypeLaunchOptions{
Expand Down Expand Up @@ -168,10 +169,10 @@ func getFromPlaywright(url string, cfg *config.PlaywrightConfig, script string,
return
}

if script != "" {
_, err = page.Evaluate(script)
if cfg.PreRunScript != "" {
_, err = page.Evaluate(utils.Format(cfg.PreRunScript, parsedValue, index))
if err != nil {
logger.Errorw("could execute script on page", "error", err.Error(), "script", script)
logger.Errorw("could execute script on page", "error", err.Error(), "script", cfg.PreRunScript)
return
}
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/connectors/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,17 @@ func (api *apiConnector) get(parsedValue builder.Jsonable, index *uint32) (http.
}

if api.cfg.Proxy != nil {
proxyUrl, errProxy := url.Parse(api.cfg.Proxy.Server)
proxyUrl, errProxy := url.Parse(utils.Format(api.cfg.Proxy.Server, parsedValue, index))
if errProxy != nil {
api.logger.Errorw("unable to create proxy", "error", errProxy.Error())
return nil, nil, err
}

if api.cfg.Proxy.Username != "" {
if api.cfg.Proxy.Password != "" {
proxyUrl.User = url.UserPassword(api.cfg.Proxy.Username, api.cfg.Proxy.Password)
proxyUrl.User = url.UserPassword(utils.Format(api.cfg.Proxy.Username, parsedValue, index), utils.Format(api.cfg.Proxy.Password, parsedValue, index))
} else {
proxyUrl.User = url.User(api.cfg.Proxy.Username)
proxyUrl.User = url.User(utils.Format(api.cfg.Proxy.Username, parsedValue, index))
}
}
api.logger.Debugw("set proxy", "server", api.cfg.Proxy.Server, "username", api.cfg.Proxy.Username, "password", api.cfg.Proxy.Password)
Expand Down

0 comments on commit 72741fe

Please sign in to comment.