Ci
* ci: use relekang/python-semantic-release action (5)
The previous action could not upload a release to pypi. ([`951fc4e`](https://github.com/ajite/hebikani/commit/951fc4e0211f3de712471e2a5eabe507d60cafab))
* ci: typo in quality badge branch condition (3)
It was looking for a branch named master instead of main ([`41798fb`](https://github.com/ajite/hebikani/commit/41798fb8ee356f3a99a5a82b504ef4e3b252dc6d))
* ci: setup semantic-release (2)
Improve github actions workflows
- do quality check
- then create badge and publish on pypi and github
All the changes on the main branch need to come from PR ([`e3ccb15`](https://github.com/ajite/hebikani/commit/e3ccb1530d4c9915c6766b060664994b21a61930))
Documentation
* docs: add a cli demo GIF in both doc and readme (6) ([`888d458`](https://github.com/ajite/hebikani/commit/888d45888dcc8f8ac608c9e06f2fae44a052fe09))
* docs: add the readthedocs badge on README.md ([`623467c`](https://github.com/ajite/hebikani/commit/623467c49a41e363f23c22efe16fd0205caab5ab))
Fix
* fix: hard mode does not work with inexact answers (4)
Answers are considered inexact in hard mode when:
1) For a question with 1 acceptable answer:
- Used an unacceptable answer (E.g: onyumi instead of kunyomi)
2) For a question with 2 or more acceptable answer:
- Used the correct number of answers
- One or all of them are unacceptable answers.
* ci: flake8 is taking too long to run
- Ignore .venv and build directory
- add semantic workflow to check semantic title (will be working for future PR) ([`20df7ca`](https://github.com/ajite/hebikani/commit/20df7caa96d6f1f01f8a49054be51c9d14d51592))
* fix: do not run on debian based system
Add dependencies to run on debian based system.
Add doc to explain dependencies that needs to be added. ([`08cd8da`](https://github.com/ajite/hebikani/commit/08cd8da9cc580a5a9b1cf6fb4776f789bd03103f))
Refactor
* refactor: renamed project from WaniKani CLI to HebiKani (7)
You will need to import from hebikani instead of wanikani_cli
BREAKING CHANGE: the library name on PIP is not wanikani-cli anymore. ([`f9a8ebd`](https://github.com/ajite/hebikani/commit/f9a8ebda6c11d772676c1a2edfd711fd83e6ba9d))
Style
* style: no new line at the end docs/sources/conf.py ([`e451d01`](https://github.com/ajite/hebikani/commit/e451d013a8fdc5d9a9d446c2b706c2642306c854))
Test
* test: github action fails due to PyGObject
Change the testing OS to macos-latest since it does not requires extra ([`2554fb0`](https://github.com/ajite/hebikani/commit/2554fb06e4d7476f04f955fd278d0e602a24df1d))
Unknown
* doc: Add readthedocs config file
The doc was not building properly. Add a requirements.txt in doc.
Contains only doc dependency. ([`c935484`](https://github.com/ajite/hebikani/commit/c93548432057fc56735d2057506e3ebc12434ec1))
* fix typo on badge name in README.rst ([`9666796`](https://github.com/ajite/hebikani/commit/96667960cd1f8de21069be5559ee35452a61aee3))
* Add coverage badge through gist and shield.io
Improve github actions to cache poetry install (unless it need new lib) ([`db64777`](https://github.com/ajite/hebikani/commit/db64777cc154843aa8866fb84b2db2493ccb318d))
* Change http_get, post and put to one method
Updated test coverage ([`cf8c6e7`](https://github.com/ajite/hebikani/commit/cf8c6e7ed19c84ac245e3bb81b06e59ef0816682))
* Colorized lessons mnemonics as well ([`b38d04e`](https://github.com/ajite/hebikani/commit/b38d04e5440da5af3743af0688fe0580354b33a1))
* Replaced WaniKani tags by color in mnemonics. ([`b6e6e31`](https://github.com/ajite/hebikani/commit/b6e6e310aa6000ffbcd080ac8548bd230f561c0e))
* Improve lesson layout. Pressing enter goes right.
Improve display layout when doing lessons.
Display number of lesson done and left to do. ([`4e44a23`](https://github.com/ajite/hebikani/commit/4e44a23e3017796d3a23dc2b98cf721e44618445))
* Clear the audio cache when the program ends.
It was working only when the user used ctrl + c ([`bb50ddf`](https://github.com/ajite/hebikani/commit/bb50ddfdcc6893633aa34aadd962801b4f017f1d))
* Update README warning. ([`933d0df`](https://github.com/ajite/hebikani/commit/933d0df2e5741632bb0e6674e1d1c838bb5108ba))
* Cache audio during and play it in a thread.
It is useless to download X times the same audio.
We cache it during our first download.
It will change the alternate method a little bit
since caching keeps the same audio gender.
Audio are download at the begining of a
lessons (with extra character).
Audio are played in a different thread. ([`6c174e9`](https://github.com/ajite/hebikani/commit/6c174e91ba8844a91f7d0e1e3d8b97a53baf49a1))
* Display number of readings in hard mode.
Some kanji have 2 readings while their vocab has only one.
e.g.: 谷. The readings for the kanji are: たに、や.
But the vocabulary only needs one answer: たに.
It feels fairer that way. ([`67bed6c`](https://github.com/ajite/hebikani/commit/67bed6c7340821b03d5b7038964eca30401bea4a))
* Fix forgot to rename _subject_per_ids in test ([`5e89e6f`](https://github.com/ajite/hebikani/commit/5e89e6ff8365a6f3f1452cc6f7f3861a83789683))
* Added lessons
Can navigate through tab to do lessons
Send the lesson results back to API
Added cache when loading subjects in lesson. ([`9ed8316`](https://github.com/ajite/hebikani/commit/9ed83166a4e669f85fcc6b113c8cfcde5e74abd9))
* Fix todo list in README ([`1de68da`](https://github.com/ajite/hebikani/commit/1de68da2f6a6d1436988d5ee4421462ceb198cf9))
* fix readme layout for code display ([`6a472e2`](https://github.com/ajite/hebikani/commit/6a472e28ab99c7bae5bbc108be180dbd6da176ef))
* Improved revewing interface and added mnemonic.
- Added --limit argument to limit the number of reviews in a session.
The max is 500 and the min is 1.
- Added --mnemonics to diplay question mnemonic when making a mistake
- Catch &34;ctrl +c&34; to display an exit message. ([`0c0317e`](https://github.com/ajite/hebikani/commit/0c0317e16c06cd2e256c6b7dfe3b65f14dfa995d))
* Remove alpha notice and change it to experimental release. ([`fae56f1`](https://github.com/ajite/hebikani/commit/fae56f1c0d9ca8bd6ccd045d2e2fea4b71e1bd3c))
* Send reviews back to WaniKani API.
Added a --dry-run for testing purposes.
This mode does not send anything back to the API.
Added a hard mode that will require the user to input
all the prounonciation of a given kanji.
E.g: なに,なん for 何. The order does not matter.
Changed the entire architecture to handle subject.
Removed Kanji, Vocabulary and Radical class.
Create a class to handle Subject update. ([`c85abac`](https://github.com/ajite/hebikani/commit/c85abac1059c2194cf976204f77fbaf0ccff42bc))
* Add a an answer manager object to solve questions
Check for four different types of answers
(Correct, Incorrect, Inexact, A bit off):
- Correct answer (right)
- Incorrect answer (wrong)
- Inexact applies only for reading. When using an non acceptable answer.
E.g kunyomi instead of onyomi. Inexact methods are calculated through
python difflib library. We set a constant ratio to 0.8.
- A bit off applies only for meaning. E.g: skillfull instead of skillful
When an answer is inexact we ask the user for the exact meaning.
When an answer is bit off we ask the user to validate his answer.
Moved enums in a file named typing.py ([`7b431f1`](https://github.com/ajite/hebikani/commit/7b431f1863a237078a50108705768b9c832d728a))
* Fix typo in README.rst ([`07ce361`](https://github.com/ajite/hebikani/commit/07ce361501954ce7a3781f5f964df9f2803e57d0))
* Bump version number
We changed the project folder structure. ([`d8fddff`](https://github.com/ajite/hebikani/commit/d8fddff7c7786240833fadf0d335c66e6a8b61e2))
* Use poetry instead of setuptools
- Change package structure
- Add black
Poetry makes it easier to manage dependencies versions and build.
Add specifc lib requirements for Darwin (pyobjc).
Improve README.rst.
Use poetry to generate requirements.txt. ([`fd915d5`](https://github.com/ajite/hebikani/commit/fd915d53143254709e8d70e071f04256d4cee7bb))
* github actions seems to work with setup.py develop ([`c0b615f`](https://github.com/ajite/hebikani/commit/c0b615fcc7b19fffbfa658baf4343a851f46c075))
* Use pip instead of setup.py in Github actions ([`1fcc5ac`](https://github.com/ajite/hebikani/commit/1fcc5acc7bcf0c749c7c1b01b327ebe30b0b1010))
* Add github actions for tests
Runs pytes and flake8 on Python 3.9 ([`928e21c`](https://github.com/ajite/hebikani/commit/928e21c1612db74025c7dcb74ecd4d708be66f40))
* Add .vscode in .gitignore
Added a comment for the Audi class definition ([`038de87`](https://github.com/ajite/hebikani/commit/038de87f86aaed575312fbb1b2d3c8557d952368))
* Merge pull request 1 from RBrearton/main
Small refactoring changes
- Replaced the deprecated OptionParser with the recommended ArgumentParser module.
- Removed COMMANDS, since we can work this out from the Client class.
- Added type hints.
- Added to a few different docstrings, renamed some variables and moved stuff around. ([`d150b16`](https://github.com/ajite/hebikani/commit/d150b16bb6cfb13bfdde3d77f3c45efca73bf764))
* Merge branch &39;main&39; into main ([`7bebd74`](https://github.com/ajite/hebikani/commit/7bebd740218b0d1de966f64a06696b4231fb929c))
* Added audio features with playsound.
Created a list of Audio objects when available from the API.
Only play MP3 and ignores OGG.
Changed optparse to argparse (the former being deprecated)
- Added option to autoplay the sound or to be asked.
- Added silent mode
- Can select female, male, alternate or random voice actors ([`25f3a6a`](https://github.com/ajite/hebikani/commit/25f3a6a5cc0ae458d49733b439300630dfa0465b))
* Added type hints, changed some docs ([`254c8aa`](https://github.com/ajite/hebikani/commit/254c8aaf4a690a00d848bb4767ac8e85db1f65cf))
* Minor changes to please pylint ([`9d3a069`](https://github.com/ajite/hebikani/commit/9d3a0698dcfac5530d30087205550a15335c664b))
* CLI can now infer what commands have been implemented ([`b4bd481`](https://github.com/ajite/hebikani/commit/b4bd4812be18e539f85cf4ec1b2b32836b8b519f))
* Removed deprecated OptionParser dependency ([`c6a7b62`](https://github.com/ajite/hebikani/commit/c6a7b62b99311eedae780c095422d1fb10d9b6e8))
* Improve user interface by cleaning the interface.
- Clear the console after each card (ask for user input)
- Display number of reviews left
- Display percentage of correct and wrong answers ([`4f87ebd`](https://github.com/ajite/hebikani/commit/4f87ebda50df69e3369e6a0affcda1c3a9910939))
* Feature display ASCII art for non UTF character.
We download the smallest PNG the API offers (32x32)
then transform it to ASCCI Art thanks to ascii_magic
and pillow. We only do this for radical without
a UTF entry.
Added missing libraries in setup.cfg:
- romkan
- ascii_magic
- pillow ([`677c79c`](https://github.com/ajite/hebikani/commit/677c79cb8d4a605621f2b72e3821183d5a3cf694))
* Add a romaji to kana input method
The user will now have his lower case kana converted to hiragana and
upper case converted to hiragana while answering questions.
Restructured the library and add a console script &34;wanikani-cli&34;.
Quick fix to the README to display code-block properly. ([`56e7008`](https://github.com/ajite/hebikani/commit/56e70082c9f0933dbfae0b160c98c9b5fefca937))
* Initial commit.
The client can check your summary.
Start a review session.
Does not send review results to API. ([`083626f`](https://github.com/ajite/hebikani/commit/083626fc584ccf5718f090ff20947b0df3825dbc))