aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.adoc10
-rw-r--r--_www-kbbi/index.html20
-rw-r--r--_www-kbbi/index.js34
-rw-r--r--direct_client.go2
-rw-r--r--kata.go10
5 files changed, 58 insertions, 18 deletions
diff --git a/README.adoc b/README.adoc
index 0dcef73..80b4375 100644
--- a/README.adoc
+++ b/README.adoc
@@ -89,6 +89,7 @@ Format respons dalam JSON,
{
"<string>": {
"dasar": "<string>",
+ "pesan": "<string>",
"definisi": [{
"isi": "<string>",
"kelas": [<string>],
@@ -100,9 +101,12 @@ Format respons dalam JSON,
}
----
-Berikut contoh pemanggilan API untuk mencari definisi dari kata "kamus" dan
-"bahasa",
+Jika kata tidak ditemukan atau bila kata bukan kata baku, bagian "pesan" akan
+berisi keterangan yang menjelaskan galat dari pencarian.
-https://kilabit.info/project/kbbi/api/definisi?kata=kamus,bahasa
+Berikut contoh pemanggilan API untuk mencari definisi dari kata "kamus",
+"bahaza" (kata tidak ditemukan), dan "analisa" (kata tidak baku):
+
+https://kilabit.info/project/kbbi/api/definisi?kata=kamus,bahaza,analisa
Sekian, selamat meretas!
diff --git a/_www-kbbi/index.html b/_www-kbbi/index.html
index b92eece..a9a5110 100644
--- a/_www-kbbi/index.html
+++ b/_www-kbbi/index.html
@@ -255,6 +255,7 @@ GET /definisi?kata=&lt;string&gt;,...
{
"&lt;string&gt;": {
"dasar": "&lt;string&gt;",
+ "pesan": "&lt;string&gt;",
"definisi": [{
"isi": "&lt;string&gt;",
"kelas": [&lt;string&gt;],
@@ -268,13 +269,19 @@ GET /definisi?kata=&lt;string&gt;,...
>
<p>
+ Jika kata tidak ditemukan atau bila kata bukan kata baku, bagian
+ "pesan" akan berisi keterangan yang menjelaskan galat dari
+ pencarian.
+ </p>
+ <p>
Berikut contoh pemanggilan API untuk mencari definisi dari kata
- "kamus" dan "bahasa",
+ "kamus", "bahaza" (kata tidak ditemukan), dan "analisa" (kata
+ tidak baku):
<a
- href="https://kilabit.info/project/kbbi/api/definisi?kata=kamus,bahasa"
+ href="https://kilabit.info/project/kbbi/api/definisi?kata=kamus,bahaza,analisa"
target="_blank"
>
- /definisi?kata=kamus,bahasa
+ /api/definisi?kata=kamus,bahaza,analisa
</a>
</p>
@@ -282,7 +289,12 @@ GET /definisi?kata=&lt;string&gt;,...
<div class="row">
<div class="f-left">
- <input type="text" id="kata" maxlength="64" />
+ <input
+ type="text"
+ id="kata"
+ maxlength="64"
+ value="kamus,bahaza,analisa"
+ />
</div>
<div class="b-right">
<button onclick="cariDefinisi()">Cari definisi</button>
diff --git a/_www-kbbi/index.js b/_www-kbbi/index.js
index 5e0749e..f5f0217 100644
--- a/_www-kbbi/index.js
+++ b/_www-kbbi/index.js
@@ -27,26 +27,46 @@ function printResultKata(out, kata, defKata) {
el.appendChild(document.createTextNode(kata))
out.appendChild(el)
+ if (typeof defKata.pesan !== "undefined" && defKata.pesan !== "") {
+ printPesan(out, defKata.pesan)
+ return
+ }
+
printKataDasar(out, defKata.dasar)
printDefinitions(out, defKata.definisi)
}
+function printPesan(out, pesan) {
+ let root = document.createElement("div")
+ root.appendChild(document.createTextNode(pesan))
+ out.appendChild(root)
+}
+
function printKataDasar(out, kataDasar) {
+ // Seriously, JavaScript?
+ if (
+ typeof kataDasar === "undefined" ||
+ kataDasar === null ||
+ kataDasar === ""
+ ) {
+ return
+ }
+
let root = document.createElement("div")
root.appendChild(document.createTextNode("Kata dasar: "))
- if (kataDasar === "") {
- root.appendChild(document.createTextNode("-"))
- } else {
- let italic = document.createElement("i")
- italic.appendChild(document.createTextNode(kataDasar))
- root.appendChild(italic)
- }
+ let italic = document.createElement("i")
+ italic.appendChild(document.createTextNode(kataDasar))
+ root.appendChild(italic)
out.appendChild(root)
}
function printDefinitions(out, definitions) {
+ if (typeof definitions === "undefined" || definitions === null) {
+ return
+ }
+
for (let x = 0; x < definitions.length; x++) {
let def = definitions[x]
diff --git a/direct_client.go b/direct_client.go
index aa296b5..5817b51 100644
--- a/direct_client.go
+++ b/direct_client.go
@@ -120,7 +120,7 @@ func (cl *directClient) CariDefinisi(ins []string) (
kata.err = err
}
- if len(kata.Definisi) == 0 {
+ if len(kata.Definisi) == 0 && len(kata.Pesan) == 0 {
kata.Pesan = "Entri tidak ditemukan"
}
}
diff --git a/kata.go b/kata.go
index 85ecb82..dc19bcc 100644
--- a/kata.go
+++ b/kata.go
@@ -21,10 +21,14 @@ func (kata *Kata) Err() error {
// Kata store the single root word and its definitions.
//
type Kata struct {
- Dasar string `json:"dasar"`
+ Dasar string `json:"dasar,omitempty"`
Definisi []*DefinisiKata `json:"definisi"`
- Pesan string `json:"pesan"`
- err error
+
+ // Pesan will contains the message when the word is not found or the
+ // word is informal (kata tidak baku).
+ Pesan string `json:"pesan,omitempty"`
+
+ err error
}
//