Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct { Username string `json:"username" yaml:"username" validate:"required,min=1,max=30"` Password string `json:"password" yaml:"password" validate:"required,min=1"` }
Account store personnal credentials
type AccountYaml ¶
type AccountYaml struct { Username string `json:"username" yaml:"username" validate:"required,min=1,max=30"` Password string `json:"password" yaml:"password" validate:"required"` }
AccountYaml is the yaml account configuration representation
type AutoDM ¶
type AutoDM struct { // List of all availlables message templates DmTemplates []string `json:"dmTemplates" yaml:"dm_templates" validate:"required"` // Greeting module add a customized DM header with recipient username Greeting GreetingConfig `yaml:"greeting"` Activated bool `json:"dmActivated" yaml:"activated"` }
AutoDM store messaging module configuration
type AutoDmYaml ¶
type AutoDmYaml struct { DmTemplates SplitStringSlice `json:"dmTemplates" yaml:"dm_templates" validate:"required"` Greeting GreetingYaml `json:"greeting" yaml:"greeting"` Activated bool `json:"dmActivation,string" yaml:"activated"` }
AutoDmYaml is the yaml autodm module configuration representation
type BlacklistYaml ¶
type BlacklistYaml struct {
Activated bool `json:"blacklistActivation,string" yaml:"activated"`
}
BlacklistYaml is the yaml blacklist module configuration representation
type BotConfigYaml ¶
type BotConfigYaml struct { Account AccountYaml `json:"account" yaml:"account"` SrcUsers ScrapperYaml `json:"scrapper" yaml:"scrapper"` AutoDm AutoDmYaml `json:"auto_dm" yaml:"auto_dm"` Quotas QuotasYaml `json:"quotas" yaml:"quotas"` Schedule ScheduleYaml `json:"schedule" yaml:"schedule"` Blacklist BlacklistYaml `json:"blacklist" yaml:"blacklist"` Selenium SeleniumYaml `json:"webdriver" yaml:"webdriver"` }
BotConfigYaml is the raw representation of the yaml bot config file
type GreetingConfig ¶
type GreetingConfig struct { // Add a string before the username Template string `json:"greetingTemplate" yaml:"template" validate:"required"` Activated bool `json:"greetingActivated" yaml:"activated"` }
GreetingConfig store greeting configuration for AutoDM module
type GreetingYaml ¶
type GreetingYaml struct { Template string `json:"greetingTemplate" yaml:"template"` Activated bool `json:"greetingActivation,string" yaml:"activated"` }
GreetingYaml is the yaml dm greeting configuration representation
type IGopher ¶
type IGopher struct { // SeleniumStruct contain all selenium stuff and config SeleniumStruct engine.Selenium `yaml:"webdriver"` // User credentials UserAccount Account `yaml:"account"` // Automatic messages sending module DmModule AutoDM `yaml:"auto_dm"` // Quotas Quotas quotas.QuotaManager `yaml:"quotas"` // Scrapper ScrapperManager ScrapperConfig `yaml:"scrapper"` // Scheduler Scheduler scheduler.Manager `yaml:"schedule"` // Interracted users blacklist Blacklist blacklist.Manager `yaml:"blacklist"` // Channels InfoCh chan string `yaml:"-"` ErrCh chan string `yaml:"-"` CrashCh chan error `yaml:"-"` ExitCh chan bool `yaml:"-"` HotReloadCallback chan bool `yaml:"-"` ReloadCallback chan bool `yaml:"-"` // Running state Running bool `yaml:"-"` }
IGopher struct store all bot and ig related configuration and modules instances. Settings are readed from Yaml config files.
func ReadBotConfigYaml ¶
ReadBotConfigYaml read config yml file and initialize it for use with bot
type QuotasYaml ¶
type QuotasYaml struct { DmDay int `json:"dmDay,string" yaml:"dm_per_day" validate:"numeric,min=1"` DmHour int `json:"dmHour,string" yaml:"dm_per_hour" validate:"numeric,min=1"` Activated bool `json:"quotasActivation,string" yaml:"activated"` }
QuotasYaml is the yaml quotas module configuration representation
type ScheduleYaml ¶
type ScheduleYaml struct { BeginAt string `json:"beginAt" yaml:"begin_at" validate:"contains=:"` EndAt string `json:"endAt" yaml:"end_at" validate:"contains=:"` Activated bool `json:"scheduleActivation,string" yaml:"activated"` }
ScheduleYaml is the yaml scheduler module configuration representation
type ScrapperConfig ¶
type ScrapperConfig struct { SrcAccounts []string `yaml:"src_accounts"` FetchedAccounts []string Quantity int `yaml:"fetch_quantity" validate:"numeric"` }
ScrapperConfig store scrapper configuration for user fetching It also store fetched usernames
type ScrapperYaml ¶
type ScrapperYaml struct { Accounts SplitStringSlice `json:"srcUsers" yaml:"src_accounts" validate:"required"` Quantity int `json:"scrappingQuantity,string" yaml:"fetch_quantity" validate:"numeric,min=1"` }
ScrapperYaml is the yaml user scrapping configuration representation
type SeleniumYaml ¶
SeleniumYaml is the yaml selenium configuration representation
type SplitStringSlice ¶
type SplitStringSlice []string
SplitStringSlice is a custom string slice type used to define a custom json unmarshal rule
func (*SplitStringSlice) UnmarshalJSON ¶
func (strSlice *SplitStringSlice) UnmarshalJSON(data []byte) error
UnmarshalJSON custom rule for unmarshal string array from string by splitting it by ';'