interview question keeping company name secret to avoid copy and pasting ;-)
Example Use:
go run main.go -in example_input_and_output/urls.txt -out example_input_and_output/results.txt -keyword "sign up"
import "github.com/marcsantiago/search_keyword/search"
Package search searches for a keyword within the html of pages (safe for concurrent use)
var (
// ErrURLEmpty to warn users that they passed an empty string in
ErrURLEmpty = fmt.Errorf("the url string is empty")
// ErrDomainMissing domain was missing from the url
ErrDomainMissing = fmt.Errorf("url domain e.g .com, .net was missing")
)
type Result struct {
// Keyword is the passed keyword. It is an interface because it can be a string or regular expression
Keyword interface{}
// URL is the url passed in
URL string
// Found determines whether or not the keyword was matched on the page
Found bool
}
Result is the basic return type for Search and SearchWithRegex
type Results []Result
Results is the plural of results which implements the Sort interface. Sorting by URL. If the slice needs to be sorted then the user can call sort.Sort
func (slice Results) Len() int
func (slice Results) Less(i, j int) bool
func (slice Results) Swap(i, j int)
type Scanner struct {
// contains filtered or unexported fields
}
Scanner is the basic structure used to interact with the html content of the page
func NewScanner(limit int, enableLogging bool) *Scanner
NewScanner returns a new scanner that takes a limit as a paramter to limit the number of goroutines spinning up
func (*Scanner) ResultsToReader
func (sc *Scanner) ResultsToReader() (io.Reader, error)
ResultsToReader sorts a slice of Result to an io.Reader so that the end user can decide how they want that data csv, text, etc
func (sc *Scanner) Search(URL, keyword string) (err error)
Search looks for the passed keyword in the html respose
Generated by godoc2md