1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00

Add support for custom languages.

This commit is contained in:
Ferdinand Mütsch
2019-05-21 17:16:46 +02:00
parent c2b705f172
commit c821e02b82
7 changed files with 56 additions and 24 deletions

View File

@ -1,11 +1,12 @@
package models
type Config struct {
Port int
Addr string
DbHost string
DbUser string
DbPassword string
DbName string
DbDialect string
Port int
Addr string
DbHost string
DbUser string
DbPassword string
DbName string
DbDialect string
CustomLanguages map[string]string
}

View File

@ -4,6 +4,7 @@ import (
"database/sql/driver"
"errors"
"fmt"
"regexp"
"strconv"
"strings"
"time"
@ -25,12 +26,30 @@ type Heartbeat struct {
Editor string `json:"editor"`
OperatingSystem string `json:"operating_system"`
Time *HeartbeatReqTime `json:"time" gorm:"type:timestamp; default:now(); index:idx_time,idx_time_user"`
languageRegex *regexp.Regexp
}
func (h *Heartbeat) Valid() bool {
return h.User != nil && h.UserID != "" && h.Time != nil
}
func (h *Heartbeat) Augment(customLangs map[string]string) {
if h.Language == "" {
if h.languageRegex == nil {
h.languageRegex = regexp.MustCompile(`^.+\.(.+)$`)
}
groups := h.languageRegex.FindAllStringSubmatch(h.Entity, -1)
if len(groups) == 0 || len(groups[0]) != 2 {
return
}
ending := groups[0][1]
if _, ok := customLangs[ending]; !ok {
return
}
h.Language, _ = customLangs[ending]
}
}
func (j *HeartbeatReqTime) UnmarshalJSON(b []byte) error {
s := strings.Split(strings.Trim(string(b), "\""), ".")[0]
i, err := strconv.ParseInt(s, 10, 64)