From 12b1488da69104ba0012c7eb957b088ebee03c7b Mon Sep 17 00:00:00 2001 From: Prasasto Adi Date: Thu, 31 Oct 2019 23:23:43 +0700 Subject: [PATCH] Tambahkan antarmuka CLI --- README.md | 22 +++++++++++++++++++--- kbbi/kbbi.py | 24 ++++++++++++++++++++++++ setup.py | 1 + 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 712e0d4..8d10172 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,7 @@ pip install kbbi ### Manual -1. Lakukan instalasi untuk paket-paket prasyarat ([`requests`][requests] - dan [`BeautifulSoup4`][beautifulsoup4]). +1. Lakukan instalasi untuk paket-paket prasyarat ([`requests`][requests], [`BeautifulSoup4`][beautifulsoup4], dan [`Abseil`][abseil]). 2. Klonakan repositori ini atau unduh [`kbbi.py`][kbbi-py]. 3. Letakkan `kbbi.py` dalam direktori yang Anda inginkan. @@ -113,6 +112,22 @@ tak.sir [2] } ``` +Penggunaan melalui CLI. +``` +$ python kbbi.py --kata=cinta +``` + +Pencarian frasa yang dipisahkan oleh spasi harus diapit oleh tanda petik. +``` +$ python kbbi.py --kata="tanggung jawab" +``` + +Menambahkan contoh kalimat. +``` +$ python kbbi.py --kata="tanggung jawab" --contoh +``` + + ## Lisensi Proyek ini didistribusikan dengan lisensi [MIT][license]. @@ -131,7 +146,8 @@ penyalahgunaan yang mungkin muncul dari proyek ini. [kbbi]: https://kbbi.kemdikbud.go.id [requests]: https://pypi.org/project/requests [beautifulsoup4]: https://pypi.org/project/requests/beautifulsoup4 -[kbbi-py]: kbbi/kbbi.py +[abseil]: https://github.com/abseil/abseil-py +[kbbi-py]: kbbi/kbbi.py [license]: LICENSE [hukum]: https://kbbi.kemdikbud.go.id/Beranda/Hukum [badan-bahasa]: http://badanbahasa.kemdikbud.go.id diff --git a/kbbi/kbbi.py b/kbbi/kbbi.py index 9b87882..420816b 100644 --- a/kbbi/kbbi.py +++ b/kbbi/kbbi.py @@ -14,6 +14,16 @@ import requests from bs4 import BeautifulSoup +from absl import app +from absl import flags + + +FLAGS = flags.FLAGS + +flags.DEFINE_string("kata", None, "Kata yang dicari.") +flags.DEFINE_boolean("contoh", False, 'Menampilkan contoh kalimat.') + +flags.mark_flag_as_required('kata') class KBBI: """Sebuah laman dalam KBBI daring.""" @@ -330,3 +340,17 @@ def ambil_teks_dalam_label(sup): :rtype: str """ return ''.join(i.strip() for i in sup.find_all(text=True, recursive=False)) + + +def main(argv): + + kata = KBBI(FLAGS.kata) + contoh = False + if FLAGS.contoh: + contoh = True + + print(kata.__str__(contoh=contoh)) + + +if __name__ == '__main__': + app.run(main) diff --git a/setup.py b/setup.py index 95cee95..6456dec 100644 --- a/setup.py +++ b/setup.py @@ -31,5 +31,6 @@ install_requires=[ 'requests', 'beautifulsoup4', + 'absl-py', ], )