diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/advanced/api.rst | 14 | ||||
-rw-r--r-- | docs/changelog.rst | 128 | ||||
-rw-r--r-- | docs/plugins/builtin.rst | 2 | ||||
-rw-r--r-- | docs/setup.rst | 13 | ||||
-rw-r--r-- | docs/usage/shortcuts.rst | 72 |
5 files changed, 216 insertions, 13 deletions
diff --git a/docs/advanced/api.rst b/docs/advanced/api.rst index 61f6d01..f5e0e47 100644 --- a/docs/advanced/api.rst +++ b/docs/advanced/api.rst @@ -12,3 +12,17 @@ Versioning **hircine** uses `Semantic Versioning <https://semver.org>`_. The *public API* consists of both the frontend (command-line interface and web application) and the backend (GraphQL API and plugin infrastructure). + +Breaking changes +---------------- + +.. _api-breaking-0.4.0: + +0.4.0 +^^^^^ + +- With the addition of filtering on association counts in + :commit:`9c460c6db7e6a4e7f8ed3e8d93032c7ef070efee`, the old ``empty`` field on + ``AssociationFilter`` is now obsolete. Instead use the ``count`` field and + match on a ``value`` of ``0`` with the ``EQUAL`` operator (which is the + default). diff --git a/docs/changelog.rst b/docs/changelog.rst index 2b4d130..e314ff9 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,134 @@ Changelog ========= +0.4.4 +----- + +- The sort drop-down is now named and ordered more consistently. See + :commit:`44d7ddb0686494a659a3f681d620765b81d29f13`. +- Miscellaneous improvements in tooltip naming and styling along with updates + for Python and JS dependencies. For the full list of changes, see `the 0.4.4 + log <https://git.oriole.systems/hircine/log/?qt=range&q=0.4.3..0.4.4>`_. + +0.4.3 +----- + +- Comic cards now have the covers aligned to the left. This is especially + useful for double-page covers which now show more relevant content. See + :commit:`f720d55f7a5a0f7a353adcb5a060ec731486965e`. +- URLs may now also be excluded. See + :commit:`cf9801172a175e3580d07729c14778ededf6fcda`. +- Further miscellaneous internal improvements. For the full list of changes, + see `the 0.4.3 log <https://git.oriole.systems/hircine/log/?qt=range&q=0.4.2..0.4.3>`_. + +0.4.2 +----- + +- ``hircine import`` now reports the path of corrupt ZIP files when scanning. + See :commit:`dd1ef483ef90f35218f5a4a3ea37a624b38ca8da`. +- Trying to navigate away from a "Comic not found" page will no longer pop up a + warning about pending changes. See + :commit:`0da158d0f0cc5bc611441f7cb8b36bb36e485ddd`. +- Small internal improvements, along with updates to Python and JS + dependencies. For the full list of changes, see `the 0.4.2 log + <https://git.oriole.systems/hircine/log/?qt=range&q=0.4.1..0.4.2>`_. + +0.4.1 +----- + +- A comic's URL is now shown as text in the comic details tab. See + :commit:`d0951bf7c1729973c5c422d0ab88baefe6b74e87`. +- Further small styling improvements. For the full list of changes, see + `the 0.4.1 log <https://git.oriole.systems/hircine/log/?qt=range&q=0.4.0..0.4.1>`_. + +0.4.0 "Profligate Pixie" +------------------------ + +- hircine now runs on `Svelte 5 <https://svelte.dev/blog/svelte-5-is-alive>`_. + See :commit:`dc4db405d2991d3ec6a114f3b08d3fccd057d3ee`, + :commit:`3f6bd71aaac4277d046485fe8ea2a791ea089cd8`, and + :commit:`e0bce6b5780ccceb90ba6aec5593dc5f6100447b`. +- hircine now runs on `Tailwind 4.0 + <https://tailwindcss.com/blog/tailwindcss-v4>`_. See + :commit:`1421152a9356c7def86143dfb31a3586d5491d55`. +- The GraphQL API now supports advanced filtering on association counts, + i.e. values describing how many items are linked to a specific association + (the amount of Artists tagged on a Comic, for example). See + :commit:`9c460c6db7e6a4e7f8ed3e8d93032c7ef070efee`. + + This is a **breaking change** for the GraphQL API. For detailed information, + see :ref:`breaking API changes in 0.4.0 <api-breaking-0.4.0>`. +- Sort options have been expanded to include all reasonable association counts. + See :commit:`c6bf35aea63969b90463d6e70cb02ed61e4e3270`. +- Orphaned associations (e.g. Artists that are not tagged on any Comic) can now + be filtered. See :commit:`8e9aa5f6286a15c818a47344fc80964f5288bb52`. +- Frequently accessed shortcuts have been streamlined to only require the hand + on the left side of the keyboard. Additionally, all filter fields are now + focusable with a shortcut. See + :commit:`b028f5337ed8525e29247974636f9e7757900f65` and :doc:`/usage/shortcuts`. +- Comic and Archive cards now show some metadata information in the footer. See + :commit:`361f506cd3677f61d2203ff91fab70ba3a1c5851`. +- The reader's page indicator has been improved. See + :commit:`6bc3ca7032c78c77a6e2b316789938221d686d8b`. +- The reader can now be put into fullscreen mode. See + :commit:`f90f3604cf161a82336ed1f81967933adedfeb96`. +- Mismatched image sizes when showing double pages no longer cause the smaller + image to appear squished. See + :commit:`2177d004c88d1daccc9ae4808dc75b66eb0f2d3a`. +- Comics may now be filtered by URL. See + :commit:`747eea878eb4b22def2d5a60d711402d79d1b3ff`. +- The frontpage no longer randomizes the "Favourites" and "Bookmarks" selection + every time. Instead, the selection is updated every day. See + :commit:`bbf03cbc2822094cffe868e0710d2a8f7e1096c0`. +- The filter toolbar now expands automatically when filters are present. See + :commit:`fc92c14cc47e90f997813156905369a2652dc4b8`. +- Opening tagged comics is now also possible when ctrl-clicking metadata + cardlets. See :commit:`618f72b31d57ac17f475dbe983a31627cff3b96e`. +- The reader now preloads up to two images in both forward and backward + direction. See :commit:`341fc19d4b7e9d8fb8b9a9d72377cf36565f2f2e`. +- The reader now no longer shows a loading indicator. See + :commit:`cf817a050a82b526ad230d2677f23f2efd7f3455`. +- A basic statistics page is now available. See + :commit:`261ceaa057742fc70c52885021221d7a89c28af7` and + :commit:`91cfd5d306aedb4bdcc1c4045611bee7d2270462`. +- :class:`~hircine.plugins.scrapers.anchira.AnchiraYamlScraper` now also matches + on hentainexus.com. +- A scraper for `info.yaml` files from schale.network is now available. See + :commit:`22fd0e2b1b117e78529c9f562cab79da4c02797e`. +- Lots of miscellaneous UI consistency, tabbing, and focus fixes. Updates for + both JavaScript and Python dependencies. For the full list of changes, see + `the 0.4.0 log <https://git.oriole.systems/hircine/log/?qt=range&q=0.3.0..0.4.0>`_. + +0.3.0 +----- + +- :meth:`~hircine.scraper.utils.parse_dict` now binds loop variables correctly. + See :commit:`b4eb3a5d37ab7f8de09ee699d4695ec0c1a54e57`. +- :class:`~hircine.plugins.scrapers.anchira.AnchiraYamlScraper` now uses + :meth:`~hircine.scraper.utils.parse_dict` instead of its own implementation. + See :commit:`bddbb684fd8a5d6992f5b1fc809e1629ccb841c1`. +- The :class:`~hircine.scraper.types.Language` data class now provides + :meth:`~hircine.scraper.types.Language.from_iso_639_3` and + :meth:`~hircine.scraper.types.Language.from_name` for easy access to + language-parsing functionality in scrapers. See + :commit:`a68bdd1419150a98b4255ca6f7db6889e73b7aa0` and + :commit:`6a138ebe25d4d22e35a10cdf1b90c9b40aa224b7`. +- The MangaDex backend for + :class:`~hircine.plugins.scrapers.gallery_dl.GalleryDLScraper` now formats + titles correctly. See :commit:`0e6db1b5941a6f054e0645ccac4de30181dd9c65`. +- The exhentai backend for + :class:`~hircine.plugins.scrapers.gallery_dl.GalleryDLScraper` now assumes + that "non-h" content is uncensored. See + :commit:`7c63e0bed9c605f0ce35eef4b05d68676bb0ed29`. +- :class:`~hircine.plugins.scrapers.ehentai_api.EHentaiAPIScraper` now throws + :exc:`~hircine.scraper.ScrapeError` if the API response is missing the + essential `gmetadata` field. See + :commit:`9d27d52af9b852ac492f391fe69f5dd0a027c3cf`. +- The entire codebase has cleaned up and checked for lint. Both JavaScript and + Python dependencies have been updated. All built-in plugins now have tests. + For a full list of changes, see `the git log + <https://git.oriole.systems/hircine/log/?qt=range&q=0.2.0..0.3.0>`_. + 0.2.0 ----- diff --git a/docs/plugins/builtin.rst b/docs/plugins/builtin.rst index 61d531f..7b815ce 100644 --- a/docs/plugins/builtin.rst +++ b/docs/plugins/builtin.rst @@ -14,3 +14,5 @@ Scrapers .. autoclass:: hircine.plugins.scrapers.ehentai_api.EHentaiAPIScraper() .. autoclass:: hircine.plugins.scrapers.anchira.AnchiraYamlScraper() + +.. autoclass:: hircine.plugins.scrapers.schale_network.SchaleNetworkScraper() diff --git a/docs/setup.rst b/docs/setup.rst index af0cc36..3c05c0d 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -43,7 +43,7 @@ Installation ``VENVDIR``. Once the environment is set up, download the `latest wheel -<https://hircine.oriole.systems/dist/hircine-0.2.0-py3-none-any.whl>`_ and +<https://hircine.oriole.systems/dist/hircine-0.4.4-py3-none-any.whl>`_ and install it using `pip <https://pip.pypa.io/en/stable/>`_: .. code-block:: console @@ -55,7 +55,7 @@ Now the ``hircine`` command is available from within your shell: .. code-block:: console (.venv) $ hircine version - hircine 0.2.0 "Satanic Satyr" + hircine 0.4.4 "Profligate Pixie" .. important:: @@ -100,13 +100,14 @@ Starting the web application ---------------------------- To serve the web application, you need a compatible ASGI server. We recommend -`gunicorn <https://gunicorn.org>`_. The endpoint for the web application is the -``app()`` factory in ``hircine.app``: +`gunicorn <https://gunicorn.org>`_ together with `uvicorn-worker +<https://github.com/Kludex/uvicorn-worker>`_. The endpoint for the web +application is the ``app()`` factory in ``hircine.app``: .. code-block:: console - (.venv) $ python -m pip install gunicorn - (.venv) $ gunicorn -k uvicorn.workers.UvicornWorker --bind localhost:8000 "hircine.app:app()" + (.venv) $ python -m pip install gunicorn uvicorn-worker + (.venv) $ gunicorn -k uvicorn_worker.UvicornWorker --bind localhost:8000 "hircine.app:app()" Now you can point your browser to http://localhost:8000 to open the web application. To stop it, simply terminate ``gunicorn`` or the ASGI server of diff --git a/docs/usage/shortcuts.rst b/docs/usage/shortcuts.rst index b3f88bb..c32556d 100644 --- a/docs/usage/shortcuts.rst +++ b/docs/usage/shortcuts.rst @@ -15,7 +15,7 @@ Navigation :header-rows: 1 * - Shortcut - - Navigates to + - Navigates to... * - ``go`` - Home * - ``gc`` @@ -24,16 +24,18 @@ Navigation - Namespaces * - ``gt`` - Tags - * - ``gh`` - - Characters - * - ``gw`` - - Worlds * - ``ga`` - Artists * - ``gi`` - Circles + * - ``gh`` + - Characters + * - ``gw`` + - Worlds * - ``gz`` - Archives + * - ``gs`` + - Statistics * - ``?`` - Help @@ -72,6 +74,8 @@ Reader * - Shortcut - Action + * - ``f`` + - Toggle fullscreen. * - ``z`` - Open edit menu. * - ``Escape`` @@ -88,15 +92,69 @@ Filtering * - Shortcut - Action - * - ``F`` + * - ``q`` - Focus search. * - ``f`` - Toggle favourites. * - ``b`` - Toggle bookmarked. - * - ``o`` + * - ``r`` + - Toggle orphaned. + * - ``z`` - Toggle organized. +.. _shortcut-advanced-filtering: + +Advanced Filtering +------------------ + +.. list-table:: + :align: left + :header-rows: 1 + + * - Shortcut + - Action + * - ``F`` + - Toggle advanced filters. + * - ``X`` + - Reset filters. + +Focusing filter fields +^^^^^^^^^^^^^^^^^^^^^^ + +When the advanced filters are visible, each field may be focused by activating +the following shortcuts prefixed by either ``i`` for an include field or ``e`` +for an exclude field. For example, to include an artist, hit ``ia``. + +.. list-table:: + :align: left + :header-rows: 1 + + * - Shortcut + - Filters on... + * - ``n`` + - Namespaces + * - ``t`` + - Tags + * - ``a`` + - Artists + * - ``i`` + - Circles + * - ``h`` + - Characters + * - ``w`` + - Worlds + * - ``g`` + - Categories + * - ``r`` + - Ratings + * - ``s`` + - Censorships + * - ``l`` + - Languages + * - ``u`` + - URLs + .. _shortcut-misc: Miscellaneous |