diff options
| author | Shulhan <ms@kilabit.info> | 2024-04-17 23:31:39 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2024-04-17 23:31:39 +0700 |
| commit | a6629b6a1f40616dbf3e5f78c76d601f3b89127a (patch) | |
| tree | 990a1380feb7294627b814e3385d55855ae1a6f1 | |
| parent | c4cf5cfcaa570069f4f64deff26b390436e2e1c3 (diff) | |
| download | kbbi-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-- | Makefile | 2 | ||||
| -rw-r--r-- | README.md | 14 | ||||
| -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.mod | 2 | ||||
| -rw-r--r-- | kbbi.go (renamed from kamusku.go) | 4 | ||||
| -rw-r--r-- | lookup_response.go | 2 | ||||
| -rw-r--r-- | word.go | 2 | ||||
| -rw-r--r-- | word_definition.go | 2 | ||||
| -rw-r--r-- | word_test.go | 2 | ||||
| -rw-r--r-- | words.go | 2 |
12 files changed, 42 insertions, 42 deletions
@@ -22,7 +22,7 @@ lint: .PHONY: install install: - go install ./cmd/kamusku + go install ./cmd/kbbi .PHONY: serve-docs serve-docs: @@ -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) @@ -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 @@ -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 @@ -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" @@ -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{} |
