aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--README.md14
-rw-r--r--client.go (renamed from kbbi_client.go)36
-rw-r--r--client_test.go (renamed from kbbi_client_test.go)4
-rw-r--r--cmd/kbbi/main.go (renamed from cmd/kamusku/main.go)12
-rw-r--r--go.mod2
-rw-r--r--kbbi.go (renamed from kamusku.go)4
-rw-r--r--lookup_response.go2
-rw-r--r--word.go2
-rw-r--r--word_definition.go2
-rw-r--r--word_test.go2
-rw-r--r--words.go2
12 files changed, 42 insertions, 42 deletions
diff --git a/Makefile b/Makefile
index 4090794..c033f6f 100644
--- a/Makefile
+++ b/Makefile
@@ -22,7 +22,7 @@ lint:
.PHONY: install
install:
- go install ./cmd/kamusku
+ go install ./cmd/kbbi
.PHONY: serve-docs
serve-docs:
diff --git a/README.md b/README.md
index d9f8f19..4d7f595 100644
--- a/README.md
+++ b/README.md
@@ -3,22 +3,22 @@ SPDX-FileCopyrightText: 2024 M. Shulhan <ms@kilabit.info>
SPDX-License-Identifier: GPL-3.0-or-later
-->
-# kamusku
+# kbbi
-kamusku adalah Go module yang berisi pustaka dan program untuk mencari
+kbbi adalah Go module yang berisi pustaka dan program untuk mencari
definisi kata Bahasa Indonesia dari situs resmi KBBI.
-## Program kamusku
+## Program kbbi
-Program kamusku yaitu antar-muka untuk mencari definisi dari kata lewat baris
+Program kbbi yaitu antar-muka untuk mencari definisi dari kata lewat baris
perintah.
Program ini sangat sederhana, caranya yaitu dengan memberikan kata yang dicari
setelah nama program, misalnya,
```
-$ kamusku kamus,bahasa
+$ kbbi kamus,bahasa
```
Maka akan mencetak definisi dari kata "kamus" dan "bahasa" ke layar,
@@ -56,7 +56,7 @@ Maka akan mencetak definisi dari kata "kamus" dan "bahasa" ke layar,
Bot untuk aplikasi Telegram: https://t.me/KamuskuBot
Untuk saat ini, KamuskuBot hanya punya satu perintah yaitu "/definisi". Cara
-menggunakan perintah ini hampir sama dengan program kamusku yaitu dengan
+menggunakan perintah ini hampir sama dengan program kbbi yaitu dengan
memberikan kata yang dicari, contohnya,
```
@@ -66,7 +66,7 @@ memberikan kata yang dicari, contohnya,
## LISENSI
```
-kamusku - The Go module library and program as interface to KBBI server.
+kbbi - The Go module library and program as interface to KBBI server.
Copyright (C) 2020-2024 M. Shulhan <ms@kilabit.info>
This program is free software: you can redistribute it and/or modify it
diff --git a/kbbi_client.go b/client.go
index 2ec4eab..39dd031 100644
--- a/kbbi_client.go
+++ b/client.go
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-package kamusku
+package kbbi
import (
"bytes"
@@ -57,22 +57,22 @@ const (
tagNameUnorderedList = "ul"
cookieFile = "cookie"
- configDir = "kamusku"
+ configDir = `kbbi`
defTimeout = 20 * time.Second
maxPageNumber = 501
)
-// KbbiClient client for official KBBI web using HTTP.
-type KbbiClient struct {
+// Client for official KBBI web using HTTP.
+type Client struct {
baseDir string
cookieURL *url.URL
cookies []*http.Cookie
httpc *http.Client
}
-// NewKbbiClient create and initialize new client that connect directly to
+// NewClient create and initialize new client that connect directly to
// KBBI official website.
-func NewKbbiClient() (cl *KbbiClient, err error) {
+func NewClient() (cl *Client, err error) {
cookieURL, err := url.Parse(kbbiUrlBase)
if err != nil {
return nil, fmt.Errorf("New: %w", err)
@@ -87,7 +87,7 @@ func NewKbbiClient() (cl *KbbiClient, err error) {
return nil, fmt.Errorf("New: %w", err)
}
- cl = &KbbiClient{
+ cl = &Client{
cookieURL: cookieURL,
httpc: &http.Client{
Jar: jar,
@@ -108,7 +108,7 @@ func NewKbbiClient() (cl *KbbiClient, err error) {
}
// Lookup lookup definition of one or more words.
-func (cl *KbbiClient) Lookup(ins []string) (res LookupResponse, err error) {
+func (cl *Client) Lookup(ins []string) (res LookupResponse, err error) {
res = make(LookupResponse, len(ins))
for _, in := range ins {
@@ -149,7 +149,7 @@ func (cl *KbbiClient) Lookup(ins []string) (res LookupResponse, err error) {
}
// ListRootWords list all of the root words in dictionary.
-func (cl *KbbiClient) ListRootWords() (rootWords Words, err error) {
+func (cl *Client) ListRootWords() (rootWords Words, err error) {
params := url.Values{
paramNameMasukan: []string{paramValueDasar},
paramNameMasukanLengkap: []string{paramValueDasar},
@@ -201,12 +201,12 @@ func (cl *KbbiClient) ListRootWords() (rootWords Words, err error) {
// IsAuthenticated will return true if the client already login; otherwise it
// will return false.
-func (cl *KbbiClient) IsAuthenticated() bool {
+func (cl *Client) IsAuthenticated() bool {
return len(cl.cookies) > 0
}
// Login authenticate the client using user email and password.
-func (cl *KbbiClient) Login(email, pass string) (err error) {
+func (cl *Client) Login(email, pass string) (err error) {
tokenLogin, err := cl.preLogin()
if err != nil {
return fmt.Errorf("Login: %w", err)
@@ -252,11 +252,11 @@ func (cl *KbbiClient) Login(email, pass string) (err error) {
}
// setCookies for HTTP request that need an authentication.
-func (cl *KbbiClient) setCookies() {
+func (cl *Client) setCookies() {
cl.httpc.Jar.SetCookies(cl.cookieURL, cl.cookies)
}
-func (cl *KbbiClient) parseHTMLRootWords(htmlBody []byte) (
+func (cl *Client) parseHTMLRootWords(htmlBody []byte) (
rootWords Words, err error,
) {
iter, err := html.Parse(bytes.NewReader(htmlBody))
@@ -285,7 +285,7 @@ func (cl *KbbiClient) parseHTMLRootWords(htmlBody []byte) (
}
// parseHTMLLogin get the token at the form login.
-func (cl *KbbiClient) parseHTMLLogin(htmlBody []byte) (
+func (cl *Client) parseHTMLLogin(htmlBody []byte) (
token string, err error,
) {
iter, err := html.Parse(bytes.NewReader(htmlBody))
@@ -311,7 +311,7 @@ func (cl *KbbiClient) parseHTMLLogin(htmlBody []byte) (
}
// preLogin initialize the client to get the first cookie.
-func (cl *KbbiClient) preLogin() (token string, err error) {
+func (cl *Client) preLogin() (token string, err error) {
req, err := http.NewRequest(http.MethodGet, kbbiUrlLogin, nil)
if err != nil {
return "", err
@@ -338,10 +338,10 @@ func (cl *KbbiClient) preLogin() (token string, err error) {
}
// loadCookies load the KBBI cookies from file.
-func (cl *KbbiClient) loadCookies() (err error) {
+func (cl *Client) loadCookies() (err error) {
cl.baseDir, err = os.UserConfigDir()
if err != nil {
- return fmt.Errorf("loadCookies: %w", err)
+ return nil
}
f := filepath.Join(cl.baseDir, configDir, cookieFile)
@@ -367,7 +367,7 @@ func (cl *KbbiClient) loadCookies() (err error) {
}
// saveCookies store the client cookies to the file for future use.
-func (cl *KbbiClient) saveCookies() {
+func (cl *Client) saveCookies() {
err := os.MkdirAll(filepath.Join(cl.baseDir, configDir), 0700)
if err != nil {
log.Println("saveCookies:", err)
diff --git a/kbbi_client_test.go b/client_test.go
index ba46de1..fa9e3c7 100644
--- a/kbbi_client_test.go
+++ b/client_test.go
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-package kamusku
+package kbbi
import (
"os"
@@ -14,7 +14,7 @@ func TestClient_parseHTMLKataDasar(t *testing.T) {
t.Fatal(err)
}
- cl, err := NewKbbiClient()
+ cl, err := NewClient()
if err != nil {
t.Fatal(err)
}
diff --git a/cmd/kamusku/main.go b/cmd/kbbi/main.go
index 796a31e..c605428 100644
--- a/cmd/kamusku/main.go
+++ b/cmd/kbbi/main.go
@@ -1,8 +1,8 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-// Program kamusku is the command-line interface to Kamus Besar Bahasa
-// Indonesia (KBBI).
+// Program kbbi is the command-line interface to Kamus Besar Bahasa
+// Indonesia (KBBI) at https://kbbi.kemdikbud.go.id/.
package main
import (
@@ -11,7 +11,7 @@ import (
"log"
"sort"
- "git.sr.ht/~shulhan/kamusku"
+ kbbi "git.sr.ht/~shulhan/kbbi"
)
const (
@@ -28,7 +28,7 @@ func main() {
)
log.SetFlags(0)
- log.SetPrefix("kamusku: ")
+ log.SetPrefix(`kbbi: `)
flag.StringVar(&email, cmdNameSurel, "", "Nama pengguna")
flag.StringVar(&pass, cmdNameSandi, "", "Sandi pengguna")
@@ -37,7 +37,7 @@ func main() {
flag.Parse()
- cl, err := kamusku.NewKbbiClient()
+ cl, err := kbbi.NewClient()
if err != nil {
log.Fatal(err)
}
@@ -93,7 +93,7 @@ func main() {
}
}
-func listRootWords(cl *kamusku.KbbiClient) {
+func listRootWords(cl *kbbi.Client) {
words, err := cl.ListRootWords()
if err != nil {
log.Println(err)
diff --git a/go.mod b/go.mod
index ea3b4e8..f294c9d 100644
--- a/go.mod
+++ b/go.mod
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: 2024 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-module git.sr.ht/~shulhan/kamusku
+module git.sr.ht/~shulhan/kbbi
go 1.21
diff --git a/kamusku.go b/kbbi.go
index 6cc0d3f..5243238 100644
--- a/kamusku.go
+++ b/kbbi.go
@@ -1,9 +1,9 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-// Package kamusku is the Go library to access the Bahasa Indonesia dictionary
+// Package kbbi is the Go library to access the Bahasa Indonesia dictionary
// from https://kbbi.kemdikbud.go.id.
-package kamusku
+package kbbi
// Version of this module.
var Version = `0.1.0`
diff --git a/lookup_response.go b/lookup_response.go
index 389a8e2..4a6ed07 100644
--- a/lookup_response.go
+++ b/lookup_response.go
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-package kamusku
+package kbbi
// LookupResponse contains mapping of word and its definition.
type LookupResponse map[string]*Word
diff --git a/word.go b/word.go
index f999e5a..bad564e 100644
--- a/word.go
+++ b/word.go
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-package kamusku
+package kbbi
import (
"bytes"
diff --git a/word_definition.go b/word_definition.go
index 0f4820e..385ba9d 100644
--- a/word_definition.go
+++ b/word_definition.go
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-package kamusku
+package kbbi
import (
"fmt"
diff --git a/word_test.go b/word_test.go
index a38550d..7e0a69b 100644
--- a/word_test.go
+++ b/word_test.go
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-package kamusku
+package kbbi
import (
"os"
diff --git a/words.go b/words.go
index 13fa8cc..e5af469 100644
--- a/words.go
+++ b/words.go
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: 2020 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-package kamusku
+package kbbi
// Words contains list of words.
type Words map[string]struct{}