From 1bb5416393f3fb0b550d09f5b0fa8bc1da8c54f5 Mon Sep 17 00:00:00 2001 From: Denis Zheleztsov Date: Fri, 9 Apr 2021 22:04:49 +0300 Subject: [PATCH] Ensure newline --- node/api.go | 7 +------ node/elastic.go | 19 ++++++++++--------- node/helpers.go | 10 ++++++++++ 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/node/api.go b/node/api.go index 244e08d..6047a27 100644 --- a/node/api.go +++ b/node/api.go @@ -81,13 +81,8 @@ func (es ESConf) UEHandler(w http.ResponseWriter, r *http.Request) { LogRequest(r) - ch := make(chan []string) // Get echolist - go func() { - ch <- es.GetUEchoMessageHashes(e) - }() - - messages := <-ch + messages := es.GetUEchoMessageHashes(e) w.WriteHeader(200) w.Write([]byte(strings.Join(messages, "\n"))) diff --git a/node/elastic.go b/node/elastic.go index 25f608a..a37fd32 100644 --- a/node/elastic.go +++ b/node/elastic.go @@ -110,17 +110,18 @@ func (es ESConf) GetEchoMessageHashes(echo string) []string { log.Error(err.Error()) return hashes } - defer resp.Body.Close() - content, _ := ioutil.ReadAll(resp.Body) - log.Info(string(content)) + content, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Error(err.Error()) + hashes = append(hashes, "error: Internal error") + return hashes + } var esr ESSearchResp - err = json.NewDecoder(resp.Body).Decode(&esr) + err = json.Unmarshal(content, &esr) if err != nil { - b, _ := ioutil.ReadAll(resp.Body) - log.Error(string(b)) log.Error(err.Error()) hashes = append(hashes, "error: Internal error") return hashes @@ -297,7 +298,7 @@ func (es ESConf) GetUEchoMessageHashes(echoes string) []string { // Some20SimbolsHash333 for k, v := range eh { echohashes = append(echohashes, k) - if k == "" { + if k == "" || k == "\n" { continue } for _, e := range v { @@ -308,7 +309,7 @@ func (es ESConf) GetUEchoMessageHashes(echoes string) []string { } } - return echohashes + return addNewLineToLastWord(echohashes) } // GetXC implements /x/c @@ -383,7 +384,7 @@ func (es ESConf) GetListTXT() []byte { } else { searchURI = strings.Join([]string{es.Host, "search"}, "/") } - searchQ := []byte(`{ + searchQ := []byte(`{ "size": 0, "aggs": { "uniqueEcho": { diff --git a/node/helpers.go b/node/helpers.go index fc5424f..2524402 100644 --- a/node/helpers.go +++ b/node/helpers.go @@ -11,6 +11,16 @@ import ( "golang.org/x/crypto/bcrypt" ) +func addNewLineToLastWord(slice []string) []string { + l := len(slice) - 1 + word := slice[l] + if strings.Contains(word, "\n") { + return slice + } + slice[l] = word + "\n" + return slice +} + func hashAndSalt(authString []byte) string { hash, err := bcrypt.GenerateFromPassword(authString, bcrypt.MinCost) if err != nil {