package main
import (
"net/url"
"regexp"
"strings"
)
// ExtractShopName parses a link to extract the hostname, then remove leading www, to build the Shop name
// "https://www.ldlc.com/informatique/pieces-informatique/[...]" -> "ldlc.com"
func ExtractShopName(link string) (name string, err error) {
u, err := url.Parse(link)
if err != nil {
return "", err
}
re := regexp.MustCompile(`^www\.`)
return strings.ToLower(re.ReplaceAllString(u.Hostname(), "")), nil
// ContainsString returns true when string is found in the array of strings
func ContainsString(arr []string, str string) bool {
for _, elem := range arr {
if elem == str {
return true
return false
// CoalesceInt64 returns the first non zero value from variadic int64 arguments
func CoalesceInt64(values ...int64) int64 {
for _, value := range values {
if value != 0 {
return value
return 0