summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2024-04-17 23:31:39 +0700
committerShulhan <ms@kilabit.info>2024-04-17 23:31:39 +0700
commita6629b6a1f40616dbf3e5f78c76d601f3b89127a (patch)
tree990a1380feb7294627b814e3385d55855ae1a6f1
parentc4cf5cfcaa570069f4f64deff26b390436e2e1c3 (diff)
downloadkbbi-a6629b6a1f40616dbf3e5f78c76d601f3b89127a.tar.xz
all: rename the module and package to "kbbi"
Since this module is connecting to KBBI server directly, the module and package name now reflect that, hence we rename them to kbbi. Another reason is we have an internal module named kamusku, in another repository.
-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{}