diff --git a/common/parser.go b/common/parser.go
index 67ea8e77..5b132f9e 100644
--- a/common/parser.go
+++ b/common/parser.go
@@ -66,7 +66,8 @@ func init() {
var emojis map[string]string
type emojiHolder struct {
- Emojis []map[string]string `json:"emojis"`
+ NoDefault bool `json:"no_defaults"`
+ Emojis []map[string]string `json:"emojis"`
}
func InitEmoji() error {
@@ -77,9 +78,11 @@ func InitEmoji() error {
}
emojis = make(map[string]string, len(emoji.Emojis))
- for _, item := range emoji.Emojis {
- for ikey, ival := range item {
- emojis[ikey] = ival
+ if !emoji.NoDefault {
+ for _, item := range emoji.Emojis {
+ for ikey, ival := range item {
+ emojis[ikey] = ival
+ }
}
}
@@ -88,6 +91,9 @@ func InitEmoji() error {
if err != nil {
return err
}
+ if emoji.NoDefault {
+ emojis = make(map[string]string)
+ }
for _, item := range emoji.Emojis {
for ikey, ival := range item {
@@ -1098,7 +1104,7 @@ func parseMediaString(data string, settings *ParseSettings) (media MediaEmbed, o
}
ytInvalid2 := func(t string) bool {
for _, ch := range t {
- if !((ch > 47 && ch < 58) || ch == 'h' || ch =='m' || ch =='s') {
+ if !((ch > 47 && ch < 58) || ch == 'h' || ch == 'm' || ch == 's') {
//fmt.Printf("ytInvalid2 true: %+v\n",t)
return true
}
@@ -1112,34 +1118,34 @@ func parseMediaString(data string, settings *ParseSettings) (media MediaEmbed, o
if ytInvalid(v) {
return media, true
}
- var t,t2 string
+ var t, t2 string
tt, ok := query["t"]
if ok && len(tt) >= 1 {
t, t2 = tt[0], tt[0]
}
media.Type = ERawExternal
if t != "" && !ytInvalid2(t) {
- s,m,h := parseDuration(t2)
+ s, m, h := parseDuration(t2)
calc := s + (m * 60) + (h * 60 * 60)
if calc > 0 {
- t = "&t="+t
- t2 = "?start="+strconv.Itoa(calc)
+ t = "&t=" + t
+ t2 = "?start=" + strconv.Itoa(calc)
} else {
- t, t2 = "",""
+ t, t2 = "", ""
}
}
- l := "https://"+ host + path+"?v="+v+t
- media.Body = ""
+ l := "https://" + host + path + "?v=" + v + t
+ media.Body = ""
return media, true
}
} else if host == "youtu.be" {
- v := strings.TrimPrefix(path,"/")
+ v := strings.TrimPrefix(path, "/")
if ytInvalid(v) {
return media, true
}
- l := "https://youtu.be/"+v
+ l := "https://youtu.be/" + v
media.Type = ERawExternal
- media.Body = ""
+ media.Body = ""
return media, true
} else if strings.HasPrefix(host, "www.nicovideo.jp") && strings.HasPrefix(path, "/watch/sm") {
vid, err := strconv.ParseInt(strings.TrimPrefix(path, "/watch/sm"), 10, 64)
@@ -1150,8 +1156,8 @@ func parseMediaString(data string, settings *ParseSettings) (media MediaEmbed, o
}
media.Type = ERawExternal
sm := strconv.FormatInt(vid, 10)
- l := "https://"+ host + sport + path
- media.Body = ""
+ l := "https://" + host + sport + path
+ media.Body = ""
return media, true
}
}
@@ -1192,12 +1198,12 @@ func parseMediaString(data string, settings *ParseSettings) (media MediaEmbed, o
return media, true
}
-func parseDuration(dur string) (s,m,h int) {
+func parseDuration(dur string) (s, m, h int) {
var ibuf []byte
for _, ch := range dur {
switch {
case ch > 47 && ch < 58:
- ibuf = append(ibuf,byte(ch))
+ ibuf = append(ibuf, byte(ch))
case ch == 'h':
h, _ = strconv.Atoi(string(ibuf))
ibuf = ibuf[:0]
@@ -1213,7 +1219,7 @@ func parseDuration(dur string) (s,m,h int) {
if h == 0 && m == 0 && s < 2 {
s = 0
}
- return s,m,h
+ return s, m, h
}
// TODO: Write a test for this