package utils

import (
	"errors"
	"github.com/muety/wakapi/config"
	"regexp"
	"time"
)

func ParseDate(date string) (time.Time, error) {
	return time.Parse(config.SimpleDateFormat, date)
}

func ParseDateTime(date string) (time.Time, error) {
	return time.Parse(config.SimpleDateTimeFormat, date)
}

func FormatDate(date time.Time) string {
	return date.Format(config.SimpleDateFormat)
}

func FormatDateTime(date time.Time) string {
	return date.Format(config.SimpleDateTimeFormat)
}

func FormatDateHuman(date time.Time) string {
	return date.Format("Mon, 02 Jan 2006 15:04")
}

func Add(i, j int) int {
	return i + j
}

func ParseUserAgent(ua string) (string, string, error) {
	re := regexp.MustCompile(`(?iU)^wakatime\/[\d+.]+\s\((\w+)-.*\)\s.+\s([^\/\s]+)-wakatime\/.+$`)
	groups := re.FindAllStringSubmatch(ua, -1)
	if len(groups) == 0 || len(groups[0]) != 3 {
		return "", "", errors.New("failed to parse user agent string")
	}
	return groups[0][1], groups[0][2], nil
}