aboutsummaryrefslogtreecommitdiff
path: root/definisi_kata.go
diff options
context:
space:
mode:
authorShulhan <m.shulhan@gmail.com>2020-04-12 00:16:02 +0700
committerShulhan <m.shulhan@gmail.com>2020-04-12 00:16:02 +0700
commit3d9f0baa2c96b101ec8047a5969c7ece14e16991 (patch)
tree131f8f4090b8cad16198b4bd776f0d07a7f716e6 /definisi_kata.go
parent9d9505250d549b7a5cca9c0cd2ebfc8359bfcd45 (diff)
downloadkamusku-3d9f0baa2c96b101ec8047a5969c7ece14e16991.tar.xz
all: tangani kata tidak baku
Sebelumnya bila kata adalah kata tidak baku, definisi kata akan berisi karaketer "→" saja. Perubahan ini memeriksa bila definisi kata adalah "→" maka akan dianggap tidak baku dan kata yang baku berada satu elemen sesudahnya.
Diffstat (limited to 'definisi_kata.go')
-rw-r--r--definisi_kata.go24
1 files changed, 18 insertions, 6 deletions
diff --git a/definisi_kata.go b/definisi_kata.go
index 0060a97..8d812f8 100644
--- a/definisi_kata.go
+++ b/definisi_kata.go
@@ -5,6 +5,7 @@
package kbbi
import (
+ "fmt"
"strings"
"github.com/shuLhan/share/lib/net/html"
@@ -21,14 +22,14 @@ type DefinisiKata struct {
Contoh []string `json:"contoh,omitempty"`
}
-func parseDefinisiKata(li *html.Node) (defKata *DefinisiKata) {
+func parseDefinisiKata(in string, li *html.Node) (defKata *DefinisiKata, err error) {
elFont := li.GetFirstChild()
if elFont == nil || elFont.Data != tagNameFont {
- return nil
+ return nil, nil
}
elItalic := elFont.GetFirstChild()
if elItalic == nil || elItalic.Data != tagNameItalic {
- return nil
+ return nil, nil
}
defKata = &DefinisiKata{}
@@ -44,13 +45,24 @@ func parseDefinisiKata(li *html.Node) (defKata *DefinisiKata) {
el := elFont.GetNextSibling()
if el == nil {
- return defKata
+ return defKata, nil
}
defKata.Isi = strings.TrimSpace(libstrings.SingleSpace(el.Data))
+ if defKata.Isi == "→" {
+ defKata.Isi = ""
+ el = el.GetNextSibling()
+ if el == nil || el.Data != tagNameAnchor {
+ return nil, nil
+ }
+ el = el.GetFirstChild()
+ return nil, fmt.Errorf(`%q adalah bentuk tidak baku dari %q`,
+ in, el.Data)
+ }
+
if defKata.Isi[len(defKata.Isi)-1] != ':' {
- return defKata
+ return defKata, nil
}
defKata.Isi = defKata.Isi[:len(defKata.Isi)-1]
@@ -78,5 +90,5 @@ func parseDefinisiKata(li *html.Node) (defKata *DefinisiKata) {
el = el.GetNextSibling()
}
- return defKata
+ return defKata, nil
}