Documentation
¶
Index ¶
- type ArrayConfig
- type BaseField
- type BrowserConnectorConfig
- type CalculatedConfig
- type ChromiumConfig
- type CliItem
- type Config
- type Connector
- type ConnectorConfig
- type ConsoleConfig
- type DockerConfig
- type Field
- type FieldType
- type FileConnectorConfig
- type FileFieldConfig
- type FileStorageField
- type FormattedFieldConfig
- type GeneratedFieldConfig
- type HTTPTrigger
- type HostRequestLimiter
- type HttpConfig
- type HttpServerCfg
- type IntSequenceConnectorConfig
- type Item
- type Limits
- type Model
- type ModelField
- type ModelType
- type NotifierConfig
- type ObjectConfig
- type ParserType
- type PlaywrightBrowser
- type PlaywrightConfig
- type PluginConnectorConfig
- type PluginFieldConfig
- type ProxyConfig
- type RedisNotifierConfig
- type RefMap
- type Reference
- type ReferenceConnectorConfig
- type SchedulerTrigger
- type ServerConnectorConfig
- type StaticArrayConfig
- type StaticConnectorConfig
- type StaticGeneratedFieldConfig
- type TelegramBotConfig
- type TriggerConfig
- type UUIDGeneratedFieldConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArrayConfig ¶
type ArrayConfig struct {
RootPath string `json:"root_path" yaml:"root_path"`
Reverse bool `yaml:"reverse" json:"reverse"`
ItemConfig *ObjectConfig `json:"item_config" yaml:"item_config"`
LengthLimit uint32 `json:"length_limit" yaml:"length_limit"`
StaticConfig *StaticArrayConfig `json:"static_array" yaml:"static_array"`
}
type BaseField ¶
type BaseField struct {
Type FieldType `yaml:"type" json:"type"`
Path string `yaml:"path" json:"path"`
HTMLAttribute string `json:"html_attribute" yaml:"html_attribute"`
Generated *GeneratedFieldConfig `yaml:"generated" json:"generated"`
FirstOf []*BaseField `json:"first_of" yaml:"first_of"`
}
type BrowserConnectorConfig ¶
type BrowserConnectorConfig struct {
Chromium *ChromiumConfig `json:"chromium" yaml:"chromium"`
Docker *DockerConfig `json:"docker" yaml:"docker"`
Playwright *PlaywrightConfig `json:"playwright" yaml:"playwright"`
}
type CalculatedConfig ¶ added in v0.0.19
type ChromiumConfig ¶
type Config ¶
type Config struct {
Items []*Item `yaml:"items" json:"items"`
Limits *Limits `yaml:"limits" json:"limits"`
References RefMap `json:"references" yaml:"references"`
HttpServer *HttpServerCfg `json:"http_server" yaml:"http_server"`
}
type ConnectorConfig ¶
type ConnectorConfig struct {
ResponseType ParserType `json:"response_type" yaml:"response_type"`
Url string `json:"url" yaml:"url"`
Attempts uint32 `json:"attempts" yaml:"attempts"`
NullOnError bool `yaml:"null_on_error" json:"null_on_error"`
StaticConfig *StaticConnectorConfig `json:"static_config" yaml:"static_config"`
IntSequenceConfig *IntSequenceConnectorConfig `json:"int_sequence_config" yaml:"int_sequence_config"`
ServerConfig *ServerConnectorConfig `json:"server_config" yaml:"server_config"`
BrowserConfig *BrowserConnectorConfig `yaml:"browser_config" json:"browser_config"`
PluginConnectorConfig *PluginConnectorConfig `json:"plugin_connector_config" yaml:"plugin_connector_config"`
ReferenceConfig *ReferenceConnectorConfig `yaml:"reference_config" json:"reference_config"`
FileConfig *FileConnectorConfig `json:"file_config" yaml:"file_config"`
}
type ConsoleConfig ¶ added in v0.0.13
type ConsoleConfig struct {
OnlyResult bool `json:"only_result" yaml:"only_result"`
}
type DockerConfig ¶ added in v0.0.2
type DockerConfig struct {
Image string `yaml:"image" json:"image"`
EntryPoint string `json:"entry_point" yaml:"entry_point"`
Timeout uint32 `yaml:"timeout" json:"timeout"`
Wait uint32 `yaml:"wait" json:"wait"`
Flags []string `yaml:"flags" json:"flags"`
Purge bool `json:"purge" yaml:"purge"`
NoPull bool `yaml:"no_pull" json:"no_pull"`
PullTimeout uint32 `yaml:"pull_timeout" json:"pull_timeout"`
}
type Field ¶
type Field struct {
BaseField *BaseField `json:"base_field" yaml:"base_field"`
ObjectConfig *ObjectConfig `json:"object_config" yaml:"object_config"`
ArrayConfig *ArrayConfig `json:"array_config" yaml:"array_config"`
FirstOf []*Field `json:"first_of" yaml:"first_of"`
}
type FieldType ¶
type FieldType string
const ( Null FieldType = "null" Bool FieldType = "boolean" String FieldType = "string" Int FieldType = "int" Int64 FieldType = "int64" Float FieldType = "float" Float64 FieldType = "float64" HtmlString FieldType = "html" RawString FieldType = "raw_string" Array FieldType = "array" Object FieldType = "object" )
type FileConnectorConfig ¶ added in v0.0.39
type FileFieldConfig ¶ added in v0.0.23
type FileFieldConfig struct {
Config *ServerConnectorConfig `yaml:"config" json:"config"`
Url string `yaml:"url" json:"url"`
FileName string `json:"file_name" yaml:"file_name"`
Path string `json:"path" yaml:"path"`
}
type FileStorageField ¶ added in v1.0.1
type FormattedFieldConfig ¶
type FormattedFieldConfig struct {
Template string `yaml:"template" json:"template"`
}
type GeneratedFieldConfig ¶
type GeneratedFieldConfig struct {
UUID *UUIDGeneratedFieldConfig `yaml:"uuid" json:"uuid"`
Static *StaticGeneratedFieldConfig `yaml:"static" json:"static"`
Formatted *FormattedFieldConfig `json:"formatted" yaml:"formatted"`
Plugin *PluginFieldConfig `yaml:"plugin" json:"plugin"`
Calculated *CalculatedConfig `yaml:"calculated" json:"calculated"`
File *FileFieldConfig `yaml:"file" json:"file"`
Model *ModelField `yaml:"model" json:"model"`
FileStorageField *FileStorageField `json:"file_storage" yaml:"file_storage"`
}
type HTTPTrigger ¶
type HTTPTrigger struct {
}
type HostRequestLimiter ¶
type HttpConfig ¶ added in v0.0.39
type HttpServerCfg ¶ added in v0.0.47
type HttpServerCfg struct {
Port int `yaml:"port" json:"port"`
}
type IntSequenceConnectorConfig ¶ added in v0.0.31
type Item ¶
type Item struct {
Name string `yaml:"name" json:"name"`
// Type of parsing
ConnectorConfig *ConnectorConfig `yaml:"connector_config" json:"connector_config"`
// TriggerConfig
TriggerConfig *TriggerConfig `yaml:"trigger_config" json:"trigger_config"`
// Model of the response
Model *Model `yaml:"model" json:"model"`
// Where to report result
NotifierConfig *NotifierConfig `json:"notifier_config" yaml:"notifier_config"`
}
type Limits ¶
type Limits struct {
HostRequestLimiter HostRequestLimiter `yaml:"host_request_limiter" json:"host_request_limiter"`
ChromiumInstance uint32 `yaml:"chromium_instance" json:"chromium_instance"`
DockerContainers uint32 `yaml:"docker_containers" json:"docker_containers"`
PlaywrightInstance uint32 `yaml:"playwright_instance" json:"playwright_instance"`
}
type Model ¶
type Model struct {
ObjectConfig *ObjectConfig `yaml:"object_config" json:"object_config"`
ArrayConfig *ArrayConfig `json:"array_config" yaml:"array_config"`
BaseField *BaseField `json:"base_field" yaml:"base_field"`
IsArray bool `json:"is_array" yaml:"is_array"`
}
type ModelField ¶
type ModelField struct {
// Type of parsing
ConnectorConfig *ConnectorConfig `yaml:"connector_config" json:"connector_config"`
// Model of the response
Model *Model `yaml:"model" json:"model"`
Type FieldType `yaml:"type" json:"type"`
Path string `yaml:"path" json:"path"`
Expression string `yaml:"expression" json:"expression"`
}
type NotifierConfig ¶
type NotifierConfig struct {
Expression string `yaml:"expression" json:"expression"`
Force bool `json:"force" yaml:"force"`
SendArrayByItem bool `yaml:"send_array_by_item" json:"send_array_by_item"`
Template string `yaml:"template" json:"template"`
Console *ConsoleConfig `yaml:"console" json:"console"`
TelegramBot *TelegramBotConfig `yaml:"telegram_bot" json:"telegram_bot"`
Http *HttpConfig `yaml:"http" json:"http"`
Redis *RedisNotifierConfig `json:"redis" yaml:"redis"`
File *FileStorageField `json:"file" yaml:"file"`
}
type ObjectConfig ¶
type ObjectConfig struct {
Field *BaseField `json:"field" yaml:"field"`
Fields map[string]*Field `json:"fields" yaml:"fields"`
ArrayConfig *ArrayConfig `json:"array_config" yaml:"array_config"`
}
type ParserType ¶
type ParserType string
const ( HTML ParserType = "HTML" Json ParserType = "json" XML ParserType = "XML" XPath ParserType = "xpath" )
type PlaywrightBrowser ¶ added in v0.0.3
type PlaywrightBrowser string
const ( Chromium PlaywrightBrowser = "Chromium" FireFox PlaywrightBrowser = "FireFox" WebKit PlaywrightBrowser = "WebKit" )
type PlaywrightConfig ¶ added in v0.0.3
type PlaywrightConfig struct {
Browser PlaywrightBrowser `json:"browser" yaml:"browser"`
Install bool `yaml:"install" json:"install"`
Timeout uint32 `yaml:"timeout" json:"timeout"`
Wait uint32 `yaml:"wait" json:"wait"`
TypeOfWait *playwright.WaitUntilState `json:"type_of_wait" yaml:"type_of_wait"`
PreRunScript string `json:"pre_run_script" yaml:"pre_run_script"`
Stealth bool `json:"stealth" yaml:"stealth"`
Proxy *ProxyConfig `json:"proxy" yaml:"proxy"`
}
type PluginConnectorConfig ¶ added in v0.0.20
type PluginConnectorConfig struct {
Name string `json:"name" yaml:"name"`
Config json.RawMessage `json:"config" yaml:"config"`
}
type PluginFieldConfig ¶ added in v0.0.16
type PluginFieldConfig struct {
Name string `json:"name" yaml:"name"`
Config json.RawMessage `json:"config" yaml:"config"`
}
type ProxyConfig ¶ added in v0.0.26
type ProxyConfig struct {
// Proxy to be used for all requests. HTTP and SOCKS proxies are supported, for example
// `http://myproxy.com:3128` or `socks5://myproxy.com:3128`. Short form `myproxy.com:3128`
// is considered an HTTP proxy.
Server string `json:"server" yaml:"server"`
// Optional username to use if HTTP proxy requires authentication.
Username string `json:"username" yaml:"username"`
// Optional password to use if HTTP proxy requires authentication.
Password string `json:"password" yaml:"password"`
}
type RedisNotifierConfig ¶ added in v0.0.39
type Reference ¶ added in v0.0.37
type Reference struct {
*ModelField
Expire *uint32 `yaml:"expire" json:"expire"`
}
type ReferenceConnectorConfig ¶ added in v0.0.30
type ReferenceConnectorConfig struct {
Name string `yaml:"name" json:"name"`
}
type SchedulerTrigger ¶
type SchedulerTrigger struct {
// Interval for update rerun process in second
Interval int `yaml:"interval" json:"interval"`
}
type ServerConnectorConfig ¶
type StaticArrayConfig ¶ added in v0.0.5
type StaticConnectorConfig ¶ added in v0.0.10
type StaticConnectorConfig struct {
Value string `json:"value" yaml:"value"`
Raw json.RawMessage `json:"raw" yaml:"raw"`
}
type StaticGeneratedFieldConfig ¶
type StaticGeneratedFieldConfig struct {
Type FieldType `yaml:"type" json:"type"`
Value string `json:"value" yaml:"value"`
Raw json.RawMessage `json:"raw" yaml:"raw"`
}
type TelegramBotConfig ¶ added in v0.0.13
type TriggerConfig ¶
type TriggerConfig struct {
SchedulerTrigger *SchedulerTrigger `yaml:"scheduler_trigger" json:"scheduler_trigger"`
HTTPTrigger *HTTPTrigger `json:"http_trigger" yaml:"http_trigger"`
}
type UUIDGeneratedFieldConfig ¶
type UUIDGeneratedFieldConfig struct {
Regexp string `yaml:"regexp" json:"regexp"`
}
Click to show internal directories.
Click to hide internal directories.