40 lines
835 B
Go
40 lines
835 B
Go
package scrapper
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
originName = "mandarake"
|
|
zeroPrice int32 = 0
|
|
taxMultiplier float64 = 1.1
|
|
pkgLogHeader = "Scrapper |"
|
|
logWorker = "worker:"
|
|
logTaskWarning = "task warning:"
|
|
logGetPrice = "get price:"
|
|
)
|
|
|
|
type Scrapper struct {
|
|
externalBrowser string
|
|
goroutinesNumber int
|
|
taskTimeout time.Duration
|
|
poolCancel context.CancelFunc
|
|
allocCancel context.CancelFunc
|
|
wg sync.WaitGroup
|
|
}
|
|
|
|
type Deps struct {
|
|
ExternalBrowser string
|
|
GoroutinesNumber int
|
|
TaskTimeout int
|
|
}
|
|
|
|
func New(deps Deps) PriceScrapper {
|
|
return &Scrapper{
|
|
externalBrowser: deps.ExternalBrowser,
|
|
goroutinesNumber: deps.GoroutinesNumber,
|
|
taskTimeout: time.Second * time.Duration(deps.TaskTimeout),
|
|
}
|
|
}
|