codex 1.5.0a1__py3-none-any.whl โ 1.5.0a3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of codex might be problematic. Click here for more details.
- codex/__init__.py +1 -0
- codex/_vendor/haystack/apps.py +2 -3
- codex/_vendor/haystack/utils/loading.py +3 -0
- codex/applications/lifespan.py +1 -0
- codex/applications/websocket.py +1 -0
- codex/asgi.py +1 -0
- codex/db_functions.py +1 -0
- codex/exceptions.py +1 -0
- codex/integrity.py +1 -0
- codex/librarian/covers/coverd.py +1 -0
- codex/librarian/covers/create.py +2 -1
- codex/librarian/covers/path.py +1 -0
- codex/librarian/covers/purge.py +1 -0
- codex/librarian/covers/status.py +1 -0
- codex/librarian/covers/tasks.py +1 -0
- codex/librarian/delayed_taskd.py +1 -0
- codex/librarian/importer/aggregate_metadata.py +1 -0
- codex/librarian/importer/clean_metadata.py +1 -0
- codex/librarian/importer/const.py +1 -0
- codex/librarian/importer/create_comics.py +1 -0
- codex/librarian/importer/create_fks.py +1 -0
- codex/librarian/importer/failed_imports.py +1 -0
- codex/librarian/importer/importerd.py +1 -0
- codex/librarian/importer/link_comics.py +2 -3
- codex/librarian/importer/moved.py +17 -15
- codex/librarian/importer/query_fks.py +1 -0
- codex/librarian/importer/status.py +1 -0
- codex/librarian/importer/tasks.py +1 -0
- codex/librarian/janitor/cleanup.py +1 -0
- codex/librarian/janitor/failed_imports.py +1 -0
- codex/librarian/janitor/janitor.py +1 -0
- codex/librarian/janitor/janitord.py +1 -0
- codex/librarian/janitor/status.py +1 -0
- codex/librarian/janitor/tasks.py +1 -0
- codex/librarian/janitor/update.py +1 -0
- codex/librarian/janitor/vacuum.py +1 -0
- codex/librarian/librariand.py +1 -0
- codex/librarian/mp_queue.py +1 -0
- codex/librarian/notifier/notifierd.py +0 -1
- codex/librarian/notifier/tasks.py +1 -0
- codex/librarian/search/merge.py +1 -0
- codex/librarian/search/remove.py +1 -0
- codex/librarian/search/searchd.py +1 -0
- codex/librarian/search/status.py +1 -0
- codex/librarian/search/tasks.py +1 -0
- codex/librarian/search/update.py +1 -0
- codex/librarian/search/version.py +1 -0
- codex/librarian/tasks.py +1 -0
- codex/librarian/watchdog/db_snapshot.py +1 -0
- codex/librarian/watchdog/dir_snapshot_diff.py +1 -0
- codex/librarian/watchdog/emitter.py +18 -1
- codex/librarian/watchdog/event_batcherd.py +1 -0
- codex/librarian/watchdog/events.py +1 -0
- codex/librarian/watchdog/observers.py +8 -1
- codex/librarian/watchdog/status.py +1 -0
- codex/librarian/watchdog/tasks.py +1 -0
- codex/logger/formatter.py +36 -0
- codex/logger/loggerd.py +2 -33
- codex/logger/logging.py +1 -0
- codex/logger/mp_queue.py +1 -0
- codex/logger_base.py +1 -0
- codex/memory.py +1 -0
- codex/middleware.py +1 -0
- codex/migrations/0002_auto_20200826_0622.py +0 -1
- codex/migrations/0003_auto_20200831_2033.py +0 -1
- codex/migrations/0004_failedimport.py +0 -1
- codex/migrations/0005_auto_20200918_0146.py +1 -0
- codex/migrations/0008_alter_comic_created_at_alter_comic_format_and_more.py +0 -1
- codex/migrations/0009_alter_comic_parent_folder.py +0 -1
- codex/migrations/0010_haystack.py +0 -1
- codex/migrations/0011_library_groups_and_metadata_changes.py +1 -0
- codex/migrations/0013_int_issue_count_longer_charfields.py +1 -0
- codex/migrations/0014_pdf_issue_suffix_remove_cover_image_sort_name.py +1 -0
- codex/migrations/0015_link_comics_to_top_level_folders.py +1 -0
- codex/migrations/0016_remove_comic_cover_path_librarianstatus.py +1 -0
- codex/migrations/0017_alter_timestamp_options_alter_adminflag_name_and_more.py +1 -0
- codex/migrations/0023_rename_credit_creator_and_more.py +1 -0
- codex/migrations/0024_comic_gtin_comic_story_arc_number.py +0 -1
- codex/migrations/0026_comicbox_1.py +10 -6
- codex/models/__init__.py +1 -0
- codex/models/admin.py +1 -0
- codex/models/base.py +1 -0
- codex/models/bookmark.py +1 -0
- codex/models/comic.py +1 -0
- codex/models/groups.py +1 -0
- codex/models/library.py +1 -0
- codex/models/named.py +1 -0
- codex/models/paths.py +1 -0
- codex/permissions.py +1 -0
- codex/registration.py +1 -0
- codex/run.py +1 -0
- codex/search/backend.py +7 -1
- codex/search/engine.py +1 -0
- codex/search/indexes.py +1 -0
- codex/search/writing.py +1 -0
- codex/serializers/admin.py +1 -0
- codex/serializers/browser/choices.py +1 -0
- codex/serializers/browser/filters.py +1 -0
- codex/serializers/browser/page.py +3 -0
- codex/serializers/browser/settings.py +1 -0
- codex/serializers/choices.py +7 -3
- codex/serializers/homepage.py +1 -0
- codex/serializers/metadata.py +1 -0
- codex/serializers/mixins.py +1 -0
- codex/serializers/models/admin.py +1 -0
- codex/serializers/models/base.py +1 -0
- codex/serializers/models/bookmark.py +1 -0
- codex/serializers/models/comic.py +1 -0
- codex/serializers/models/groups.py +1 -0
- codex/serializers/models/named.py +1 -0
- codex/serializers/models/pycountry.py +1 -0
- codex/serializers/opds/authentication.py +1 -0
- codex/serializers/opds/v1.py +1 -0
- codex/serializers/opds/v2_unused.py +1 -0
- codex/serializers/reader.py +3 -0
- codex/serializers/redirect.py +1 -0
- codex/serializers/versions.py +1 -0
- codex/settings/hypercorn.py +1 -0
- codex/settings/logging.py +1 -0
- codex/settings/secret_key.py +1 -0
- codex/settings/settings.py +1 -0
- codex/settings/timezone.py +1 -0
- codex/settings/whitenoise.py +1 -0
- codex/signals/django_signals.py +1 -0
- codex/signals/os_signals.py +1 -0
- codex/startup.py +1 -0
- codex/static_root/assets/VCheckbox-CMKdyl0R.016ed8d222c4.css +1 -0
- codex/static_root/assets/VCheckbox-CMKdyl0R.016ed8d222c4.css.br +0 -0
- codex/static_root/assets/VCheckbox-CMKdyl0R.016ed8d222c4.css.gz +0 -0
- codex/static_root/assets/VCheckbox-CMKdyl0R.css +1 -0
- codex/static_root/assets/VCheckbox-CMKdyl0R.css.br +0 -0
- codex/static_root/assets/VCheckbox-CMKdyl0R.css.gz +0 -0
- codex/static_root/assets/VCheckbox-CeROBShW.13efd0db94ad.js +1 -0
- codex/static_root/assets/VCheckbox-CeROBShW.13efd0db94ad.js.br +0 -0
- codex/static_root/assets/VCheckbox-CeROBShW.13efd0db94ad.js.gz +0 -0
- codex/static_root/assets/VCheckbox-CeROBShW.js +1 -0
- codex/static_root/assets/VCheckbox-CeROBShW.js.br +0 -0
- codex/static_root/assets/VCheckbox-CeROBShW.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-DsXzjZmq.024342a993d5.js +1 -0
- codex/static_root/assets/VCheckboxBtn-DsXzjZmq.024342a993d5.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-DsXzjZmq.024342a993d5.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-DsXzjZmq.js +1 -0
- codex/static_root/assets/VCheckboxBtn-DsXzjZmq.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-DsXzjZmq.js.gz +0 -0
- codex/static_root/assets/VCombobox-BkNOTgy1.8fe8fb5f133b.js +1 -0
- codex/static_root/assets/VCombobox-BkNOTgy1.8fe8fb5f133b.js.br +0 -0
- codex/static_root/assets/VCombobox-BkNOTgy1.8fe8fb5f133b.js.gz +0 -0
- codex/static_root/assets/VCombobox-BkNOTgy1.js +1 -0
- codex/static_root/assets/VCombobox-BkNOTgy1.js.br +0 -0
- codex/static_root/assets/VCombobox-BkNOTgy1.js.gz +0 -0
- codex/static_root/assets/VCombobox-BksEr4D_.73429bb75f42.css +1 -0
- codex/static_root/assets/VCombobox-BksEr4D_.73429bb75f42.css.br +0 -0
- codex/static_root/assets/VCombobox-BksEr4D_.73429bb75f42.css.gz +0 -0
- codex/static_root/assets/VCombobox-BksEr4D_.css +1 -0
- codex/static_root/assets/VCombobox-BksEr4D_.css.br +0 -0
- codex/static_root/assets/VCombobox-BksEr4D_.css.gz +0 -0
- codex/static_root/assets/{VDataTableVirtual-cJ9EDO4X.1a711f5f2fc0.css โ VDataTableVirtual-Cbj7IGxa.24039b2ebc61.css} +1 -1
- codex/static_root/assets/VDataTableVirtual-Cbj7IGxa.24039b2ebc61.css.br +0 -0
- codex/static_root/assets/VDataTableVirtual-Cbj7IGxa.24039b2ebc61.css.gz +0 -0
- codex/static_root/assets/{VDataTableVirtual-cJ9EDO4X.css โ VDataTableVirtual-Cbj7IGxa.css} +1 -1
- codex/static_root/assets/VDataTableVirtual-Cbj7IGxa.css.br +0 -0
- codex/static_root/assets/VDataTableVirtual-Cbj7IGxa.css.gz +0 -0
- codex/static_root/assets/VDataTableVirtual-xoo8biCM.a039eb46d778.js +1 -0
- codex/static_root/assets/VDataTableVirtual-xoo8biCM.a039eb46d778.js.br +0 -0
- codex/static_root/assets/VDataTableVirtual-xoo8biCM.a039eb46d778.js.gz +0 -0
- codex/static_root/assets/VDataTableVirtual-xoo8biCM.js +1 -0
- codex/static_root/assets/VDataTableVirtual-xoo8biCM.js.br +0 -0
- codex/static_root/assets/VDataTableVirtual-xoo8biCM.js.gz +0 -0
- codex/static_root/assets/{VExpansionPanel-gdSap9-6.212a9add7ff2.css โ VExpansionPanel-BgvW2DKJ.cd604d70ceee.css} +1 -1
- codex/static_root/assets/VExpansionPanel-BgvW2DKJ.cd604d70ceee.css.br +0 -0
- codex/static_root/assets/VExpansionPanel-BgvW2DKJ.cd604d70ceee.css.gz +0 -0
- codex/static_root/assets/{VExpansionPanel-gdSap9-6.css โ VExpansionPanel-BgvW2DKJ.css} +1 -1
- codex/static_root/assets/VExpansionPanel-BgvW2DKJ.css.br +0 -0
- codex/static_root/assets/VExpansionPanel-BgvW2DKJ.css.gz +0 -0
- codex/static_root/assets/VExpansionPanel-CvNJm3e_.f038a64c77fe.js +1 -0
- codex/static_root/assets/VExpansionPanel-CvNJm3e_.f038a64c77fe.js.br +0 -0
- codex/static_root/assets/VExpansionPanel-CvNJm3e_.f038a64c77fe.js.gz +0 -0
- codex/static_root/assets/VExpansionPanel-CvNJm3e_.js +1 -0
- codex/static_root/assets/VExpansionPanel-CvNJm3e_.js.br +0 -0
- codex/static_root/assets/VExpansionPanel-CvNJm3e_.js.gz +0 -0
- codex/static_root/assets/{VMain-MR9pvpIS.ffd0ac6a1519.js โ VMain-C7hhAcs8.bdcb5a3f2a40.js} +1 -1
- codex/static_root/assets/VMain-C7hhAcs8.bdcb5a3f2a40.js.br +0 -0
- codex/static_root/assets/VMain-C7hhAcs8.bdcb5a3f2a40.js.gz +0 -0
- codex/static_root/assets/{VMain-MR9pvpIS.js โ VMain-C7hhAcs8.js} +1 -1
- codex/static_root/assets/VMain-C7hhAcs8.js.br +0 -0
- codex/static_root/assets/VMain-C7hhAcs8.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-C_4z_UxB.caf3bf08435a.js +1 -0
- codex/static_root/assets/VRadioGroup-C_4z_UxB.caf3bf08435a.js.br +0 -0
- codex/static_root/assets/VRadioGroup-C_4z_UxB.caf3bf08435a.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-C_4z_UxB.js +1 -0
- codex/static_root/assets/VRadioGroup-C_4z_UxB.js.br +0 -0
- codex/static_root/assets/VRadioGroup-C_4z_UxB.js.gz +0 -0
- codex/static_root/assets/VSelect-mJnmdX3T.f376a225b78d.js +1 -0
- codex/static_root/assets/VSelect-mJnmdX3T.f376a225b78d.js.br +0 -0
- codex/static_root/assets/VSelect-mJnmdX3T.f376a225b78d.js.gz +0 -0
- codex/static_root/assets/VSelect-mJnmdX3T.js +1 -0
- codex/static_root/assets/VSelect-mJnmdX3T.js.br +0 -0
- codex/static_root/assets/VSelect-mJnmdX3T.js.gz +0 -0
- codex/static_root/assets/VSelect-udkSZJsa.1873bae92d9d.css +1 -0
- codex/static_root/assets/VSelect-udkSZJsa.1873bae92d9d.css.br +0 -0
- codex/static_root/assets/VSelect-udkSZJsa.1873bae92d9d.css.gz +0 -0
- codex/static_root/assets/VSelect-udkSZJsa.css +1 -0
- codex/static_root/assets/VSelect-udkSZJsa.css.br +0 -0
- codex/static_root/assets/VSelect-udkSZJsa.css.gz +0 -0
- codex/static_root/assets/VSelectionControl-Dl-z80yK.a06799bce7a2.js +1 -0
- codex/static_root/assets/VSelectionControl-Dl-z80yK.a06799bce7a2.js.br +0 -0
- codex/static_root/assets/VSelectionControl-Dl-z80yK.a06799bce7a2.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-Dl-z80yK.js +1 -0
- codex/static_root/assets/VSelectionControl-Dl-z80yK.js.br +0 -0
- codex/static_root/assets/VSelectionControl-Dl-z80yK.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-D7-cGh6b.a9ccd72e815b.js +1 -0
- codex/static_root/assets/VSlideGroup-D7-cGh6b.a9ccd72e815b.js.br +0 -0
- codex/static_root/assets/VSlideGroup-D7-cGh6b.a9ccd72e815b.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-D7-cGh6b.js +1 -0
- codex/static_root/assets/VSlideGroup-D7-cGh6b.js.br +0 -0
- codex/static_root/assets/VSlideGroup-D7-cGh6b.js.gz +0 -0
- codex/static_root/assets/{VTextField-8NJPNEpH.190723039dea.css โ VSlideGroup-Z7BhHtYB.90de84ac696c.css} +1 -1
- codex/static_root/assets/VSlideGroup-Z7BhHtYB.90de84ac696c.css.br +0 -0
- codex/static_root/assets/VSlideGroup-Z7BhHtYB.90de84ac696c.css.gz +0 -0
- codex/static_root/assets/{VTextField-8NJPNEpH.css โ VSlideGroup-Z7BhHtYB.css} +1 -1
- codex/static_root/assets/VSlideGroup-Z7BhHtYB.css.br +0 -0
- codex/static_root/assets/VSlideGroup-Z7BhHtYB.css.gz +0 -0
- codex/static_root/assets/{VTable-XNR_fTYM.4be31a3a6cd7.js โ VTable-D3ZmQmNr.ae26ea41abdd.js} +1 -1
- codex/static_root/assets/VTable-D3ZmQmNr.ae26ea41abdd.js.br +0 -0
- codex/static_root/assets/VTable-D3ZmQmNr.ae26ea41abdd.js.gz +0 -0
- codex/static_root/assets/{VTable-XNR_fTYM.js โ VTable-D3ZmQmNr.js} +1 -1
- codex/static_root/assets/VTable-D3ZmQmNr.js.br +0 -0
- codex/static_root/assets/VTable-D3ZmQmNr.js.gz +0 -0
- codex/static_root/assets/VTable-DflzroDq.160504d82195.css +1 -0
- codex/static_root/assets/VTable-DflzroDq.160504d82195.css.br +0 -0
- codex/static_root/assets/VTable-DflzroDq.160504d82195.css.gz +0 -0
- codex/static_root/assets/VTable-DflzroDq.css +1 -0
- codex/static_root/assets/VTable-DflzroDq.css.br +0 -0
- codex/static_root/assets/VTable-DflzroDq.css.gz +0 -0
- codex/static_root/assets/VToolbar-C5QbEltS.6de3ffa35a37.css +1 -0
- codex/static_root/assets/VToolbar-C5QbEltS.6de3ffa35a37.css.br +0 -0
- codex/static_root/assets/VToolbar-C5QbEltS.6de3ffa35a37.css.gz +0 -0
- codex/static_root/assets/VToolbar-C5QbEltS.css +1 -0
- codex/static_root/assets/VToolbar-C5QbEltS.css.br +0 -0
- codex/static_root/assets/VToolbar-C5QbEltS.css.gz +0 -0
- codex/static_root/assets/VToolbar-_8U2Zy9o.95e33cc12ad9.js +7 -0
- codex/static_root/assets/VToolbar-_8U2Zy9o.95e33cc12ad9.js.br +0 -0
- codex/static_root/assets/VToolbar-_8U2Zy9o.95e33cc12ad9.js.gz +0 -0
- codex/static_root/assets/VToolbar-_8U2Zy9o.js +7 -0
- codex/static_root/assets/VToolbar-_8U2Zy9o.js.br +0 -0
- codex/static_root/assets/VToolbar-_8U2Zy9o.js.gz +0 -0
- codex/static_root/assets/VWindowItem-BL-3IAQN.d6854cb3e107.js +1 -0
- codex/static_root/assets/VWindowItem-BL-3IAQN.d6854cb3e107.js.br +0 -0
- codex/static_root/assets/VWindowItem-BL-3IAQN.d6854cb3e107.js.gz +0 -0
- codex/static_root/assets/VWindowItem-BL-3IAQN.js +1 -0
- codex/static_root/assets/VWindowItem-BL-3IAQN.js.br +0 -0
- codex/static_root/assets/VWindowItem-BL-3IAQN.js.gz +0 -0
- codex/static_root/assets/{VWindowItem--TlRwQ5R.css โ VWindowItem-ByIod57Y.css} +1 -1
- codex/static_root/assets/VWindowItem-ByIod57Y.css.br +0 -0
- codex/static_root/assets/VWindowItem-ByIod57Y.css.gz +0 -0
- codex/static_root/assets/{VWindowItem--TlRwQ5R.fe195e056b07.css โ VWindowItem-ByIod57Y.f7fb19752bf3.css} +1 -1
- codex/static_root/assets/VWindowItem-ByIod57Y.f7fb19752bf3.css.br +0 -0
- codex/static_root/assets/VWindowItem-ByIod57Y.f7fb19752bf3.css.gz +0 -0
- codex/static_root/assets/admin-DB_W6AqP.c4baa268ac64.js +1 -0
- codex/static_root/assets/admin-DB_W6AqP.c4baa268ac64.js.br +0 -0
- codex/static_root/assets/admin-DB_W6AqP.c4baa268ac64.js.gz +0 -0
- codex/static_root/assets/admin-DB_W6AqP.js +1 -0
- codex/static_root/assets/admin-DB_W6AqP.js.br +0 -0
- codex/static_root/assets/admin-DB_W6AqP.js.gz +0 -0
- codex/static_root/assets/{admin-MwCSFwIp.6de10f13b01b.css โ admin-Df82-Qcj.4c3f0406ee54.css} +1 -1
- codex/static_root/assets/admin-Df82-Qcj.4c3f0406ee54.css.br +0 -0
- codex/static_root/assets/admin-Df82-Qcj.4c3f0406ee54.css.gz +0 -0
- codex/static_root/assets/{admin-MwCSFwIp.css โ admin-Df82-Qcj.css} +1 -1
- codex/static_root/assets/admin-Df82-Qcj.css.br +0 -0
- codex/static_root/assets/admin-Df82-Qcj.css.gz +0 -0
- codex/static_root/assets/{admin-drawer-panel-qf94Ysts.css โ admin-drawer-panel-CsBUDBLE.08509b8ed15f.css} +1 -1
- codex/static_root/assets/admin-drawer-panel-CsBUDBLE.08509b8ed15f.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-CsBUDBLE.08509b8ed15f.css.gz +0 -0
- codex/static_root/assets/{admin-drawer-panel-qf94Ysts.c0696c636fab.css โ admin-drawer-panel-CsBUDBLE.css} +1 -1
- codex/static_root/assets/admin-drawer-panel-CsBUDBLE.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-CsBUDBLE.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-d5nWfOhv.9ff3ea099676.js +30 -0
- codex/static_root/assets/admin-drawer-panel-d5nWfOhv.9ff3ea099676.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-d5nWfOhv.9ff3ea099676.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-d5nWfOhv.js +30 -0
- codex/static_root/assets/admin-drawer-panel-d5nWfOhv.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-d5nWfOhv.js.gz +0 -0
- codex/static_root/assets/browser-C8SJwVGz.0f7daf93b064.css +1 -0
- codex/static_root/assets/browser-C8SJwVGz.0f7daf93b064.css.br +0 -0
- codex/static_root/assets/browser-C8SJwVGz.0f7daf93b064.css.gz +0 -0
- codex/static_root/assets/browser-C8SJwVGz.css +1 -0
- codex/static_root/assets/browser-C8SJwVGz.css.br +0 -0
- codex/static_root/assets/browser-C8SJwVGz.css.gz +0 -0
- codex/static_root/assets/browser-WCnHQaMI.83b81e02a6c9.js +1 -0
- codex/static_root/assets/browser-WCnHQaMI.83b81e02a6c9.js.br +0 -0
- codex/static_root/assets/browser-WCnHQaMI.83b81e02a6c9.js.gz +0 -0
- codex/static_root/assets/browser-WCnHQaMI.js +1 -0
- codex/static_root/assets/browser-WCnHQaMI.js.br +0 -0
- codex/static_root/assets/browser-WCnHQaMI.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-D_VAW-nW.d1c607e833e1.js +1 -0
- codex/static_root/assets/change-password-dialog-D_VAW-nW.d1c607e833e1.js.br +0 -0
- codex/static_root/assets/change-password-dialog-D_VAW-nW.d1c607e833e1.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-D_VAW-nW.js +1 -0
- codex/static_root/assets/change-password-dialog-D_VAW-nW.js.br +0 -0
- codex/static_root/assets/change-password-dialog-D_VAW-nW.js.gz +0 -0
- codex/static_root/assets/{confirm-dialog-oEnGefnv.b1227348d465.js โ confirm-dialog-cCUg3s1r.619d5623b44d.js} +1 -1
- codex/static_root/assets/confirm-dialog-cCUg3s1r.619d5623b44d.js.br +0 -0
- codex/static_root/assets/confirm-dialog-cCUg3s1r.619d5623b44d.js.gz +0 -0
- codex/static_root/assets/{confirm-dialog-oEnGefnv.js โ confirm-dialog-cCUg3s1r.js} +1 -1
- codex/static_root/assets/confirm-dialog-cCUg3s1r.js.br +0 -0
- codex/static_root/assets/confirm-dialog-cCUg3s1r.js.gz +0 -0
- codex/static_root/assets/{confirm-footer-wmmDHzIL.04fb93e7daf3.css โ confirm-footer-VFepxcJs.4150131304bd.css} +1 -1
- codex/static_root/assets/confirm-footer-VFepxcJs.4150131304bd.css.br +0 -0
- codex/static_root/assets/confirm-footer-VFepxcJs.4150131304bd.css.gz +0 -0
- codex/static_root/assets/{confirm-footer-wmmDHzIL.css โ confirm-footer-VFepxcJs.css} +1 -1
- codex/static_root/assets/confirm-footer-VFepxcJs.css.br +0 -0
- codex/static_root/assets/confirm-footer-VFepxcJs.css.gz +0 -0
- codex/static_root/assets/confirm-footer-g19OD_Ro.9511476b5d4d.js +1 -0
- codex/static_root/assets/confirm-footer-g19OD_Ro.9511476b5d4d.js.br +0 -0
- codex/static_root/assets/confirm-footer-g19OD_Ro.9511476b5d4d.js.gz +0 -0
- codex/static_root/assets/confirm-footer-g19OD_Ro.js +1 -0
- codex/static_root/assets/confirm-footer-g19OD_Ro.js.br +0 -0
- codex/static_root/assets/confirm-footer-g19OD_Ro.js.gz +0 -0
- codex/static_root/assets/{datetime-column-wfJgH61c.5e9a5e4f4942.js โ datetime-column-D40geMT4.7b07d44a9935.js} +1 -1
- codex/static_root/assets/datetime-column-D40geMT4.7b07d44a9935.js.br +0 -0
- codex/static_root/assets/datetime-column-D40geMT4.7b07d44a9935.js.gz +0 -0
- codex/static_root/assets/{datetime-column-wfJgH61c.js โ datetime-column-D40geMT4.js} +1 -1
- codex/static_root/assets/datetime-column-D40geMT4.js.br +0 -0
- codex/static_root/assets/datetime-column-D40geMT4.js.gz +0 -0
- codex/static_root/assets/filter-DbyVndkN.3a89dcf851f7.js +1 -0
- codex/static_root/assets/filter-DbyVndkN.3a89dcf851f7.js.br +0 -0
- codex/static_root/assets/filter-DbyVndkN.3a89dcf851f7.js.gz +0 -0
- codex/static_root/assets/filter-DbyVndkN.js +1 -0
- codex/static_root/assets/filter-DbyVndkN.js.br +0 -0
- codex/static_root/assets/filter-DbyVndkN.js.gz +0 -0
- codex/static_root/assets/{flag-tab-g9dmSvT7.64fc848dba03.js โ flag-tab-Beq9QsKv.1caf7342b359.js} +1 -1
- codex/static_root/assets/flag-tab-Beq9QsKv.1caf7342b359.js.br +0 -0
- codex/static_root/assets/flag-tab-Beq9QsKv.1caf7342b359.js.gz +0 -0
- codex/static_root/assets/{flag-tab-g9dmSvT7.js โ flag-tab-Beq9QsKv.js} +1 -1
- codex/static_root/assets/flag-tab-Beq9QsKv.js.br +0 -0
- codex/static_root/assets/flag-tab-Beq9QsKv.js.gz +0 -0
- codex/static_root/assets/group-tab-D_Xc9f5l.48613b45cd25.js +1 -0
- codex/static_root/assets/group-tab-D_Xc9f5l.48613b45cd25.js.br +0 -0
- codex/static_root/assets/group-tab-D_Xc9f5l.48613b45cd25.js.gz +0 -0
- codex/static_root/assets/group-tab-D_Xc9f5l.js +1 -0
- codex/static_root/assets/group-tab-D_Xc9f5l.js.br +0 -0
- codex/static_root/assets/group-tab-D_Xc9f5l.js.gz +0 -0
- codex/static_root/assets/http-error-MvZTJwze.c2f1ef9de95d.js +1 -0
- codex/static_root/assets/http-error-MvZTJwze.c2f1ef9de95d.js.br +0 -0
- codex/static_root/assets/http-error-MvZTJwze.c2f1ef9de95d.js.gz +0 -0
- codex/static_root/assets/http-error-MvZTJwze.js +1 -0
- codex/static_root/assets/http-error-MvZTJwze.js.br +0 -0
- codex/static_root/assets/http-error-MvZTJwze.js.gz +0 -0
- codex/static_root/assets/library-tab-BekMoaXp.b6db20b5b272.js +1 -0
- codex/static_root/assets/library-tab-BekMoaXp.b6db20b5b272.js.br +0 -0
- codex/static_root/assets/library-tab-BekMoaXp.b6db20b5b272.js.gz +0 -0
- codex/static_root/assets/library-tab-BekMoaXp.js +1 -0
- codex/static_root/assets/library-tab-BekMoaXp.js.br +0 -0
- codex/static_root/assets/library-tab-BekMoaXp.js.gz +0 -0
- codex/static_root/assets/main-CXxSyR20.34af24d11af1.js +37 -0
- codex/static_root/assets/main-CXxSyR20.34af24d11af1.js.br +0 -0
- codex/static_root/assets/main-CXxSyR20.34af24d11af1.js.gz +0 -0
- codex/static_root/assets/main-CXxSyR20.js +37 -0
- codex/static_root/assets/main-CXxSyR20.js.br +0 -0
- codex/static_root/assets/main-CXxSyR20.js.gz +0 -0
- codex/static_root/assets/{main-eLpQR-nY.052265de7d69.css โ main-CacfwsKA.4f849ef1c5db.css} +2 -2
- codex/static_root/assets/main-CacfwsKA.4f849ef1c5db.css.br +0 -0
- codex/static_root/assets/main-CacfwsKA.4f849ef1c5db.css.gz +0 -0
- codex/static_root/assets/{main-eLpQR-nY.css โ main-CacfwsKA.css} +2 -2
- codex/static_root/assets/main-CacfwsKA.css.br +0 -0
- codex/static_root/assets/main-CacfwsKA.css.gz +0 -0
- codex/static_root/assets/metadata-dialog-Bs652L_u.c9fc03399abd.js +1 -0
- codex/static_root/assets/metadata-dialog-Bs652L_u.c9fc03399abd.js.br +0 -0
- codex/static_root/assets/metadata-dialog-Bs652L_u.c9fc03399abd.js.gz +0 -0
- codex/static_root/assets/metadata-dialog-Bs652L_u.js +1 -0
- codex/static_root/assets/metadata-dialog-Bs652L_u.js.br +0 -0
- codex/static_root/assets/metadata-dialog-Bs652L_u.js.gz +0 -0
- codex/static_root/assets/metadata-dialog-DPxDDFDy.34b7c11509ec.css +1 -0
- codex/static_root/assets/metadata-dialog-DPxDDFDy.34b7c11509ec.css.br +0 -0
- codex/static_root/assets/metadata-dialog-DPxDDFDy.34b7c11509ec.css.gz +0 -0
- codex/static_root/assets/metadata-dialog-DPxDDFDy.css +1 -0
- codex/static_root/assets/metadata-dialog-DPxDDFDy.css.br +0 -0
- codex/static_root/assets/metadata-dialog-DPxDDFDy.css.gz +0 -0
- codex/static_root/assets/pdf-doc-CMzaSV_K.8cd4b3e65f9a.css +1 -0
- codex/static_root/assets/pdf-doc-CMzaSV_K.8cd4b3e65f9a.css.br +0 -0
- codex/static_root/assets/pdf-doc-CMzaSV_K.8cd4b3e65f9a.css.gz +0 -0
- codex/static_root/assets/pdf-doc-CMzaSV_K.css +1 -0
- codex/static_root/assets/pdf-doc-CMzaSV_K.css.br +0 -0
- codex/static_root/assets/pdf-doc-CMzaSV_K.css.gz +0 -0
- codex/static_root/assets/pdf-doc-CQL4P7bj.3a68571faee3.js +35 -0
- codex/static_root/assets/pdf-doc-CQL4P7bj.3a68571faee3.js.br +0 -0
- codex/static_root/assets/pdf-doc-CQL4P7bj.3a68571faee3.js.gz +0 -0
- codex/static_root/assets/pdf-doc-CQL4P7bj.js +35 -0
- codex/static_root/assets/pdf-doc-CQL4P7bj.js.br +0 -0
- codex/static_root/assets/pdf-doc-CQL4P7bj.js.gz +0 -0
- codex/static_root/assets/reader-B4hkFEOb.d0dd217d177e.js +7 -0
- codex/static_root/assets/reader-B4hkFEOb.d0dd217d177e.js.br +0 -0
- codex/static_root/assets/reader-B4hkFEOb.d0dd217d177e.js.gz +0 -0
- codex/static_root/assets/reader-B4hkFEOb.js +7 -0
- codex/static_root/assets/reader-B4hkFEOb.js.br +0 -0
- codex/static_root/assets/reader-B4hkFEOb.js.gz +0 -0
- codex/static_root/assets/reader-DHZzx6Jl.17879ea49fff.css +1 -0
- codex/static_root/assets/reader-DHZzx6Jl.17879ea49fff.css.br +0 -0
- codex/static_root/assets/reader-DHZzx6Jl.17879ea49fff.css.gz +0 -0
- codex/static_root/assets/reader-DHZzx6Jl.css +1 -0
- codex/static_root/assets/reader-DHZzx6Jl.css.br +0 -0
- codex/static_root/assets/reader-DHZzx6Jl.css.gz +0 -0
- codex/static_root/assets/stats-tab-BTZLMBCU.7e0a9547c12e.css +1 -0
- codex/static_root/assets/stats-tab-BTZLMBCU.7e0a9547c12e.css.br +0 -0
- codex/static_root/assets/stats-tab-BTZLMBCU.7e0a9547c12e.css.gz +0 -0
- codex/static_root/assets/stats-tab-BTZLMBCU.css +1 -0
- codex/static_root/assets/stats-tab-BTZLMBCU.css.br +0 -0
- codex/static_root/assets/stats-tab-BTZLMBCU.css.gz +0 -0
- codex/static_root/assets/stats-tab-Cb-54N4z.9eec298d5175.js +1 -0
- codex/static_root/assets/stats-tab-Cb-54N4z.9eec298d5175.js.br +0 -0
- codex/static_root/assets/stats-tab-Cb-54N4z.9eec298d5175.js.gz +0 -0
- codex/static_root/assets/stats-tab-Cb-54N4z.js +1 -0
- codex/static_root/assets/stats-tab-Cb-54N4z.js.br +0 -0
- codex/static_root/assets/stats-tab-Cb-54N4z.js.gz +0 -0
- codex/static_root/assets/task-tab-DoX9OA37.9bb355f36dbf.css +1 -0
- codex/static_root/assets/task-tab-DoX9OA37.9bb355f36dbf.css.br +2 -0
- codex/static_root/assets/task-tab-DoX9OA37.9bb355f36dbf.css.gz +0 -0
- codex/static_root/assets/task-tab-DoX9OA37.css +1 -0
- codex/static_root/assets/task-tab-DoX9OA37.css.br +2 -0
- codex/static_root/assets/task-tab-DoX9OA37.css.gz +0 -0
- codex/static_root/assets/task-tab-QhcQNvG8.ed4e7a9b6d9d.js +1 -0
- codex/static_root/assets/task-tab-QhcQNvG8.ed4e7a9b6d9d.js.br +0 -0
- codex/static_root/assets/task-tab-QhcQNvG8.ed4e7a9b6d9d.js.gz +0 -0
- codex/static_root/assets/task-tab-QhcQNvG8.js +1 -0
- codex/static_root/assets/task-tab-QhcQNvG8.js.br +0 -0
- codex/static_root/assets/task-tab-QhcQNvG8.js.gz +0 -0
- codex/static_root/assets/to-case-kUm8NPpW.5b3369f511b8.js +1 -0
- codex/static_root/assets/to-case-kUm8NPpW.js +1 -0
- codex/static_root/assets/user-tab-BuianwBU.df5cefd3b550.js +1 -0
- codex/static_root/assets/user-tab-BuianwBU.df5cefd3b550.js.br +0 -0
- codex/static_root/assets/user-tab-BuianwBU.df5cefd3b550.js.gz +0 -0
- codex/static_root/assets/user-tab-BuianwBU.js +1 -0
- codex/static_root/assets/user-tab-BuianwBU.js.br +0 -0
- codex/static_root/assets/user-tab-BuianwBU.js.gz +0 -0
- codex/static_root/manifest.bb70f9bc6689.json +573 -0
- codex/static_root/manifest.bb70f9bc6689.json.br +0 -0
- codex/static_root/manifest.bb70f9bc6689.json.gz +0 -0
- codex/static_root/manifest.json +378 -377
- codex/static_root/manifest.json.br +0 -0
- codex/static_root/manifest.json.gz +0 -0
- codex/static_root/rest_framework/css/bootstrap-tweaks.css +4 -0
- codex/static_root/rest_framework/css/bootstrap-tweaks.css.br +0 -0
- codex/static_root/rest_framework/css/bootstrap-tweaks.css.gz +0 -0
- codex/static_root/rest_framework/css/{bootstrap-tweaks.46ed116b0edd.css โ bootstrap-tweaks.ee4ee6acf9eb.css} +4 -0
- codex/static_root/rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.css.br +0 -0
- codex/static_root/rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.css.gz +0 -0
- codex/static_root/rest_framework/js/{ajax-form.0ea6e6052ab5.js โ ajax-form.4e1cdcb7acab.js} +6 -0
- codex/static_root/rest_framework/js/ajax-form.4e1cdcb7acab.js.br +0 -0
- codex/static_root/rest_framework/js/ajax-form.4e1cdcb7acab.js.gz +0 -0
- codex/static_root/rest_framework/js/ajax-form.js +6 -0
- codex/static_root/rest_framework/js/ajax-form.js.br +0 -0
- codex/static_root/rest_framework/js/ajax-form.js.gz +0 -0
- codex/static_root/rest_framework/js/{csrf.969930007329.js โ csrf.455080a7b2ce.js} +1 -0
- codex/static_root/rest_framework/js/csrf.455080a7b2ce.js.br +0 -0
- codex/static_root/rest_framework/js/csrf.455080a7b2ce.js.gz +0 -0
- codex/static_root/rest_framework/js/csrf.js +1 -0
- codex/static_root/rest_framework/js/csrf.js.br +0 -0
- codex/static_root/rest_framework/js/csrf.js.gz +0 -0
- codex/static_root/rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js +2 -0
- codex/static_root/rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js.br +0 -0
- codex/static_root/rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js.gz +0 -0
- codex/static_root/rest_framework/js/jquery-3.7.1.min.js +2 -0
- codex/static_root/rest_framework/js/jquery-3.7.1.min.js.br +0 -0
- codex/static_root/rest_framework/js/jquery-3.7.1.min.js.gz +0 -0
- codex/static_root/rest_framework/js/load-ajax-form.8cdb3a9f3466.js +3 -0
- codex/static_root/rest_framework/js/load-ajax-form.8cdb3a9f3466.js.br +0 -0
- codex/static_root/rest_framework/js/load-ajax-form.js +3 -0
- codex/static_root/rest_framework/js/load-ajax-form.js.br +0 -0
- codex/static_root/staticfiles.json +1 -1
- codex/status.py +1 -0
- codex/status_controller.py +1 -0
- codex/threads.py +1 -0
- codex/urls/api/admin.py +1 -0
- codex/urls/api/auth.py +1 -0
- codex/urls/api/browser.py +7 -6
- codex/urls/api/reader.py +3 -5
- codex/urls/api/root.py +1 -0
- codex/urls/api/v3.py +1 -0
- codex/urls/app.py +10 -0
- codex/urls/const.py +6 -0
- codex/urls/converters.py +1 -0
- codex/urls/opds/authentication.py +3 -3
- codex/urls/opds/binary.py +2 -3
- codex/urls/opds/root.py +1 -0
- codex/urls/opds/v1.py +4 -4
- codex/urls/opds/v2.py +4 -1
- codex/urls/pwa.py +5 -4
- codex/urls/root.py +1 -2
- codex/version.py +1 -0
- codex/views/admin/api_key.py +1 -0
- codex/views/admin/flag.py +1 -0
- codex/views/admin/group.py +1 -0
- codex/views/admin/library.py +1 -0
- codex/views/admin/stats.py +1 -0
- codex/views/admin/tasks.py +1 -0
- codex/views/admin/user.py +1 -0
- codex/views/auth.py +1 -0
- codex/views/bookmark.py +42 -5
- codex/views/browser/base.py +1 -0
- codex/views/browser/browser.py +1 -0
- codex/views/browser/browser_annotations.py +6 -0
- codex/views/browser/browser_order_by.py +1 -0
- codex/views/browser/choices.py +1 -0
- codex/views/browser/filters/bookmark.py +1 -0
- codex/views/browser/filters/field.py +1 -0
- codex/views/browser/filters/group.py +1 -0
- codex/views/browser/filters/search.py +1 -0
- codex/views/browser/metadata.py +18 -12
- codex/views/browser/session.py +1 -0
- codex/views/const.py +1 -0
- codex/views/cover.py +1 -0
- codex/views/download.py +18 -2
- codex/views/error.py +1 -0
- codex/views/frontend.py +1 -0
- codex/views/opds/authentication_v1.py +1 -0
- codex/views/opds/binary.py +1 -0
- codex/views/opds/util.py +1 -0
- codex/views/opds/v1/data.py +1 -0
- codex/views/opds/v1/entry/data.py +1 -0
- codex/views/opds/v1/entry/entry.py +1 -0
- codex/views/opds/v1/entry/links.py +1 -0
- codex/views/opds/v1/facets.py +1 -0
- codex/views/opds/v1/feed.py +1 -0
- codex/views/opds/v1/links.py +1 -0
- codex/views/opds/v1/opensearch_v1.py +1 -0
- codex/views/opds/v2/const.py +1 -0
- codex/views/opds/v2/feed.py +1 -0
- codex/views/opds/v2/links.py +1 -0
- codex/views/opds/v2/publications.py +1 -0
- codex/views/opds/v2/top_links.py +1 -0
- codex/views/pwa.py +1 -0
- codex/views/reader/reader.py +3 -0
- codex/views/reader/session.py +1 -0
- codex/views/session.py +1 -0
- codex/views/template.py +1 -0
- codex/views/version.py +1 -0
- codex/websockets/aio_queue.py +1 -0
- codex/websockets/consumers.py +1 -0
- codex/websockets/listener.py +1 -0
- codex/worker_base.py +1 -0
- {codex-1.5.0a1.dist-info โ codex-1.5.0a3.dist-info}/METADATA +64 -28
- codex-1.5.0a3.dist-info/RECORD +935 -0
- {codex-1.5.0a1.dist-info โ codex-1.5.0a3.dist-info}/WHEEL +1 -1
- codex/static_root/assets/VCheckbox-Flv8K2j6.89239120bde3.css +0 -1
- codex/static_root/assets/VCheckbox-Flv8K2j6.89239120bde3.css.br +0 -0
- codex/static_root/assets/VCheckbox-Flv8K2j6.css +0 -1
- codex/static_root/assets/VCheckbox-Flv8K2j6.css.br +0 -0
- codex/static_root/assets/VCheckbox-lZu_HyjX.55532edda1c7.js +0 -1
- codex/static_root/assets/VCheckbox-lZu_HyjX.55532edda1c7.js.br +0 -0
- codex/static_root/assets/VCheckbox-lZu_HyjX.55532edda1c7.js.gz +0 -0
- codex/static_root/assets/VCheckbox-lZu_HyjX.js +0 -1
- codex/static_root/assets/VCheckbox-lZu_HyjX.js.br +0 -0
- codex/static_root/assets/VCheckbox-lZu_HyjX.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-DTj7-ezn.38d5f5ce18bb.js +0 -1
- codex/static_root/assets/VCheckboxBtn-DTj7-ezn.38d5f5ce18bb.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-DTj7-ezn.38d5f5ce18bb.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-DTj7-ezn.js +0 -1
- codex/static_root/assets/VCheckboxBtn-DTj7-ezn.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-DTj7-ezn.js.gz +0 -0
- codex/static_root/assets/VCombobox-JDYDwU3-.5b3aabc73eeb.css +0 -1
- codex/static_root/assets/VCombobox-JDYDwU3-.5b3aabc73eeb.css.br +0 -0
- codex/static_root/assets/VCombobox-JDYDwU3-.5b3aabc73eeb.css.gz +0 -0
- codex/static_root/assets/VCombobox-JDYDwU3-.css +0 -1
- codex/static_root/assets/VCombobox-JDYDwU3-.css.br +0 -0
- codex/static_root/assets/VCombobox-JDYDwU3-.css.gz +0 -0
- codex/static_root/assets/VCombobox-yrK61bne.46ffe20c03cb.js +0 -1
- codex/static_root/assets/VCombobox-yrK61bne.46ffe20c03cb.js.br +0 -0
- codex/static_root/assets/VCombobox-yrK61bne.46ffe20c03cb.js.gz +0 -0
- codex/static_root/assets/VCombobox-yrK61bne.js +0 -1
- codex/static_root/assets/VCombobox-yrK61bne.js.br +0 -0
- codex/static_root/assets/VCombobox-yrK61bne.js.gz +0 -0
- codex/static_root/assets/VDataTableVirtual-XCcE5Jzw.38e36085850a.js +0 -1
- codex/static_root/assets/VDataTableVirtual-XCcE5Jzw.38e36085850a.js.br +0 -0
- codex/static_root/assets/VDataTableVirtual-XCcE5Jzw.38e36085850a.js.gz +0 -0
- codex/static_root/assets/VDataTableVirtual-XCcE5Jzw.js +0 -1
- codex/static_root/assets/VDataTableVirtual-XCcE5Jzw.js.br +0 -0
- codex/static_root/assets/VDataTableVirtual-XCcE5Jzw.js.gz +0 -0
- codex/static_root/assets/VDataTableVirtual-cJ9EDO4X.1a711f5f2fc0.css.br +0 -0
- codex/static_root/assets/VDataTableVirtual-cJ9EDO4X.1a711f5f2fc0.css.gz +0 -0
- codex/static_root/assets/VDataTableVirtual-cJ9EDO4X.css.br +0 -0
- codex/static_root/assets/VDataTableVirtual-cJ9EDO4X.css.gz +0 -0
- codex/static_root/assets/VExpansionPanel-CNbQXKrU.0eb9e9b66a59.js +0 -1
- codex/static_root/assets/VExpansionPanel-CNbQXKrU.0eb9e9b66a59.js.br +0 -0
- codex/static_root/assets/VExpansionPanel-CNbQXKrU.0eb9e9b66a59.js.gz +0 -0
- codex/static_root/assets/VExpansionPanel-CNbQXKrU.js +0 -1
- codex/static_root/assets/VExpansionPanel-CNbQXKrU.js.br +0 -0
- codex/static_root/assets/VExpansionPanel-CNbQXKrU.js.gz +0 -0
- codex/static_root/assets/VExpansionPanel-gdSap9-6.212a9add7ff2.css.br +0 -0
- codex/static_root/assets/VExpansionPanel-gdSap9-6.212a9add7ff2.css.gz +0 -0
- codex/static_root/assets/VExpansionPanel-gdSap9-6.css.br +0 -0
- codex/static_root/assets/VExpansionPanel-gdSap9-6.css.gz +0 -0
- codex/static_root/assets/VMain-MR9pvpIS.ffd0ac6a1519.js.br +0 -0
- codex/static_root/assets/VMain-MR9pvpIS.ffd0ac6a1519.js.gz +0 -0
- codex/static_root/assets/VMain-MR9pvpIS.js.br +0 -0
- codex/static_root/assets/VMain-MR9pvpIS.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-VGTs8Mzg.00e15ce8aed7.js +0 -1
- codex/static_root/assets/VRadioGroup-VGTs8Mzg.00e15ce8aed7.js.br +0 -4
- codex/static_root/assets/VRadioGroup-VGTs8Mzg.00e15ce8aed7.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-VGTs8Mzg.js +0 -1
- codex/static_root/assets/VRadioGroup-VGTs8Mzg.js.br +0 -4
- codex/static_root/assets/VRadioGroup-VGTs8Mzg.js.gz +0 -0
- codex/static_root/assets/VSelect-3jR8Um8C.0c8560b189db.css +0 -1
- codex/static_root/assets/VSelect-3jR8Um8C.0c8560b189db.css.br +0 -0
- codex/static_root/assets/VSelect-3jR8Um8C.0c8560b189db.css.gz +0 -0
- codex/static_root/assets/VSelect-3jR8Um8C.css +0 -1
- codex/static_root/assets/VSelect-3jR8Um8C.css.br +0 -0
- codex/static_root/assets/VSelect-3jR8Um8C.css.gz +0 -0
- codex/static_root/assets/VSelect-X8dbnoNh.ecc201f01af0.js +0 -1
- codex/static_root/assets/VSelect-X8dbnoNh.ecc201f01af0.js.br +0 -0
- codex/static_root/assets/VSelect-X8dbnoNh.ecc201f01af0.js.gz +0 -0
- codex/static_root/assets/VSelect-X8dbnoNh.js +0 -1
- codex/static_root/assets/VSelect-X8dbnoNh.js.br +0 -0
- codex/static_root/assets/VSelect-X8dbnoNh.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-7--lqaSd.b5af1380564c.js +0 -1
- codex/static_root/assets/VSelectionControl-7--lqaSd.b5af1380564c.js.br +0 -0
- codex/static_root/assets/VSelectionControl-7--lqaSd.b5af1380564c.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-7--lqaSd.js +0 -1
- codex/static_root/assets/VSelectionControl-7--lqaSd.js.br +0 -0
- codex/static_root/assets/VSelectionControl-7--lqaSd.js.gz +0 -0
- codex/static_root/assets/VTable-XNR_fTYM.4be31a3a6cd7.js.br +0 -0
- codex/static_root/assets/VTable-XNR_fTYM.4be31a3a6cd7.js.gz +0 -0
- codex/static_root/assets/VTable-XNR_fTYM.js.br +0 -0
- codex/static_root/assets/VTable-XNR_fTYM.js.gz +0 -0
- codex/static_root/assets/VTable-aiByCThw.85589025b93b.css +0 -1
- codex/static_root/assets/VTable-aiByCThw.85589025b93b.css.br +0 -0
- codex/static_root/assets/VTable-aiByCThw.85589025b93b.css.gz +0 -0
- codex/static_root/assets/VTable-aiByCThw.css +0 -1
- codex/static_root/assets/VTable-aiByCThw.css.br +0 -0
- codex/static_root/assets/VTable-aiByCThw.css.gz +0 -0
- codex/static_root/assets/VTextField-1_gRJ3Nt.6a1540e0ed41.js +0 -1
- codex/static_root/assets/VTextField-1_gRJ3Nt.6a1540e0ed41.js.br +0 -0
- codex/static_root/assets/VTextField-1_gRJ3Nt.6a1540e0ed41.js.gz +0 -0
- codex/static_root/assets/VTextField-1_gRJ3Nt.js +0 -1
- codex/static_root/assets/VTextField-1_gRJ3Nt.js.br +0 -0
- codex/static_root/assets/VTextField-1_gRJ3Nt.js.gz +0 -0
- codex/static_root/assets/VTextField-8NJPNEpH.190723039dea.css.br +0 -0
- codex/static_root/assets/VTextField-8NJPNEpH.190723039dea.css.gz +0 -0
- codex/static_root/assets/VTextField-8NJPNEpH.css.br +0 -0
- codex/static_root/assets/VTextField-8NJPNEpH.css.gz +0 -0
- codex/static_root/assets/VToolbar-PLads6MY.css +0 -1
- codex/static_root/assets/VToolbar-PLads6MY.css.br +0 -0
- codex/static_root/assets/VToolbar-PLads6MY.css.gz +0 -0
- codex/static_root/assets/VToolbar-PLads6MY.ebe8dfc407e8.css +0 -1
- codex/static_root/assets/VToolbar-PLads6MY.ebe8dfc407e8.css.br +0 -0
- codex/static_root/assets/VToolbar-PLads6MY.ebe8dfc407e8.css.gz +0 -0
- codex/static_root/assets/VToolbar-g8yJLQO4.87d49e1177ce.js +0 -7
- codex/static_root/assets/VToolbar-g8yJLQO4.87d49e1177ce.js.br +0 -0
- codex/static_root/assets/VToolbar-g8yJLQO4.87d49e1177ce.js.gz +0 -0
- codex/static_root/assets/VToolbar-g8yJLQO4.js +0 -7
- codex/static_root/assets/VToolbar-g8yJLQO4.js.br +0 -0
- codex/static_root/assets/VToolbar-g8yJLQO4.js.gz +0 -0
- codex/static_root/assets/VWindowItem--TlRwQ5R.css.br +0 -0
- codex/static_root/assets/VWindowItem--TlRwQ5R.css.gz +0 -0
- codex/static_root/assets/VWindowItem--TlRwQ5R.fe195e056b07.css.br +0 -0
- codex/static_root/assets/VWindowItem--TlRwQ5R.fe195e056b07.css.gz +0 -0
- codex/static_root/assets/VWindowItem-i5tFRaI4.8a8af6c6de17.js +0 -1
- codex/static_root/assets/VWindowItem-i5tFRaI4.8a8af6c6de17.js.br +0 -0
- codex/static_root/assets/VWindowItem-i5tFRaI4.8a8af6c6de17.js.gz +0 -0
- codex/static_root/assets/VWindowItem-i5tFRaI4.js +0 -1
- codex/static_root/assets/VWindowItem-i5tFRaI4.js.br +0 -0
- codex/static_root/assets/VWindowItem-i5tFRaI4.js.gz +0 -0
- codex/static_root/assets/admin-MwCSFwIp.6de10f13b01b.css.br +0 -0
- codex/static_root/assets/admin-MwCSFwIp.6de10f13b01b.css.gz +0 -0
- codex/static_root/assets/admin-MwCSFwIp.css.br +0 -0
- codex/static_root/assets/admin-MwCSFwIp.css.gz +0 -0
- codex/static_root/assets/admin-Vvc8IQ8V.f128fffcff98.js +0 -1
- codex/static_root/assets/admin-Vvc8IQ8V.f128fffcff98.js.br +0 -0
- codex/static_root/assets/admin-Vvc8IQ8V.f128fffcff98.js.gz +0 -0
- codex/static_root/assets/admin-Vvc8IQ8V.js +0 -1
- codex/static_root/assets/admin-Vvc8IQ8V.js.br +0 -0
- codex/static_root/assets/admin-Vvc8IQ8V.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-qf94Ysts.c0696c636fab.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-qf94Ysts.c0696c636fab.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-qf94Ysts.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-qf94Ysts.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-vjNsHbQp.e17cb629a39c.js +0 -33
- codex/static_root/assets/admin-drawer-panel-vjNsHbQp.e17cb629a39c.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-vjNsHbQp.e17cb629a39c.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-vjNsHbQp.js +0 -33
- codex/static_root/assets/admin-drawer-panel-vjNsHbQp.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-vjNsHbQp.js.gz +0 -0
- codex/static_root/assets/browser-R-Dbyfan.380647195802.js +0 -1
- codex/static_root/assets/browser-R-Dbyfan.380647195802.js.br +0 -0
- codex/static_root/assets/browser-R-Dbyfan.380647195802.js.gz +0 -0
- codex/static_root/assets/browser-R-Dbyfan.js +0 -1
- codex/static_root/assets/browser-R-Dbyfan.js.br +0 -0
- codex/static_root/assets/browser-R-Dbyfan.js.gz +0 -0
- codex/static_root/assets/browser-hLiDgCIH.6dd225a38a22.css +0 -1
- codex/static_root/assets/browser-hLiDgCIH.6dd225a38a22.css.br +0 -0
- codex/static_root/assets/browser-hLiDgCIH.6dd225a38a22.css.gz +0 -0
- codex/static_root/assets/browser-hLiDgCIH.css +0 -1
- codex/static_root/assets/browser-hLiDgCIH.css.br +0 -0
- codex/static_root/assets/browser-hLiDgCIH.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-xWZubfnu.f721e940b573.js +0 -1
- codex/static_root/assets/change-password-dialog-xWZubfnu.f721e940b573.js.br +0 -0
- codex/static_root/assets/change-password-dialog-xWZubfnu.f721e940b573.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-xWZubfnu.js +0 -1
- codex/static_root/assets/change-password-dialog-xWZubfnu.js.br +0 -0
- codex/static_root/assets/change-password-dialog-xWZubfnu.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-oEnGefnv.b1227348d465.js.br +0 -0
- codex/static_root/assets/confirm-dialog-oEnGefnv.b1227348d465.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-oEnGefnv.js.br +0 -0
- codex/static_root/assets/confirm-dialog-oEnGefnv.js.gz +0 -0
- codex/static_root/assets/confirm-footer-wmmDHzIL.04fb93e7daf3.css.br +0 -0
- codex/static_root/assets/confirm-footer-wmmDHzIL.04fb93e7daf3.css.gz +0 -0
- codex/static_root/assets/confirm-footer-wmmDHzIL.css.br +0 -0
- codex/static_root/assets/confirm-footer-wmmDHzIL.css.gz +0 -0
- codex/static_root/assets/confirm-footer-xJ8_9LG8.5a506ba86e71.js +0 -1
- codex/static_root/assets/confirm-footer-xJ8_9LG8.5a506ba86e71.js.br +0 -0
- codex/static_root/assets/confirm-footer-xJ8_9LG8.5a506ba86e71.js.gz +0 -0
- codex/static_root/assets/confirm-footer-xJ8_9LG8.js +0 -1
- codex/static_root/assets/confirm-footer-xJ8_9LG8.js.br +0 -0
- codex/static_root/assets/confirm-footer-xJ8_9LG8.js.gz +0 -0
- codex/static_root/assets/datetime-column-wfJgH61c.5e9a5e4f4942.js.br +0 -0
- codex/static_root/assets/datetime-column-wfJgH61c.5e9a5e4f4942.js.gz +0 -0
- codex/static_root/assets/datetime-column-wfJgH61c.js.br +0 -0
- codex/static_root/assets/datetime-column-wfJgH61c.js.gz +0 -0
- codex/static_root/assets/filter-4tBtSdTO.5bc46faa2c9b.js +0 -1
- codex/static_root/assets/filter-4tBtSdTO.5bc46faa2c9b.js.br +0 -0
- codex/static_root/assets/filter-4tBtSdTO.5bc46faa2c9b.js.gz +0 -0
- codex/static_root/assets/filter-4tBtSdTO.js +0 -1
- codex/static_root/assets/filter-4tBtSdTO.js.br +0 -0
- codex/static_root/assets/filter-4tBtSdTO.js.gz +0 -0
- codex/static_root/assets/flag-tab-g9dmSvT7.64fc848dba03.js.br +0 -0
- codex/static_root/assets/flag-tab-g9dmSvT7.64fc848dba03.js.gz +0 -0
- codex/static_root/assets/flag-tab-g9dmSvT7.js.br +0 -0
- codex/static_root/assets/flag-tab-g9dmSvT7.js.gz +0 -0
- codex/static_root/assets/group-tab-RJPwy0ju.ea278c40018d.js +0 -1
- codex/static_root/assets/group-tab-RJPwy0ju.ea278c40018d.js.br +0 -0
- codex/static_root/assets/group-tab-RJPwy0ju.ea278c40018d.js.gz +0 -0
- codex/static_root/assets/group-tab-RJPwy0ju.js +0 -1
- codex/static_root/assets/group-tab-RJPwy0ju.js.br +0 -0
- codex/static_root/assets/group-tab-RJPwy0ju.js.gz +0 -0
- codex/static_root/assets/http-error-Afzc_2W_.2be94674f63d.js +0 -1
- codex/static_root/assets/http-error-Afzc_2W_.2be94674f63d.js.br +0 -3
- codex/static_root/assets/http-error-Afzc_2W_.2be94674f63d.js.gz +0 -0
- codex/static_root/assets/http-error-Afzc_2W_.js +0 -1
- codex/static_root/assets/http-error-Afzc_2W_.js.br +0 -3
- codex/static_root/assets/http-error-Afzc_2W_.js.gz +0 -0
- codex/static_root/assets/library-tab-62PYybeF.64cdd617bb68.js +0 -1
- codex/static_root/assets/library-tab-62PYybeF.64cdd617bb68.js.br +0 -0
- codex/static_root/assets/library-tab-62PYybeF.64cdd617bb68.js.gz +0 -0
- codex/static_root/assets/library-tab-62PYybeF.js +0 -1
- codex/static_root/assets/library-tab-62PYybeF.js.br +0 -0
- codex/static_root/assets/library-tab-62PYybeF.js.gz +0 -0
- codex/static_root/assets/main-0jpTXekm.ad88f977847a.js +0 -37
- codex/static_root/assets/main-0jpTXekm.ad88f977847a.js.br +0 -0
- codex/static_root/assets/main-0jpTXekm.ad88f977847a.js.gz +0 -0
- codex/static_root/assets/main-0jpTXekm.js +0 -37
- codex/static_root/assets/main-0jpTXekm.js.br +0 -0
- codex/static_root/assets/main-0jpTXekm.js.gz +0 -0
- codex/static_root/assets/main-eLpQR-nY.052265de7d69.css.br +0 -0
- codex/static_root/assets/main-eLpQR-nY.052265de7d69.css.gz +0 -0
- codex/static_root/assets/main-eLpQR-nY.css.br +0 -0
- codex/static_root/assets/main-eLpQR-nY.css.gz +0 -0
- codex/static_root/assets/metadata-dialog-GoqskInA.4e2d05d79644.css +0 -1
- codex/static_root/assets/metadata-dialog-GoqskInA.4e2d05d79644.css.br +0 -0
- codex/static_root/assets/metadata-dialog-GoqskInA.4e2d05d79644.css.gz +0 -0
- codex/static_root/assets/metadata-dialog-GoqskInA.css +0 -1
- codex/static_root/assets/metadata-dialog-GoqskInA.css.br +0 -0
- codex/static_root/assets/metadata-dialog-GoqskInA.css.gz +0 -0
- codex/static_root/assets/metadata-dialog-jRRTHoGu.8b30e318e621.js +0 -1
- codex/static_root/assets/metadata-dialog-jRRTHoGu.8b30e318e621.js.br +0 -0
- codex/static_root/assets/metadata-dialog-jRRTHoGu.8b30e318e621.js.gz +0 -0
- codex/static_root/assets/metadata-dialog-jRRTHoGu.js +0 -1
- codex/static_root/assets/metadata-dialog-jRRTHoGu.js.br +0 -0
- codex/static_root/assets/metadata-dialog-jRRTHoGu.js.gz +0 -0
- codex/static_root/assets/page-pdf-Pldb5VSY.css +0 -1
- codex/static_root/assets/page-pdf-Pldb5VSY.css.br +0 -0
- codex/static_root/assets/page-pdf-Pldb5VSY.css.gz +0 -0
- codex/static_root/assets/page-pdf-Pldb5VSY.e936ccb145bf.css +0 -1
- codex/static_root/assets/page-pdf-Pldb5VSY.e936ccb145bf.css.br +0 -0
- codex/static_root/assets/page-pdf-Pldb5VSY.e936ccb145bf.css.gz +0 -0
- codex/static_root/assets/page-pdf-hfPKZiCx.7ac17df40bdf.js +0 -64
- codex/static_root/assets/page-pdf-hfPKZiCx.7ac17df40bdf.js.br +0 -0
- codex/static_root/assets/page-pdf-hfPKZiCx.7ac17df40bdf.js.gz +0 -0
- codex/static_root/assets/page-pdf-hfPKZiCx.js +0 -64
- codex/static_root/assets/page-pdf-hfPKZiCx.js.br +0 -0
- codex/static_root/assets/page-pdf-hfPKZiCx.js.gz +0 -0
- codex/static_root/assets/reader-3_PJt6OE.96d9a71d08ab.css +0 -1
- codex/static_root/assets/reader-3_PJt6OE.96d9a71d08ab.css.br +0 -0
- codex/static_root/assets/reader-3_PJt6OE.96d9a71d08ab.css.gz +0 -0
- codex/static_root/assets/reader-3_PJt6OE.css +0 -1
- codex/static_root/assets/reader-3_PJt6OE.css.br +0 -0
- codex/static_root/assets/reader-3_PJt6OE.css.gz +0 -0
- codex/static_root/assets/reader-x2nc0L9U.ec4cbd748751.js +0 -7
- codex/static_root/assets/reader-x2nc0L9U.ec4cbd748751.js.br +0 -0
- codex/static_root/assets/reader-x2nc0L9U.ec4cbd748751.js.gz +0 -0
- codex/static_root/assets/reader-x2nc0L9U.js +0 -7
- codex/static_root/assets/reader-x2nc0L9U.js.br +0 -0
- codex/static_root/assets/reader-x2nc0L9U.js.gz +0 -0
- codex/static_root/assets/stats-tab-MzBiUauN.ce46aa5fafd1.js +0 -1
- codex/static_root/assets/stats-tab-MzBiUauN.ce46aa5fafd1.js.br +0 -0
- codex/static_root/assets/stats-tab-MzBiUauN.ce46aa5fafd1.js.gz +0 -0
- codex/static_root/assets/stats-tab-MzBiUauN.js +0 -1
- codex/static_root/assets/stats-tab-MzBiUauN.js.br +0 -0
- codex/static_root/assets/stats-tab-MzBiUauN.js.gz +0 -0
- codex/static_root/assets/stats-tab-p4QMYgdc.2f98833311d8.css +0 -1
- codex/static_root/assets/stats-tab-p4QMYgdc.2f98833311d8.css.br +0 -0
- codex/static_root/assets/stats-tab-p4QMYgdc.2f98833311d8.css.gz +0 -0
- codex/static_root/assets/stats-tab-p4QMYgdc.css +0 -1
- codex/static_root/assets/stats-tab-p4QMYgdc.css.br +0 -0
- codex/static_root/assets/stats-tab-p4QMYgdc.css.gz +0 -0
- codex/static_root/assets/task-tab-EZTIgaEM.f85bea0d3d37.js +0 -1
- codex/static_root/assets/task-tab-EZTIgaEM.f85bea0d3d37.js.br +0 -0
- codex/static_root/assets/task-tab-EZTIgaEM.f85bea0d3d37.js.gz +0 -0
- codex/static_root/assets/task-tab-EZTIgaEM.js +0 -1
- codex/static_root/assets/task-tab-EZTIgaEM.js.br +0 -0
- codex/static_root/assets/task-tab-EZTIgaEM.js.gz +0 -0
- codex/static_root/assets/task-tab-ZlzQK_L_.11bd9219039b.css +0 -1
- codex/static_root/assets/task-tab-ZlzQK_L_.11bd9219039b.css.br +0 -4
- codex/static_root/assets/task-tab-ZlzQK_L_.11bd9219039b.css.gz +0 -0
- codex/static_root/assets/task-tab-ZlzQK_L_.css +0 -1
- codex/static_root/assets/task-tab-ZlzQK_L_.css.br +0 -4
- codex/static_root/assets/task-tab-ZlzQK_L_.css.gz +0 -0
- codex/static_root/assets/to-case-FdEoSAB7.98a284e67723.js +0 -1
- codex/static_root/assets/to-case-FdEoSAB7.98a284e67723.js.br +0 -0
- codex/static_root/assets/to-case-FdEoSAB7.js +0 -1
- codex/static_root/assets/to-case-FdEoSAB7.js.br +0 -0
- codex/static_root/assets/user-tab-pfW96Jlo.93e4cca2d548.js +0 -1
- codex/static_root/assets/user-tab-pfW96Jlo.93e4cca2d548.js.br +0 -0
- codex/static_root/assets/user-tab-pfW96Jlo.93e4cca2d548.js.gz +0 -0
- codex/static_root/assets/user-tab-pfW96Jlo.js +0 -1
- codex/static_root/assets/user-tab-pfW96Jlo.js.br +0 -0
- codex/static_root/assets/user-tab-pfW96Jlo.js.gz +0 -0
- codex/static_root/manifest.0416a9c9f599.json +0 -572
- codex/static_root/manifest.0416a9c9f599.json.br +0 -0
- codex/static_root/manifest.0416a9c9f599.json.gz +0 -0
- codex/static_root/rest_framework/css/bootstrap-tweaks.46ed116b0edd.css.br +0 -0
- codex/static_root/rest_framework/css/bootstrap-tweaks.46ed116b0edd.css.gz +0 -0
- codex/static_root/rest_framework/js/ajax-form.0ea6e6052ab5.js.br +0 -0
- codex/static_root/rest_framework/js/ajax-form.0ea6e6052ab5.js.gz +0 -0
- codex/static_root/rest_framework/js/csrf.969930007329.js.br +0 -0
- codex/static_root/rest_framework/js/csrf.969930007329.js.gz +0 -0
- codex/static_root/rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js +0 -2
- codex/static_root/rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js.br +0 -0
- codex/static_root/rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js.gz +0 -0
- codex/static_root/rest_framework/js/jquery-3.5.1.min.js +0 -2
- codex/static_root/rest_framework/js/jquery-3.5.1.min.js.br +0 -0
- codex/static_root/rest_framework/js/jquery-3.5.1.min.js.gz +0 -0
- codex-1.5.0a1.dist-info/RECORD +0 -929
- /codex/static_root/assets/{VMain-crd-1eHM.a00e206f3cfa.css โ VMain-Byt37V4c.a00e206f3cfa.css} +0 -0
- /codex/static_root/assets/{VMain-crd-1eHM.a00e206f3cfa.css.br โ VMain-Byt37V4c.a00e206f3cfa.css.br} +0 -0
- /codex/static_root/assets/{VMain-crd-1eHM.a00e206f3cfa.css.gz โ VMain-Byt37V4c.a00e206f3cfa.css.gz} +0 -0
- /codex/static_root/assets/{VMain-crd-1eHM.css โ VMain-Byt37V4c.css} +0 -0
- /codex/static_root/assets/{VMain-crd-1eHM.css.br โ VMain-Byt37V4c.css.br} +0 -0
- /codex/static_root/assets/{VMain-crd-1eHM.css.gz โ VMain-Byt37V4c.css.gz} +0 -0
- /codex/static_root/assets/{VRadioGroup-Itqj_Vrv.8e3741381961.css โ VRadioGroup-i2qP9Wu9.8e3741381961.css} +0 -0
- /codex/static_root/assets/{VRadioGroup-Itqj_Vrv.8e3741381961.css.br โ VRadioGroup-i2qP9Wu9.8e3741381961.css.br} +0 -0
- /codex/static_root/assets/{VRadioGroup-Itqj_Vrv.8e3741381961.css.gz โ VRadioGroup-i2qP9Wu9.8e3741381961.css.gz} +0 -0
- /codex/static_root/assets/{VRadioGroup-Itqj_Vrv.css โ VRadioGroup-i2qP9Wu9.css} +0 -0
- /codex/static_root/assets/{VRadioGroup-Itqj_Vrv.css.br โ VRadioGroup-i2qP9Wu9.css.br} +0 -0
- /codex/static_root/assets/{VRadioGroup-Itqj_Vrv.css.gz โ VRadioGroup-i2qP9Wu9.css.gz} +0 -0
- /codex/static_root/assets/{VSelectionControl-RavvtvCK.9687c77461fc.css โ VSelectionControl-BFq--28I.9687c77461fc.css} +0 -0
- /codex/static_root/assets/{VSelectionControl-RavvtvCK.9687c77461fc.css.br โ VSelectionControl-BFq--28I.9687c77461fc.css.br} +0 -0
- /codex/static_root/assets/{VSelectionControl-RavvtvCK.9687c77461fc.css.gz โ VSelectionControl-BFq--28I.9687c77461fc.css.gz} +0 -0
- /codex/static_root/assets/{VSelectionControl-RavvtvCK.css โ VSelectionControl-BFq--28I.css} +0 -0
- /codex/static_root/assets/{VSelectionControl-RavvtvCK.css.br โ VSelectionControl-BFq--28I.css.br} +0 -0
- /codex/static_root/assets/{VSelectionControl-RavvtvCK.css.gz โ VSelectionControl-BFq--28I.css.gz} +0 -0
- /codex/static_root/assets/{change-password-dialog-UZr5DYqw.2fead58a78c7.css โ change-password-dialog-BRmvkNir.2fead58a78c7.css} +0 -0
- /codex/static_root/assets/{change-password-dialog-UZr5DYqw.2fead58a78c7.css.br โ change-password-dialog-BRmvkNir.2fead58a78c7.css.br} +0 -0
- /codex/static_root/assets/{change-password-dialog-UZr5DYqw.2fead58a78c7.css.gz โ change-password-dialog-BRmvkNir.2fead58a78c7.css.gz} +0 -0
- /codex/static_root/assets/{change-password-dialog-UZr5DYqw.css โ change-password-dialog-BRmvkNir.css} +0 -0
- /codex/static_root/assets/{change-password-dialog-UZr5DYqw.css.br โ change-password-dialog-BRmvkNir.css.br} +0 -0
- /codex/static_root/assets/{change-password-dialog-UZr5DYqw.css.gz โ change-password-dialog-BRmvkNir.css.gz} +0 -0
- /codex/static_root/assets/{confirm-dialog-ZoXnSwsX.7c2103d319d4.css โ confirm-dialog-BmhedLCx.7c2103d319d4.css} +0 -0
- /codex/static_root/assets/{confirm-dialog-ZoXnSwsX.css โ confirm-dialog-BmhedLCx.css} +0 -0
- /codex/static_root/assets/{datetime-column-Vln78oZ2.a4a94ba57c73.css โ datetime-column-BWWfvyhn.a4a94ba57c73.css} +0 -0
- /codex/static_root/assets/{datetime-column-Vln78oZ2.a4a94ba57c73.css.br โ datetime-column-BWWfvyhn.a4a94ba57c73.css.br} +0 -0
- /codex/static_root/assets/{datetime-column-Vln78oZ2.css โ datetime-column-BWWfvyhn.css} +0 -0
- /codex/static_root/assets/{datetime-column-Vln78oZ2.css.br โ datetime-column-BWWfvyhn.css.br} +0 -0
- /codex/static_root/assets/{flag-tab-Iblj4w2l.6bf1e65123e6.css โ flag-tab-huWPjDaW.6bf1e65123e6.css} +0 -0
- /codex/static_root/assets/{flag-tab-Iblj4w2l.6bf1e65123e6.css.br โ flag-tab-huWPjDaW.6bf1e65123e6.css.br} +0 -0
- /codex/static_root/assets/{flag-tab-Iblj4w2l.6bf1e65123e6.css.gz โ flag-tab-huWPjDaW.6bf1e65123e6.css.gz} +0 -0
- /codex/static_root/assets/{flag-tab-Iblj4w2l.css โ flag-tab-huWPjDaW.css} +0 -0
- /codex/static_root/assets/{flag-tab-Iblj4w2l.css.br โ flag-tab-huWPjDaW.css.br} +0 -0
- /codex/static_root/assets/{flag-tab-Iblj4w2l.css.gz โ flag-tab-huWPjDaW.css.gz} +0 -0
- /codex/static_root/assets/{group-tab-Nw18UnrX.5fc2cfa31669.css โ group-tab-3DXxSetf.5fc2cfa31669.css} +0 -0
- /codex/static_root/assets/{group-tab-Nw18UnrX.5fc2cfa31669.css.br โ group-tab-3DXxSetf.5fc2cfa31669.css.br} +0 -0
- /codex/static_root/assets/{group-tab-Nw18UnrX.5fc2cfa31669.css.gz โ group-tab-3DXxSetf.5fc2cfa31669.css.gz} +0 -0
- /codex/static_root/assets/{group-tab-Nw18UnrX.css โ group-tab-3DXxSetf.css} +0 -0
- /codex/static_root/assets/{group-tab-Nw18UnrX.css.br โ group-tab-3DXxSetf.css.br} +0 -0
- /codex/static_root/assets/{group-tab-Nw18UnrX.css.gz โ group-tab-3DXxSetf.css.gz} +0 -0
- /codex/static_root/assets/{http-error-tuVnY1gp.1c7337ad6e1d.css โ http-error-C25WdjWC.1c7337ad6e1d.css} +0 -0
- /codex/static_root/assets/{http-error-tuVnY1gp.1c7337ad6e1d.css.br โ http-error-C25WdjWC.1c7337ad6e1d.css.br} +0 -0
- /codex/static_root/assets/{http-error-tuVnY1gp.1c7337ad6e1d.css.gz โ http-error-C25WdjWC.1c7337ad6e1d.css.gz} +0 -0
- /codex/static_root/assets/{http-error-tuVnY1gp.css โ http-error-C25WdjWC.css} +0 -0
- /codex/static_root/assets/{http-error-tuVnY1gp.css.br โ http-error-C25WdjWC.css.br} +0 -0
- /codex/static_root/assets/{http-error-tuVnY1gp.css.gz โ http-error-C25WdjWC.css.gz} +0 -0
- /codex/static_root/assets/{index-RrPhDVxT.36d50c91b2c1.js โ index-DUjeNg4x.36d50c91b2c1.js} +0 -0
- /codex/static_root/assets/{index-RrPhDVxT.36d50c91b2c1.js.br โ index-DUjeNg4x.36d50c91b2c1.js.br} +0 -0
- /codex/static_root/assets/{index-RrPhDVxT.36d50c91b2c1.js.gz โ index-DUjeNg4x.36d50c91b2c1.js.gz} +0 -0
- /codex/static_root/assets/{index-RrPhDVxT.js โ index-DUjeNg4x.js} +0 -0
- /codex/static_root/assets/{index-RrPhDVxT.js.br โ index-DUjeNg4x.js.br} +0 -0
- /codex/static_root/assets/{index-RrPhDVxT.js.gz โ index-DUjeNg4x.js.gz} +0 -0
- /codex/static_root/assets/{library-tab-2Sg7UOb_.c8123e4bc5a4.css โ library-tab-DZKDtQ5v.c8123e4bc5a4.css} +0 -0
- /codex/static_root/assets/{library-tab-2Sg7UOb_.c8123e4bc5a4.css.br โ library-tab-DZKDtQ5v.c8123e4bc5a4.css.br} +0 -0
- /codex/static_root/assets/{library-tab-2Sg7UOb_.c8123e4bc5a4.css.gz โ library-tab-DZKDtQ5v.c8123e4bc5a4.css.gz} +0 -0
- /codex/static_root/assets/{library-tab-2Sg7UOb_.css โ library-tab-DZKDtQ5v.css} +0 -0
- /codex/static_root/assets/{library-tab-2Sg7UOb_.css.br โ library-tab-DZKDtQ5v.css.br} +0 -0
- /codex/static_root/assets/{library-tab-2Sg7UOb_.css.gz โ library-tab-DZKDtQ5v.css.gz} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-e5j8FT_3.6e435534bd35.ttf โ materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-e5j8FT_3.6e435534bd35.ttf.br โ materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf.br} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-e5j8FT_3.6e435534bd35.ttf.gz โ materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf.gz} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-e5j8FT_3.ttf โ materialdesignicons-webfont-B7mPwVP_.ttf} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-e5j8FT_3.ttf.br โ materialdesignicons-webfont-B7mPwVP_.ttf.br} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-e5j8FT_3.ttf.gz โ materialdesignicons-webfont-B7mPwVP_.ttf.gz} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-kq_ClZaA.8ced95a05e3c.eot โ materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-kq_ClZaA.8ced95a05e3c.eot.br โ materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot.br} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-kq_ClZaA.8ced95a05e3c.eot.gz โ materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot.gz} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-kq_ClZaA.eot โ materialdesignicons-webfont-CSr8KVlo.eot} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-kq_ClZaA.eot.br โ materialdesignicons-webfont-CSr8KVlo.eot.br} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-kq_ClZaA.eot.gz โ materialdesignicons-webfont-CSr8KVlo.eot.gz} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-6eb_lmTU.1d7bcee1b302.woff2 โ materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-6eb_lmTU.woff2 โ materialdesignicons-webfont-Dp5v-WZN.woff2} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-D15t_tsC.026b7ac9c43c.woff โ materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff} +0 -0
- /codex/static_root/assets/{materialdesignicons-webfont-D15t_tsC.woff โ materialdesignicons-webfont-PXm3-2wK.woff} +0 -0
- {codex-1.5.0a1.dist-info โ codex-1.5.0a3.dist-info}/LICENSE +0 -0
- {codex-1.5.0a1.dist-info โ codex-1.5.0a3.dist-info}/entry_points.txt +0 -0
codex/views/browser/metadata.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""View for marking comics read and unread."""
|
|
2
|
+
|
|
2
3
|
from typing import ClassVar
|
|
3
4
|
|
|
4
5
|
from django.db.models import Count, F, IntegerField, Subquery, Value
|
|
@@ -7,11 +8,13 @@ from rest_framework.exceptions import NotFound
|
|
|
7
8
|
from rest_framework.response import Response
|
|
8
9
|
|
|
9
10
|
from codex.librarian.importer.const import COMIC_M2M_FIELD_NAMES
|
|
11
|
+
from codex.logger.logging import get_logger
|
|
10
12
|
from codex.models import AdminFlag, Comic
|
|
11
13
|
from codex.serializers.metadata import MetadataSerializer
|
|
12
14
|
from codex.views.auth import IsAuthenticatedOrEnabledNonUsers
|
|
13
15
|
from codex.views.browser.browser_annotations import BrowserAnnotationsView
|
|
14
16
|
|
|
17
|
+
LOG = get_logger(__name__)
|
|
15
18
|
_ADMIN_OR_FILE_VIEW_ENABLED_COMIC_VALUE_FIELDS = frozenset({"path"})
|
|
16
19
|
_COMIC_VALUE_FIELDS_CONFLICTING = frozenset(
|
|
17
20
|
{
|
|
@@ -157,7 +160,7 @@ class MetadataView(BrowserAnnotationsView):
|
|
|
157
160
|
if self.is_admin():
|
|
158
161
|
return
|
|
159
162
|
if self._is_enabled_folder_view():
|
|
160
|
-
library_path = obj.
|
|
163
|
+
library_path = obj.library_path
|
|
161
164
|
obj.path = obj.path.removeprefix(library_path)
|
|
162
165
|
else:
|
|
163
166
|
obj.path = ""
|
|
@@ -275,14 +278,17 @@ class MetadataView(BrowserAnnotationsView):
|
|
|
275
278
|
def get(self, *_args, **_kwargs):
|
|
276
279
|
"""Get metadata for a filtered browse group."""
|
|
277
280
|
# Init
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
281
|
+
try:
|
|
282
|
+
self._efv_flag = None
|
|
283
|
+
self.parse_params()
|
|
284
|
+
self.group = self.kwargs["group"]
|
|
285
|
+
self._validate()
|
|
286
|
+
self.set_rel_prefix(self.model)
|
|
287
|
+
self.set_order_key()
|
|
288
|
+
|
|
289
|
+
obj = self.get_object()
|
|
290
|
+
|
|
291
|
+
serializer = self.get_serializer(obj)
|
|
292
|
+
return Response(serializer.data)
|
|
293
|
+
except Exception:
|
|
294
|
+
LOG.exception(f"Getting metadata {self.kwargs}")
|
codex/views/browser/session.py
CHANGED
codex/views/const.py
CHANGED
codex/views/cover.py
CHANGED
codex/views/download.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Download a comic archive."""
|
|
2
|
+
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
from typing import ClassVar
|
|
4
5
|
|
|
@@ -26,6 +27,7 @@ class DownloadView(APIView, GroupACLMixin):
|
|
|
26
27
|
"issue_suffix",
|
|
27
28
|
"name",
|
|
28
29
|
)
|
|
30
|
+
AS_ATTACHMENT = True
|
|
29
31
|
|
|
30
32
|
@extend_schema(responses={(200, content_type): OpenApiTypes.BINARY})
|
|
31
33
|
def get(self, *_args, **kwargs):
|
|
@@ -45,9 +47,23 @@ class DownloadView(APIView, GroupACLMixin):
|
|
|
45
47
|
|
|
46
48
|
# FileResponse requires file handle not be closed in this method.
|
|
47
49
|
comic_file = Path(comic.path).open("rb") # noqa: SIM115
|
|
50
|
+
content_type = "application/"
|
|
51
|
+
if comic.file_type == "PDF":
|
|
52
|
+
content_type += "pdf"
|
|
53
|
+
elif comic.file_type:
|
|
54
|
+
content_type += "vnd.comicbook+" + comic.file_type.lower()
|
|
55
|
+
else:
|
|
56
|
+
content_type += "octet-stream"
|
|
57
|
+
|
|
48
58
|
return FileResponse(
|
|
49
59
|
comic_file,
|
|
50
|
-
as_attachment=
|
|
51
|
-
content_type=
|
|
60
|
+
as_attachment=self.AS_ATTACHMENT,
|
|
61
|
+
content_type=content_type,
|
|
52
62
|
filename=comic.filename(),
|
|
53
63
|
)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class FileView(DownloadView):
|
|
67
|
+
"""View a comic in the browser."""
|
|
68
|
+
|
|
69
|
+
AS_ATTACHMENT = False
|
codex/views/error.py
CHANGED
codex/views/frontend.py
CHANGED
codex/views/opds/binary.py
CHANGED
codex/views/opds/util.py
CHANGED
codex/views/opds/v1/data.py
CHANGED
codex/views/opds/v1/facets.py
CHANGED
codex/views/opds/v1/feed.py
CHANGED
codex/views/opds/v1/links.py
CHANGED
codex/views/opds/v2/const.py
CHANGED
codex/views/opds/v2/feed.py
CHANGED
codex/views/opds/v2/links.py
CHANGED
codex/views/opds/v2/top_links.py
CHANGED
codex/views/pwa.py
CHANGED
codex/views/reader/reader.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Views for reading comic books."""
|
|
2
|
+
|
|
2
3
|
from django.db.models import F, IntegerField, Value
|
|
3
4
|
from django.urls import reverse
|
|
4
5
|
from drf_spectacular.types import OpenApiTypes
|
|
@@ -30,6 +31,7 @@ class ReaderView(BookmarkBaseView):
|
|
|
30
31
|
"series",
|
|
31
32
|
"volume",
|
|
32
33
|
"reading_direction",
|
|
34
|
+
"updated_at",
|
|
33
35
|
)
|
|
34
36
|
_VALID_ARC_GROUPS = frozenset({"f", "s", "a"})
|
|
35
37
|
|
|
@@ -84,6 +86,7 @@ class ReaderView(BookmarkBaseView):
|
|
|
84
86
|
arc_name=F(arc_name_rel),
|
|
85
87
|
arc_index=arc_index,
|
|
86
88
|
)
|
|
89
|
+
.annotate(mtime=F("updated_at"))
|
|
87
90
|
)
|
|
88
91
|
|
|
89
92
|
return qs.order_by(*ordering)
|
codex/views/reader/session.py
CHANGED
codex/views/session.py
CHANGED
codex/views/template.py
CHANGED
codex/views/version.py
CHANGED
codex/websockets/aio_queue.py
CHANGED
codex/websockets/consumers.py
CHANGED
codex/websockets/listener.py
CHANGED
codex/worker_base.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: codex
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.0a3
|
|
4
4
|
Summary: A comic archive web server.
|
|
5
5
|
Home-page: https://github.com/ajslater/codex
|
|
6
6
|
License: GPL-3.0-only
|
|
@@ -28,7 +28,7 @@ Requires-Dist: aioprocessing (>=2.0.1,<3.0.0)
|
|
|
28
28
|
Requires-Dist: ansicolors (>=1.1,<2.0)
|
|
29
29
|
Requires-Dist: case-converter (>=1.1.0,<2.0.0)
|
|
30
30
|
Requires-Dist: channels (>=4.0.0,<5.0.0)
|
|
31
|
-
Requires-Dist: comicbox[pdf] (>=1.0
|
|
31
|
+
Requires-Dist: comicbox[pdf] (>=1.1.0,<2.0.0)
|
|
32
32
|
Requires-Dist: django (>=5.0.1,<6.0.0)
|
|
33
33
|
Requires-Dist: django-cors-headers (>=4.0,<5.0)
|
|
34
34
|
Requires-Dist: django-rest-registration (>=0.8.0,<0.9.0)
|
|
@@ -44,7 +44,7 @@ Requires-Dist: psutil (>=5.9.4,<6.0.0)
|
|
|
44
44
|
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
|
45
45
|
Requires-Dist: requests (>=2.24,<3.0)
|
|
46
46
|
Requires-Dist: tzlocal (>=5.0,<6.0)
|
|
47
|
-
Requires-Dist: watchdog (>=
|
|
47
|
+
Requires-Dist: watchdog (>=4.0,<5.0)
|
|
48
48
|
Requires-Dist: websocket_client (>=1.2,<2.0)
|
|
49
49
|
Requires-Dist: whitenoise[brotli] (>=6.0,<7.0)
|
|
50
50
|
Requires-Dist: whoosh (>=2.7.4,<3.0.0)
|
|
@@ -72,7 +72,7 @@ border-radius: 128px;
|
|
|
72
72
|
- Filter and sort on all comic metadata and unread status per user.
|
|
73
73
|
- Browse a tree of publishers, imprints, series, volumes, or your own folder
|
|
74
74
|
hierarchy.
|
|
75
|
-
- Read comics in a variety of aspect ratios that fit your screen.
|
|
75
|
+
- Read comics in a variety of aspect ratios and directions that fit your screen.
|
|
76
76
|
- Per user bookmarking. Per browser bookmarks even before you make an account.
|
|
77
77
|
- Watches the filesystem and automatically imports new or changed comics.
|
|
78
78
|
- Private Libraries accessible only to certain groups of users.
|
|
@@ -119,6 +119,8 @@ You'll need to install these system dependencies before installing Codex.
|
|
|
119
119
|
|
|
120
120
|
##### macOS
|
|
121
121
|
|
|
122
|
+
<!-- eslint-skip -->
|
|
123
|
+
|
|
122
124
|
```sh
|
|
123
125
|
brew install jpeg libffi libyaml libzip openssl python unrar webp
|
|
124
126
|
```
|
|
@@ -127,53 +129,48 @@ brew install jpeg libffi libyaml libzip openssl python unrar webp
|
|
|
127
129
|
|
|
128
130
|
###### <a href="#debian">Debian</a>
|
|
129
131
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
```sh
|
|
133
|
-
apt install build-essential libffi-dev libjpeg-dev libssl-dev libwebp7 python3-pip zlib1g-dev
|
|
134
|
-
```
|
|
132
|
+
...and Ubuntu, Mint, MX and others.
|
|
135
133
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
###### Debian on ARM
|
|
139
|
-
|
|
140
|
-
The python cryptography wheel needs compiling on rare architectures. Install the
|
|
141
|
-
Rust compiler.
|
|
134
|
+
<!-- eslint-skip -->
|
|
142
135
|
|
|
143
136
|
```sh
|
|
144
|
-
apt install
|
|
137
|
+
apt install build-essential libimagequant0 libjpeg62-turbo libopenjp2-7 libssl3 libyaml-0-2 libtiff6 libwebp7 python3-dev python3-pip mupdf unrar zlib1g
|
|
145
138
|
```
|
|
146
139
|
|
|
147
140
|
###### Alpine
|
|
148
141
|
|
|
142
|
+
<!-- eslint-skip -->
|
|
143
|
+
|
|
149
144
|
```sh
|
|
150
145
|
apk add bsd-compat-headers build-base jpeg-dev libffi-dev libwebp openssl-dev yaml-dev zlib-dev
|
|
151
146
|
```
|
|
152
147
|
|
|
153
|
-
##### Install unrar Runtime Dependency on Linux
|
|
148
|
+
##### Install unrar Runtime Dependency on non-debian Linux
|
|
154
149
|
|
|
155
|
-
Codex requires unrar to read
|
|
150
|
+
Codex requires unrar to read CBR formatted comic archives. Unrar is often not
|
|
156
151
|
packaged for Linux, but here are some instructions:
|
|
157
152
|
[How to install unrar in Linux](https://www.unixtutorial.org/how-to-install-unrar-in-linux/)
|
|
158
153
|
|
|
159
|
-
Unrar as packaged for Alpine Linux v3.14 seems to work on Alpine v3.15
|
|
154
|
+
Unrar as packaged for Alpine Linux v3.14 seems to work on Alpine v3.15+
|
|
160
155
|
|
|
161
156
|
#### Windows
|
|
162
157
|
|
|
163
158
|
Windows users should use Docker to run Codex until this documentation section is
|
|
164
159
|
complete.
|
|
165
160
|
|
|
166
|
-
Codex can _probably_ Windows Linux Subsystem but I haven't
|
|
161
|
+
Codex can _probably_ run on the Windows Linux Subsystem but I haven't personally
|
|
167
162
|
tested it yet. Try following the instructions for [Debian](#debian) above. There
|
|
168
163
|
may be outstanding platform related bugs.
|
|
169
164
|
|
|
170
|
-
Contributions to
|
|
171
|
-
[the outstanding issue](https://github.com/ajslater/codex/issues/76) or
|
|
165
|
+
Contributions to the Windows documentation will be gratefully accepted on
|
|
166
|
+
[the outstanding issue](https://github.com/ajslater/codex/issues/76) or Discord.
|
|
172
167
|
|
|
173
168
|
#### Install Codex with pip
|
|
174
169
|
|
|
175
170
|
You may now install Codex with pip
|
|
176
171
|
|
|
172
|
+
<!-- eslint-skip -->
|
|
173
|
+
|
|
177
174
|
```sh
|
|
178
175
|
pip3 install codex
|
|
179
176
|
```
|
|
@@ -182,12 +179,25 @@ pip3 install codex
|
|
|
182
179
|
|
|
183
180
|
pip should install the codex binary on your path. Run
|
|
184
181
|
|
|
182
|
+
<!-- eslint-skip -->
|
|
183
|
+
|
|
185
184
|
```sh
|
|
186
185
|
codex
|
|
187
186
|
```
|
|
188
187
|
|
|
189
188
|
and then navigate to <http://localhost:9810/>
|
|
190
189
|
|
|
190
|
+
### Install & Run on your preexisting HomeAssistant server
|
|
191
|
+
|
|
192
|
+
If you have a [HomeAssistant](https://www.home-assistant.io/) server, Codex can
|
|
193
|
+
be installed with the following steps :
|
|
194
|
+
|
|
195
|
+
- Add the `https://github.com/alexbelgium/hassio-addons` repository by
|
|
196
|
+
[clicking here](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Falexbelgium%2Fhassio-addons)
|
|
197
|
+
- Install the addon :
|
|
198
|
+
[click here to automatically open the addon store, then install the addon](https://my.home-assistant.io/redirect/supervisor)
|
|
199
|
+
- Customize addon options, then then start the add-on.
|
|
200
|
+
|
|
191
201
|
## <a name="administration">๐ Administration</a>
|
|
192
202
|
|
|
193
203
|
### Navigate to the Admin Panel
|
|
@@ -225,12 +235,16 @@ If you forget all your superuser passwords, you may restore the original default
|
|
|
225
235
|
admin account by running codex with the `CODEX_RESET_ADMIN` environment variable
|
|
226
236
|
set.
|
|
227
237
|
|
|
238
|
+
<!-- eslint-skip -->
|
|
239
|
+
|
|
228
240
|
```sh
|
|
229
241
|
CODEX_RESET_ADMIN=1 codex
|
|
230
242
|
```
|
|
231
243
|
|
|
232
244
|
or, if using Docker:
|
|
233
245
|
|
|
246
|
+
<!-- eslint-skip -->
|
|
247
|
+
|
|
234
248
|
```sh
|
|
235
249
|
docker run -e CODEX_RESET_ADMIN=1 -v host-parent-dir/config:/config ajslater/codex
|
|
236
250
|
```
|
|
@@ -248,6 +262,11 @@ A library with _any_ groups is accessible only to users who are in those groups.
|
|
|
248
262
|
Use the Groups admin panel to create groups and the Users admin panel to add and
|
|
249
263
|
remove users to groups.
|
|
250
264
|
|
|
265
|
+
#### Include and Exclude Groups
|
|
266
|
+
|
|
267
|
+
Codex can make groups for libraries that exclude groups of users or exclude
|
|
268
|
+
everyone and include only certain groups of users.
|
|
269
|
+
|
|
251
270
|
### PDFs
|
|
252
271
|
|
|
253
272
|
Codex only reads PDF metadata from the filename. If you decide to include PDFs
|
|
@@ -271,6 +290,8 @@ a default one to that directory on startup.
|
|
|
271
290
|
|
|
272
291
|
The default values for the config options are:
|
|
273
292
|
|
|
293
|
+
<!-- eslint-skip -->
|
|
294
|
+
|
|
274
295
|
```toml
|
|
275
296
|
bind = ["0.0.0.0:9810"]
|
|
276
297
|
quick_bind = ["0.0.0.0:9810"]
|
|
@@ -282,9 +303,11 @@ index, a Django cache and comic book cover thumbnails.
|
|
|
282
303
|
|
|
283
304
|
### Environment Variables
|
|
284
305
|
|
|
306
|
+
### Codex
|
|
307
|
+
|
|
285
308
|
- `LOGLEVEL` will change how verbose codex's logging is. Valid values are
|
|
286
309
|
`ERROR`, `WARNING`, `INFO`, `DEBUG`. The default is `INFO`.
|
|
287
|
-
- `TIMEZONE` or `TZ` will explicitly the timezone in long format (e.g.
|
|
310
|
+
- `TIMEZONE` or `TZ` will explicitly set the timezone in long format (e.g.
|
|
288
311
|
`"America/Los Angeles"`). This is useful inside Docker because codex cannot
|
|
289
312
|
automatically detect the host machine's timezone.
|
|
290
313
|
- `CODEX_CONFIG_DIR` will set the path to codex config directory. Defaults to
|
|
@@ -298,12 +321,20 @@ index, a Django cache and comic book cover thumbnails.
|
|
|
298
321
|
- `CODEX_LOG_TO_FILE=0` will not log to files.
|
|
299
322
|
- `CODEX_LOG_TO_CONSOLE=0` will not log to the console.
|
|
300
323
|
|
|
324
|
+
#### Comicbox
|
|
325
|
+
|
|
326
|
+
- `DEBUG_TRANSFORM` will show verbose information about how the comicbox library
|
|
327
|
+
reads all archive metadata sources and transforms it into a the comicbox
|
|
328
|
+
schema.
|
|
329
|
+
|
|
301
330
|
### Reverse Proxy
|
|
302
331
|
|
|
303
332
|
[nginx](https://nginx.org/) is often used as a TLS terminator and subpath proxy.
|
|
304
333
|
|
|
305
334
|
Here's an example nginx config with a subpath named '/codex'.
|
|
306
335
|
|
|
336
|
+
<!-- eslint-skip -->
|
|
337
|
+
|
|
307
338
|
```nginx
|
|
308
339
|
# HTTP
|
|
309
340
|
proxy_set_header Host $http_host;
|
|
@@ -328,9 +359,10 @@ proxy_set_header Connection "Upgrade" location /codex {
|
|
|
328
359
|
|
|
329
360
|
Specify a reverse proxy sub path (if you have one) in `config/hypercorn.toml`
|
|
330
361
|
|
|
362
|
+
<!-- eslint-skip -->
|
|
363
|
+
|
|
331
364
|
```toml
|
|
332
365
|
root_path = "/codex"
|
|
333
|
-
|
|
334
366
|
```
|
|
335
367
|
|
|
336
368
|
#### Nginx Reverse Proxy 502 when container refreshes
|
|
@@ -346,11 +378,11 @@ Codex can run with as little as 1GB available RAM. Large batch jobs โlike
|
|
|
346
378
|
importing and indexing tens of thousands of comics at onceโ will run faster the
|
|
347
379
|
more memory is available to Codex. The biggest gains in speed happen when you
|
|
348
380
|
increase memory up to about 6GB. Codex batch jobs do get faster the more memory
|
|
349
|
-
|
|
381
|
+
it has above 6GB, but with diminishing returns.
|
|
350
382
|
|
|
351
|
-
If you run Codex in an admin restricted memory environment you might want
|
|
352
|
-
temporarily give
|
|
353
|
-
restrict it for normal operation.
|
|
383
|
+
If you must run Codex in an admin restricted memory environment you might want
|
|
384
|
+
to temporarily give Codex a lot of memory to run a very large import job and
|
|
385
|
+
then restrict it for normal operation.
|
|
354
386
|
|
|
355
387
|
## <a name="usage">๐ Usage</a>
|
|
356
388
|
|
|
@@ -418,6 +450,8 @@ You can change how much codex logs by setting the `LOGLEVEL` environment
|
|
|
418
450
|
variable. By default this level is `INFO`. To see more verbose messages, run
|
|
419
451
|
codex like:
|
|
420
452
|
|
|
453
|
+
<!-- eslint-skip -->
|
|
454
|
+
|
|
421
455
|
```bash
|
|
422
456
|
LOGLEVEL=DEBUG codex
|
|
423
457
|
```
|
|
@@ -438,6 +472,8 @@ If the database becomes corrupt, Codex includes a facitlity to rebuild the
|
|
|
438
472
|
database. Place a file named `rebuild_db` in your Codex config directory like
|
|
439
473
|
so:
|
|
440
474
|
|
|
475
|
+
<!-- eslint-skip -->
|
|
476
|
+
|
|
441
477
|
```sh
|
|
442
478
|
touch config/rebuild_db
|
|
443
479
|
```
|