Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Penambahan fitur bagi pengguna terdaftar #12

Merged
merged 43 commits into from
Mar 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
c859a29
Penambahan fitur bagi pengguna terdaftar
Mar 17, 2020
c71ba36
buat email/password menjadi opsional
Mar 17, 2020
1a780d2
Linting dan hapus UA Chrome
Mar 17, 2020
8ef5192
Buat implementasi "penyimpanan cookie"
Mar 18, 2020
a4b5938
Tambah kata kiasan (https://kbbi.kemdikbud.go.id/entri/makan)
Mar 18, 2020
30ac87a
Buat objek AutentikasiKBBI untuk menggunakan sesi login berkali-kali
Mar 18, 2020
7f7c2c8
Reformat dan Linting
Mar 18, 2020
6e66702
Sesuaikan dengan saran
Mar 18, 2020
e9e49ed
Sederhanakan kode init makna
laymonage Mar 19, 2020
e1c33fb
Sederhanakan kode init etimologi
laymonage Mar 19, 2020
c1b9009
Pecah pemrosesan str untuk entri terkait dalam Entri
laymonage Mar 19, 2020
f3f28d9
Sederhanakan proses pengecekan terautentikasi
laymonage Mar 19, 2020
8e53b91
Sederhanakan kode pemeriksaan varian
laymonage Mar 20, 2020
d92254f
Kurangi indentasi dengan return terlebih dahulu
laymonage Mar 20, 2020
2ebe980
Ubah lain_lain menjadi terkait dan sederhanakan kode
laymonage Mar 20, 2020
f218635
Gabung variabel untuk entri-entri terkait menjadi satu dict
laymonage Mar 20, 2020
dc85799
Sederhanakan pemrosesan etimologi
laymonage Mar 20, 2020
7bc9f73
Pecah arti etimologi menjadi list
laymonage Mar 20, 2020
ce50085
Gunakan asal kata untuk representasi etimologi
laymonage Mar 20, 2020
cfd866c
Buat pengolahan etimologi menjadi lebih aman
laymonage Mar 20, 2020
5f5bf81
Perbaiki pengolahan prakategorial jika terautentikasi
laymonage Mar 20, 2020
02de31a
Perbaiki kasus uji untuk entri yang tidak bermakna
laymonage Mar 20, 2020
5e8e95a
Ubah cookies -> kuki
laymonage Mar 20, 2020
42c1841
Pindahkan method ambil cookie ke AutentikasiKBBI
laymonage Mar 20, 2020
e51c9d3
Munculkan galat jika autentikasi gagal
laymonage Mar 21, 2020
f2269bf
Pisahkan autentikasi dari program utama
laymonage Mar 21, 2020
16d9479
Gunakan appdirs untuk mengolah path kuki
laymonage Mar 21, 2020
2c6a692
Gunakan JSON untuk menyimpan kuki
laymonage Mar 21, 2020
fb203c1
Perbaiki penanganan galat ketika kuki belum ada
laymonage Mar 21, 2020
7b1203e
Tambahkan opsi untuk menghapus kuki
laymonage Mar 21, 2020
c8159f9
Tambahkan opsi untuk menonaktifkan fitur khusus pengguna
laymonage Mar 21, 2020
87705be
Tambahkan parameter untuk mengatur lokasi kuki
laymonage Mar 21, 2020
6ce8ca6
Buat metode pada AutentikasiKBBI menjadi publik
laymonage Mar 21, 2020
3acdc2d
Tambahkan opsi untuk tidak menampilkan entri terkait
laymonage Mar 21, 2020
7bd1929
Sederhanakan docstring
laymonage Mar 21, 2020
e93e48a
Refaktor kode
laymonage Mar 21, 2020
51d28e5
Masukkan variabel lokasi kuki ke dalam AutentikasiKBBI
laymonage Mar 21, 2020
ef4c1bb
Dokumentasikan penggunaan fitur khusus pengguna di README
laymonage Mar 21, 2020
408410e
Perbaiki pesan bantuan
laymonage Mar 21, 2020
ae27001
Gunakan flag untuk menonaktifkan fitur pengguna
laymonage Mar 21, 2020
99d6711
Perbaiki kasus di mana kelas pada makna bisa diklik
laymonage Mar 21, 2020
f4314ad
Tambahkan kasus tes untuk fitur khusus pengguna
laymonage Mar 22, 2020
6a3607a
Ubah konfigurasi linting dan tes
laymonage Mar 22, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ jobs:
- name: Lint with flake8
run: |
pip install flake8
flake8 kbbi tests --count --ignore=E203 --show-source --statistics
flake8 kbbi tests --count --ignore=E203,W503 --show-source --statistics
- name: Lint with isort
run: |
pip install isort
isort -c -df -rc -o pytest .
isort -c -df -rc -o pytest -p kbbi .
3 changes: 3 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ jobs:
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Test with pytest
env:
KBBI_POSEL: ${{ secrets.KBBI_POSEL }}
KBBI_SANDI: ${{ secrets.KBBI_SANDI }}
run: |
pip install pytest
pytest
3 changes: 2 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ repos:
rev: "3.7.9"
hooks:
- id: flake8
args: ["--ignore=E203"]
args: ["--ignore=E203,W503"]

- repo: https://github.com/timothycrosley/isort
rev: "4.3.21-2"
hooks:
- id: isort
args: ["-o=pytest", "-p=kbbi"]
100 changes: 98 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,72 @@ tak.sir (2)
}
```

Untuk memanfaatkan fitur khusus pengguna, buat objek `AutentikasiKBBI` terlebih
dahulu, lalu gunakan objek tersebut dalam pembuatan objek `KBBI`.

```python
>>> auth = AutentikasiKBBI("[email protected]", "password_saya")
>>> roh = KBBI("roh", auth)
>>> print(roh)
roh
bentuk tidak baku: ruh
Etimologi: [Arab] (n) (sg) (f/m) رُوْحٌ rūh: tiupan; sesuatu yang membuat manusia dapat hidup
1. (n) sesuatu (unsur) yang ada dalam jasad yang diciptakan Tuhan sebagai penyebab adanya hidup (kehidupan); nyawa: jika -- sudah berpisah dari badan, berakhirlah kehidupan seseorang
2. (n) makhluk hidup yang tidak berjasad, tetapi berpikiran dan berperasaan (malaikat, jin, setan, dan sebagainya)
3. (n) (ki) semangat; spirit: kedamaian bagi seluruh warga sesuai dengan -- Islam
Gabungan Kata
roh Kudus; roh suci
```

Fitur khusus pengguna yang didukung saat ini adalah etimologi, entri terkait
(kata turunan, gabungan kata, peribahasa, dan kiasan), dan batas pencarian yang
lebih besar.

Untuk mendapatkan representasi `str`-nya tanpa fitur entri terkait, gunakan
`__str__(terkait=False)`.

```python
>>> print(roh.__str__(contoh=False, terkait=False))
roh
bentuk tidak baku: ruh
Etimologi: [Arab] (n) (sg) (f/m) رُوْحٌ rūh: tiupan; sesuatu yang membuat manusia dapat hidup
1. (n) sesuatu (unsur) yang ada dalam jasad yang diciptakan Tuhan sebagai penyebab adanya hidup (kehidupan); nyawa
2. (n) makhluk hidup yang tidak berjasad, tetapi berpikiran dan berperasaan (malaikat, jin, setan, dan sebagainya)
3. (n) (ki) semangat; spirit
```

Untuk menonaktifkan fitur khusus pengguna (selain batas pencarian yang lebih
besar), tambahkan argumen `fitur_pengguna=False` pada pemanggilan `__str__`
atau `serialisasi`.

Apabila ingin menyimpan kuki autentikasi, panggil *method* `simpan_kuki()` pada
objek `AutentikasiKBBI`.

```python
>>> auth.simpan_kuki()
```

Berikutnya, objek `AutentikasiKBBI` dapat dibuat tanpa menggunakan alamat posel
dan sandi. Autentikasi dilakukan dengan memanfaatkan kuki yang telah disimpan.

```python
>>> auth_baru = AutentikasiKBBI()
```

Lokasi penyimpanan/pembacaan kuki bisa diatur dengan parameter `lokasi_kuki`
ketika membuat objek `AutentikasiKBBI`.

```python
>>> auth = AutentikasiKBBI("[email protected]", "sandi_saya", lokasi_kuki="~/kuki_kbbi.json")
>>> auth_baru = AutentikasiKBBI(lokasi_kuki="~/kuki_kbbi.json")
```

Secara *default*, lokasi tersebut adalah:

- Unix: `~/.config/kbbi/kuki.json`
- Windows: `%localappdata%\laymonage\kbbi\kuki.json`
- Mac: `~/Library/Application Support/kbbi/kuki.json`

### Melalui CLI

```
Expand All @@ -153,7 +219,7 @@ tanda petik.
$ kbbi "tanggung jawab"
```

Apabila tidak ingin menampilkan contoh, gunakan `--tanpa-contoh` atau `-t`.
Apabila tidak ingin menampilkan contoh, gunakan `--tanpa-contoh` atau `-c`.

```
$ kbbi "tanggung jawab" --tanpa-contoh
Expand All @@ -173,7 +239,37 @@ atau `-i N`.
$ kbbi "tanggung jawab" --json --indentasi 2
```

> **Catatan:** **`kbbi`** juga bisa dipanggil dengan **`python kbbi.py`**.
Untuk memanfaatkan fitur khusus pengguna, lakukan autentikasi terlebih dahulu
dengan bantuan `kbbi-autentikasi`.

```
$ kbbi-autentikasi $KBBI_POSEL $KBBI_SANDI
```

Penggunaan `kbbi` berikutnya akan otomatis menggunakan kuki hasil autentikasi.

Untuk menonaktifkan fitur entri terkait, gunakan `--tanpa-terkait` atau `-t`.

```
$ kbbi alam --tanpa-terkait
```

Untuk menonaktifkan semua fitur khusus pengguna (selain batas pencarian yang
lebih besar dan tanpa menghapus kuki), gunakan `--nonpengguna` atau `-n`.

```
$ kbbi alam --nonpengguna
```

Untuk menghapus kuki, gunakan opsi `--bersihkan` atau `-c`.

```
$ kbbi-autentikasi --bersihkan
```

> **Catatan:**\
> **`kbbi`** juga bisa dipanggil dengan **`python kbbi.py`**.\
> **`kbbi-autentikasi`** juga bisa dipanggil dengan **`python -c "import kbbi; kbbi.autentikasi()"`**

## Berkontribusi

Expand Down
Loading