refactor: move browser device options to pkg/uixt/option pkg

This commit is contained in:
lilong.129
2025-03-03 21:40:50 +08:00
parent 69d06a7215
commit b687abb3c8
4 changed files with 30 additions and 20 deletions
+1 -1
View File
@@ -1 +1 @@
v5.0.0+2503032127 v5.0.0+2503032140
+14 -18
View File
@@ -11,38 +11,34 @@ import (
) )
type BrowserDevice struct { type BrowserDevice struct {
BrowserId string `json:"browser_id,omitempty" yaml:"browser_id,omitempty"` Options *option.BrowserDeviceOptions
LogOn bool `json:"log_on,omitempty" yaml:"log_on,omitempty"`
} }
type BrowserDeviceOption func(*BrowserDevice) func NewBrowserDevice(opts ...option.BrowserDeviceOption) (device *BrowserDevice, err error) {
options := &option.BrowserDeviceOptions{}
func WithBrowserId(serial string) BrowserDeviceOption { for _, option := range opts {
return func(device *BrowserDevice) { option(options)
device.BrowserId = serial
}
} }
func NewBrowserDevice(options ...BrowserDeviceOption) (device *BrowserDevice, err error) { if options.BrowserID == "" {
device = &BrowserDevice{}
for _, option := range options {
option(device)
}
if device.BrowserId == "" {
browserInfo, err := CreateBrowser(3600) browserInfo, err := CreateBrowser(3600)
if err != nil { if err != nil {
log.Error().Err(err).Msg("failed to create browser") log.Error().Err(err).Msg("failed to create browser")
return nil, err return nil, err
} }
device.BrowserId = browserInfo.ContextId options.BrowserID = browserInfo.ContextId
} }
device = &BrowserDevice{
Options: options,
}
log.Info().Str("browserID", device.Options.BrowserID).Msg("init browser device")
return device, nil return device, nil
} }
func (dev *BrowserDevice) UUID() string { func (dev *BrowserDevice) UUID() string {
return dev.BrowserId return dev.Options.BrowserID
} }
func (dev *BrowserDevice) Setup() error { func (dev *BrowserDevice) Setup() error {
@@ -50,7 +46,7 @@ func (dev *BrowserDevice) Setup() error {
} }
func (dev *BrowserDevice) LogEnabled() bool { func (dev *BrowserDevice) LogEnabled() bool {
return dev.LogOn return dev.Options.LogOn
} }
func (dev *BrowserDevice) Teardown() error { func (dev *BrowserDevice) Teardown() error {
+14
View File
@@ -0,0 +1,14 @@
package option
type BrowserDeviceOptions struct {
BrowserID string `json:"browser_id,omitempty" yaml:"browser_id,omitempty"`
LogOn bool `json:"log_on,omitempty" yaml:"log_on,omitempty"`
}
type BrowserDeviceOption func(*BrowserDeviceOptions)
func WithBrowserID(serial string) BrowserDeviceOption {
return func(device *BrowserDeviceOptions) {
device.BrowserID = serial
}
}
+1 -1
View File
@@ -66,7 +66,7 @@ func (p RouterBaseMethod) GetDevice(c *gin.Context) (device uixt.IDevice, err er
return return
} }
case "browser": case "browser":
device, err = uixt.NewBrowserDevice(uixt.WithBrowserId(serial)) device, err = uixt.NewBrowserDevice(option.WithBrowserID(serial))
if err != nil { if err != nil {
RenderErrorInitDriver(c, err) RenderErrorInitDriver(c, err)
return return