codex 1.5.0rc1__py3-none-any.whl → 1.5.0rc2__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/integrity.py +1 -1
- codex/logger/loggerd.py +1 -1
- codex/migrations/0026_comicbox_1.py +41 -19
- codex/serializers/opds/authentication.py +3 -3
- codex/serializers/opds/v2.py +1 -1
- codex/serializers/opds/v2_unused.py +1 -1
- codex/settings/settings.py +0 -5
- codex/static_root/assets/VCheckbox-Flv8K2j6.89239120bde3.css +1 -0
- codex/static_root/assets/VCheckbox-Flv8K2j6.89239120bde3.css.br +0 -0
- codex/static_root/assets/VCheckbox-Flv8K2j6.css +1 -0
- codex/static_root/assets/VCheckbox-Flv8K2j6.css.br +0 -0
- codex/static_root/assets/VCheckbox-MGquS0QE.fa4200601992.js +1 -0
- codex/static_root/assets/VCheckbox-MGquS0QE.fa4200601992.js.br +0 -0
- codex/static_root/assets/VCheckbox-MGquS0QE.fa4200601992.js.gz +0 -0
- codex/static_root/assets/VCheckbox-MGquS0QE.js +1 -0
- codex/static_root/assets/VCheckbox-MGquS0QE.js.br +0 -0
- codex/static_root/assets/VCheckbox-MGquS0QE.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-yxvU5omH.988a7b938375.js +1 -0
- codex/static_root/assets/VCheckboxBtn-yxvU5omH.988a7b938375.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-yxvU5omH.988a7b938375.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-yxvU5omH.js +1 -0
- codex/static_root/assets/VCheckboxBtn-yxvU5omH.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-yxvU5omH.js.gz +0 -0
- codex/static_root/assets/VCombobox-JDYDwU3-.5b3aabc73eeb.css +1 -0
- 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 +1 -0
- 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-w65JObkI.97abe248659d.js +1 -0
- codex/static_root/assets/VCombobox-w65JObkI.97abe248659d.js.br +0 -0
- codex/static_root/assets/VCombobox-w65JObkI.97abe248659d.js.gz +0 -0
- codex/static_root/assets/VCombobox-w65JObkI.js +1 -0
- codex/static_root/assets/VCombobox-w65JObkI.js.br +0 -0
- codex/static_root/assets/VCombobox-w65JObkI.js.gz +0 -0
- codex/static_root/assets/VDataTableVirtual-cJ9EDO4X.1a711f5f2fc0.css +1 -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 +1 -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/VDataTableVirtual-oL2PAKTi.a8a17160d7ef.js +1 -0
- codex/static_root/assets/VDataTableVirtual-oL2PAKTi.a8a17160d7ef.js.br +0 -0
- codex/static_root/assets/VDataTableVirtual-oL2PAKTi.a8a17160d7ef.js.gz +0 -0
- codex/static_root/assets/VDataTableVirtual-oL2PAKTi.js +1 -0
- codex/static_root/assets/VDataTableVirtual-oL2PAKTi.js.br +0 -0
- codex/static_root/assets/VDataTableVirtual-oL2PAKTi.js.gz +0 -0
- codex/static_root/assets/VExpansionPanel-EX1vU7wN.f746ab10168a.js +1 -0
- codex/static_root/assets/VExpansionPanel-EX1vU7wN.f746ab10168a.js.br +0 -0
- codex/static_root/assets/VExpansionPanel-EX1vU7wN.f746ab10168a.js.gz +0 -0
- codex/static_root/assets/VExpansionPanel-EX1vU7wN.js +1 -0
- codex/static_root/assets/VExpansionPanel-EX1vU7wN.js.br +0 -0
- codex/static_root/assets/VExpansionPanel-EX1vU7wN.js.gz +0 -0
- codex/static_root/assets/VExpansionPanel-gdSap9-6.212a9add7ff2.css +1 -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 +1 -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-VT-qZQ__.c0547e61f15f.js +1 -0
- codex/static_root/assets/VMain-VT-qZQ__.c0547e61f15f.js.br +0 -0
- codex/static_root/assets/VMain-VT-qZQ__.c0547e61f15f.js.gz +0 -0
- codex/static_root/assets/VMain-VT-qZQ__.js +1 -0
- codex/static_root/assets/VMain-VT-qZQ__.js.br +0 -0
- codex/static_root/assets/VMain-VT-qZQ__.js.gz +0 -0
- codex/static_root/assets/VMain-crd-1eHM.a00e206f3cfa.css +1 -0
- codex/static_root/assets/VMain-crd-1eHM.a00e206f3cfa.css.br +0 -0
- codex/static_root/assets/VMain-crd-1eHM.a00e206f3cfa.css.gz +0 -0
- codex/static_root/assets/VMain-crd-1eHM.css +1 -0
- codex/static_root/assets/VMain-crd-1eHM.css.br +0 -0
- codex/static_root/assets/VMain-crd-1eHM.css.gz +0 -0
- codex/static_root/assets/VRadioGroup-Itqj_Vrv.8e3741381961.css +1 -0
- codex/static_root/assets/VRadioGroup-Itqj_Vrv.8e3741381961.css.br +0 -0
- codex/static_root/assets/VRadioGroup-Itqj_Vrv.8e3741381961.css.gz +0 -0
- codex/static_root/assets/VRadioGroup-Itqj_Vrv.css +1 -0
- codex/static_root/assets/VRadioGroup-Itqj_Vrv.css.br +0 -0
- codex/static_root/assets/VRadioGroup-Itqj_Vrv.css.gz +0 -0
- codex/static_root/assets/VRadioGroup-TtGu5WYN.82313d607c3b.js +1 -0
- codex/static_root/assets/VRadioGroup-TtGu5WYN.82313d607c3b.js.br +3 -0
- codex/static_root/assets/VRadioGroup-TtGu5WYN.82313d607c3b.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-TtGu5WYN.js +1 -0
- codex/static_root/assets/VRadioGroup-TtGu5WYN.js.br +3 -0
- codex/static_root/assets/VRadioGroup-TtGu5WYN.js.gz +0 -0
- codex/static_root/assets/VSelect-3jR8Um8C.0c8560b189db.css +1 -0
- 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 +1 -0
- 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-Yw9YsgjJ.343b4b0ef067.js +1 -0
- codex/static_root/assets/VSelect-Yw9YsgjJ.343b4b0ef067.js.br +0 -0
- codex/static_root/assets/VSelect-Yw9YsgjJ.343b4b0ef067.js.gz +0 -0
- codex/static_root/assets/VSelect-Yw9YsgjJ.js +1 -0
- codex/static_root/assets/VSelect-Yw9YsgjJ.js.br +0 -0
- codex/static_root/assets/VSelect-Yw9YsgjJ.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-9CzKd8rG.94ddb0376ad2.js +1 -0
- codex/static_root/assets/VSelectionControl-9CzKd8rG.94ddb0376ad2.js.br +0 -0
- codex/static_root/assets/VSelectionControl-9CzKd8rG.94ddb0376ad2.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-9CzKd8rG.js +1 -0
- codex/static_root/assets/VSelectionControl-9CzKd8rG.js.br +0 -0
- codex/static_root/assets/VSelectionControl-9CzKd8rG.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-RavvtvCK.9687c77461fc.css +1 -0
- codex/static_root/assets/VSelectionControl-RavvtvCK.9687c77461fc.css.br +0 -0
- codex/static_root/assets/VSelectionControl-RavvtvCK.9687c77461fc.css.gz +0 -0
- codex/static_root/assets/VSelectionControl-RavvtvCK.css +1 -0
- codex/static_root/assets/VSelectionControl-RavvtvCK.css.br +0 -0
- codex/static_root/assets/VSelectionControl-RavvtvCK.css.gz +0 -0
- codex/static_root/assets/VTable-aiByCThw.85589025b93b.css +1 -0
- 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 +1 -0
- codex/static_root/assets/VTable-aiByCThw.css.br +0 -0
- codex/static_root/assets/VTable-aiByCThw.css.gz +0 -0
- codex/static_root/assets/VTable-q30xy1Qm.a295a3c5b1fd.js +1 -0
- codex/static_root/assets/VTable-q30xy1Qm.a295a3c5b1fd.js.br +0 -0
- codex/static_root/assets/VTable-q30xy1Qm.a295a3c5b1fd.js.gz +0 -0
- codex/static_root/assets/VTable-q30xy1Qm.js +1 -0
- codex/static_root/assets/VTable-q30xy1Qm.js.br +0 -0
- codex/static_root/assets/VTable-q30xy1Qm.js.gz +0 -0
- codex/static_root/assets/VTextField-1s8i2nK8.28e3377981c8.js +1 -0
- codex/static_root/assets/VTextField-1s8i2nK8.28e3377981c8.js.br +0 -0
- codex/static_root/assets/VTextField-1s8i2nK8.28e3377981c8.js.gz +0 -0
- codex/static_root/assets/VTextField-1s8i2nK8.js +1 -0
- codex/static_root/assets/VTextField-1s8i2nK8.js.br +0 -0
- codex/static_root/assets/VTextField-1s8i2nK8.js.gz +0 -0
- codex/static_root/assets/VTextField-8NJPNEpH.190723039dea.css +1 -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 +1 -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-BBzymioO.ec12d95a725e.js +7 -0
- codex/static_root/assets/VToolbar-BBzymioO.ec12d95a725e.js.br +0 -0
- codex/static_root/assets/VToolbar-BBzymioO.ec12d95a725e.js.gz +0 -0
- codex/static_root/assets/VToolbar-BBzymioO.js +7 -0
- codex/static_root/assets/VToolbar-BBzymioO.js.br +0 -0
- codex/static_root/assets/VToolbar-BBzymioO.js.gz +0 -0
- codex/static_root/assets/VToolbar-PLads6MY.css +1 -0
- 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 +1 -0
- 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/VWindowItem--TlRwQ5R.css +1 -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 +1 -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-J3hy1lxS.b8e6081f6afc.js +1 -0
- codex/static_root/assets/VWindowItem-J3hy1lxS.b8e6081f6afc.js.br +0 -0
- codex/static_root/assets/VWindowItem-J3hy1lxS.b8e6081f6afc.js.gz +0 -0
- codex/static_root/assets/VWindowItem-J3hy1lxS.js +1 -0
- codex/static_root/assets/VWindowItem-J3hy1lxS.js.br +0 -0
- codex/static_root/assets/VWindowItem-J3hy1lxS.js.gz +0 -0
- codex/static_root/assets/admin-MwCSFwIp.6de10f13b01b.css +1 -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 +1 -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-NMv29Iqq.9918d0dee7ba.js +1 -0
- codex/static_root/assets/admin-NMv29Iqq.9918d0dee7ba.js.br +0 -0
- codex/static_root/assets/admin-NMv29Iqq.9918d0dee7ba.js.gz +0 -0
- codex/static_root/assets/admin-NMv29Iqq.js +1 -0
- codex/static_root/assets/admin-NMv29Iqq.js.br +0 -0
- codex/static_root/assets/admin-NMv29Iqq.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-JjJ1iA6R.a2371ad685d2.js +33 -0
- codex/static_root/assets/admin-drawer-panel-JjJ1iA6R.a2371ad685d2.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-JjJ1iA6R.a2371ad685d2.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-JjJ1iA6R.js +33 -0
- codex/static_root/assets/admin-drawer-panel-JjJ1iA6R.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-JjJ1iA6R.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-qf94Ysts.c0696c636fab.css +1 -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 +1 -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/{browser-LpHrL2zI.11f261776acd.css → browser-hLiDgCIH.6dd225a38a22.css} +1 -1
- codex/static_root/assets/browser-hLiDgCIH.6dd225a38a22.css.br +0 -0
- codex/static_root/assets/{browser-LpHrL2zI.11f261776acd.css.gz → browser-hLiDgCIH.6dd225a38a22.css.gz} +0 -0
- codex/static_root/assets/{browser-LpHrL2zI.css → browser-hLiDgCIH.css} +1 -1
- codex/static_root/assets/browser-hLiDgCIH.css.br +0 -0
- codex/static_root/assets/{browser-LpHrL2zI.css.gz → browser-hLiDgCIH.css.gz} +0 -0
- codex/static_root/assets/browser-zvI8XpnW.3f264709f471.js +1 -0
- codex/static_root/assets/browser-zvI8XpnW.3f264709f471.js.br +0 -0
- codex/static_root/assets/browser-zvI8XpnW.3f264709f471.js.gz +0 -0
- codex/static_root/assets/browser-zvI8XpnW.js +1 -0
- codex/static_root/assets/browser-zvI8XpnW.js.br +0 -0
- codex/static_root/assets/browser-zvI8XpnW.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-9i9SZGmU.83b35cb4309c.js +1 -0
- codex/static_root/assets/change-password-dialog-9i9SZGmU.83b35cb4309c.js.br +0 -0
- codex/static_root/assets/change-password-dialog-9i9SZGmU.83b35cb4309c.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-9i9SZGmU.js +1 -0
- codex/static_root/assets/change-password-dialog-9i9SZGmU.js.br +0 -0
- codex/static_root/assets/change-password-dialog-9i9SZGmU.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-UZr5DYqw.2fead58a78c7.css +1 -0
- codex/static_root/assets/change-password-dialog-UZr5DYqw.2fead58a78c7.css.br +0 -0
- codex/static_root/assets/change-password-dialog-UZr5DYqw.2fead58a78c7.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-UZr5DYqw.css +1 -0
- codex/static_root/assets/change-password-dialog-UZr5DYqw.css.br +0 -0
- codex/static_root/assets/change-password-dialog-UZr5DYqw.css.gz +0 -0
- codex/static_root/assets/confirm-dialog-3RjVRgsv.46d811c7f837.js +1 -0
- codex/static_root/assets/confirm-dialog-3RjVRgsv.46d811c7f837.js.br +0 -0
- codex/static_root/assets/confirm-dialog-3RjVRgsv.46d811c7f837.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-3RjVRgsv.js +1 -0
- codex/static_root/assets/confirm-dialog-3RjVRgsv.js.br +0 -0
- codex/static_root/assets/confirm-dialog-3RjVRgsv.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-ZoXnSwsX.7c2103d319d4.css +1 -0
- codex/static_root/assets/confirm-dialog-ZoXnSwsX.css +1 -0
- codex/static_root/assets/confirm-footer-IJHq21-K.8e9be6e41786.js +1 -0
- codex/static_root/assets/confirm-footer-IJHq21-K.8e9be6e41786.js.br +0 -0
- codex/static_root/assets/confirm-footer-IJHq21-K.8e9be6e41786.js.gz +0 -0
- codex/static_root/assets/confirm-footer-IJHq21-K.js +1 -0
- codex/static_root/assets/confirm-footer-IJHq21-K.js.br +0 -0
- codex/static_root/assets/confirm-footer-IJHq21-K.js.gz +0 -0
- codex/static_root/assets/confirm-footer-wmmDHzIL.04fb93e7daf3.css +1 -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 +1 -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/datetime-column-Vln78oZ2.a4a94ba57c73.css +1 -0
- codex/static_root/assets/datetime-column-Vln78oZ2.a4a94ba57c73.css.br +0 -0
- codex/static_root/assets/datetime-column-Vln78oZ2.css +1 -0
- codex/static_root/assets/datetime-column-Vln78oZ2.css.br +0 -0
- codex/static_root/assets/datetime-column-hS6FHx6v.1158c5db4d07.js +1 -0
- codex/static_root/assets/datetime-column-hS6FHx6v.1158c5db4d07.js.br +0 -0
- codex/static_root/assets/datetime-column-hS6FHx6v.1158c5db4d07.js.gz +0 -0
- codex/static_root/assets/datetime-column-hS6FHx6v.js +1 -0
- codex/static_root/assets/datetime-column-hS6FHx6v.js.br +0 -0
- codex/static_root/assets/datetime-column-hS6FHx6v.js.gz +0 -0
- codex/static_root/assets/filter-jwn1nJiw.5001415d600e.js +1 -0
- codex/static_root/assets/filter-jwn1nJiw.5001415d600e.js.br +0 -0
- codex/static_root/assets/filter-jwn1nJiw.5001415d600e.js.gz +0 -0
- codex/static_root/assets/filter-jwn1nJiw.js +1 -0
- codex/static_root/assets/filter-jwn1nJiw.js.br +0 -0
- codex/static_root/assets/filter-jwn1nJiw.js.gz +0 -0
- codex/static_root/assets/flag-tab--ch0e4rD.58776d26590c.js +1 -0
- codex/static_root/assets/flag-tab--ch0e4rD.58776d26590c.js.br +0 -0
- codex/static_root/assets/flag-tab--ch0e4rD.58776d26590c.js.gz +0 -0
- codex/static_root/assets/flag-tab--ch0e4rD.js +1 -0
- codex/static_root/assets/flag-tab--ch0e4rD.js.br +0 -0
- codex/static_root/assets/flag-tab--ch0e4rD.js.gz +0 -0
- codex/static_root/assets/flag-tab-Iblj4w2l.6bf1e65123e6.css +1 -0
- codex/static_root/assets/flag-tab-Iblj4w2l.6bf1e65123e6.css.br +1 -0
- codex/static_root/assets/flag-tab-Iblj4w2l.6bf1e65123e6.css.gz +0 -0
- codex/static_root/assets/flag-tab-Iblj4w2l.css +1 -0
- codex/static_root/assets/flag-tab-Iblj4w2l.css.br +1 -0
- codex/static_root/assets/flag-tab-Iblj4w2l.css.gz +0 -0
- codex/static_root/assets/group-tab-ArQ1w79f.cc06faf5e6b9.js +1 -0
- codex/static_root/assets/group-tab-ArQ1w79f.cc06faf5e6b9.js.br +0 -0
- codex/static_root/assets/group-tab-ArQ1w79f.cc06faf5e6b9.js.gz +0 -0
- codex/static_root/assets/group-tab-ArQ1w79f.js +1 -0
- codex/static_root/assets/group-tab-ArQ1w79f.js.br +0 -0
- codex/static_root/assets/group-tab-ArQ1w79f.js.gz +0 -0
- codex/static_root/assets/group-tab-Nw18UnrX.5fc2cfa31669.css +1 -0
- codex/static_root/assets/group-tab-Nw18UnrX.5fc2cfa31669.css.br +0 -0
- codex/static_root/assets/group-tab-Nw18UnrX.5fc2cfa31669.css.gz +0 -0
- codex/static_root/assets/group-tab-Nw18UnrX.css +1 -0
- codex/static_root/assets/group-tab-Nw18UnrX.css.br +0 -0
- codex/static_root/assets/group-tab-Nw18UnrX.css.gz +0 -0
- codex/static_root/assets/http-error--_xFbHmk.4ac657568407.js +1 -0
- codex/static_root/assets/http-error--_xFbHmk.4ac657568407.js.br +0 -0
- codex/static_root/assets/http-error--_xFbHmk.4ac657568407.js.gz +0 -0
- codex/static_root/assets/http-error--_xFbHmk.js +1 -0
- codex/static_root/assets/http-error--_xFbHmk.js.br +0 -0
- codex/static_root/assets/http-error--_xFbHmk.js.gz +0 -0
- codex/static_root/assets/index-RrPhDVxT.36d50c91b2c1.js +1 -0
- codex/static_root/assets/index-RrPhDVxT.36d50c91b2c1.js.br +0 -0
- codex/static_root/assets/index-RrPhDVxT.36d50c91b2c1.js.gz +0 -0
- codex/static_root/assets/index-RrPhDVxT.js +1 -0
- codex/static_root/assets/index-RrPhDVxT.js.br +0 -0
- codex/static_root/assets/index-RrPhDVxT.js.gz +0 -0
- codex/static_root/assets/library-tab-2Sg7UOb_.c8123e4bc5a4.css +1 -0
- codex/static_root/assets/library-tab-2Sg7UOb_.c8123e4bc5a4.css.br +3 -0
- codex/static_root/assets/library-tab-2Sg7UOb_.c8123e4bc5a4.css.gz +0 -0
- codex/static_root/assets/library-tab-2Sg7UOb_.css +1 -0
- codex/static_root/assets/library-tab-2Sg7UOb_.css.br +3 -0
- codex/static_root/assets/library-tab-2Sg7UOb_.css.gz +0 -0
- codex/static_root/assets/library-tab-DTSk7xJH.c19461f4ea09.js +1 -0
- codex/static_root/assets/library-tab-DTSk7xJH.c19461f4ea09.js.br +0 -0
- codex/static_root/assets/library-tab-DTSk7xJH.c19461f4ea09.js.gz +0 -0
- codex/static_root/assets/library-tab-DTSk7xJH.js +1 -0
- codex/static_root/assets/library-tab-DTSk7xJH.js.br +0 -0
- codex/static_root/assets/library-tab-DTSk7xJH.js.gz +0 -0
- codex/static_root/assets/main-fEXxBNBg.d57876a83567.js +37 -0
- codex/static_root/assets/main-fEXxBNBg.d57876a83567.js.br +0 -0
- codex/static_root/assets/main-fEXxBNBg.d57876a83567.js.gz +0 -0
- codex/static_root/assets/main-fEXxBNBg.js +37 -0
- codex/static_root/assets/main-fEXxBNBg.js.br +0 -0
- codex/static_root/assets/main-fEXxBNBg.js.gz +0 -0
- codex/static_root/assets/{metadata-dialog-h6Ksq8nL.042fed116504.css → metadata-dialog-GoqskInA.4e2d05d79644.css} +1 -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-h6Ksq8nL.css → metadata-dialog-GoqskInA.css} +1 -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-JnnKcg8a.ab72001734ab.js +1 -0
- codex/static_root/assets/metadata-dialog-JnnKcg8a.ab72001734ab.js.br +0 -0
- codex/static_root/assets/metadata-dialog-JnnKcg8a.ab72001734ab.js.gz +0 -0
- codex/static_root/assets/metadata-dialog-JnnKcg8a.js +1 -0
- codex/static_root/assets/metadata-dialog-JnnKcg8a.js.br +0 -0
- codex/static_root/assets/metadata-dialog-JnnKcg8a.js.gz +0 -0
- codex/static_root/assets/{page-pdf-8DCW311Z.58ff7f64f5c7.js → page-pdf-g4F4Ke5z.389bdaf4fdf0.js} +1 -1
- codex/static_root/assets/page-pdf-g4F4Ke5z.389bdaf4fdf0.js.br +0 -0
- codex/static_root/assets/page-pdf-g4F4Ke5z.389bdaf4fdf0.js.gz +0 -0
- codex/static_root/assets/{page-pdf-8DCW311Z.js → page-pdf-g4F4Ke5z.js} +1 -1
- codex/static_root/assets/page-pdf-g4F4Ke5z.js.br +0 -0
- codex/static_root/assets/page-pdf-g4F4Ke5z.js.gz +0 -0
- codex/static_root/assets/reader-QLyUuSWQ.9e6c0e79fcc4.js +7 -0
- codex/static_root/assets/reader-QLyUuSWQ.9e6c0e79fcc4.js.br +0 -0
- codex/static_root/assets/reader-QLyUuSWQ.9e6c0e79fcc4.js.gz +0 -0
- codex/static_root/assets/reader-QLyUuSWQ.js +7 -0
- codex/static_root/assets/reader-QLyUuSWQ.js.br +0 -0
- codex/static_root/assets/reader-QLyUuSWQ.js.gz +0 -0
- codex/static_root/assets/stats-tab-Uk5KYfnH.577928e85d6f.js +1 -0
- codex/static_root/assets/stats-tab-Uk5KYfnH.577928e85d6f.js.br +0 -0
- codex/static_root/assets/stats-tab-Uk5KYfnH.577928e85d6f.js.gz +0 -0
- codex/static_root/assets/stats-tab-Uk5KYfnH.js +1 -0
- codex/static_root/assets/stats-tab-Uk5KYfnH.js.br +0 -0
- codex/static_root/assets/stats-tab-Uk5KYfnH.js.gz +0 -0
- codex/static_root/assets/stats-tab-p4QMYgdc.2f98833311d8.css +1 -0
- 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 +1 -0
- 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-ZlzQK_L_.11bd9219039b.css +1 -0
- codex/static_root/assets/task-tab-ZlzQK_L_.11bd9219039b.css.br +4 -0
- codex/static_root/assets/task-tab-ZlzQK_L_.11bd9219039b.css.gz +0 -0
- codex/static_root/assets/task-tab-ZlzQK_L_.css +1 -0
- codex/static_root/assets/task-tab-ZlzQK_L_.css.br +4 -0
- codex/static_root/assets/task-tab-ZlzQK_L_.css.gz +0 -0
- codex/static_root/assets/task-tab-yrzb0Yg7.acca63d69906.js +1 -0
- codex/static_root/assets/task-tab-yrzb0Yg7.acca63d69906.js.br +0 -0
- codex/static_root/assets/task-tab-yrzb0Yg7.acca63d69906.js.gz +0 -0
- codex/static_root/assets/task-tab-yrzb0Yg7.js +1 -0
- codex/static_root/assets/task-tab-yrzb0Yg7.js.br +0 -0
- codex/static_root/assets/task-tab-yrzb0Yg7.js.gz +0 -0
- codex/static_root/assets/to-case-FdEoSAB7.98a284e67723.js +1 -0
- codex/static_root/assets/to-case-FdEoSAB7.98a284e67723.js.br +0 -0
- codex/static_root/assets/to-case-FdEoSAB7.js +1 -0
- codex/static_root/assets/to-case-FdEoSAB7.js.br +0 -0
- codex/static_root/assets/user-tab-tjEgknk-.03270572c181.js +1 -0
- codex/static_root/assets/user-tab-tjEgknk-.03270572c181.js.br +0 -0
- codex/static_root/assets/user-tab-tjEgknk-.03270572c181.js.gz +0 -0
- codex/static_root/assets/user-tab-tjEgknk-.js +1 -0
- codex/static_root/assets/user-tab-tjEgknk-.js.br +0 -0
- codex/static_root/assets/user-tab-tjEgknk-.js.gz +0 -0
- codex/static_root/manifest.e029798eeec1.json +572 -0
- codex/static_root/manifest.e029798eeec1.json.br +0 -0
- codex/static_root/manifest.e029798eeec1.json.gz +0 -0
- codex/static_root/manifest.json +572 -0
- codex/static_root/manifest.json.br +0 -0
- codex/static_root/manifest.json.gz +0 -0
- codex/static_root/staticfiles.json +1 -1
- codex/views/browser/metadata.py +17 -12
- codex/views/const.py +2 -0
- codex/views/cover.py +1 -1
- codex/views/opds/const.py +0 -1
- codex/views/opds/v1/feed.py +2 -5
- codex/views/opds/v2/feed.py +2 -1
- codex/views/opds/v2/links.py +3 -2
- codex/views/reader/page.py +2 -2
- codex/views/template.py +1 -1
- {codex-1.5.0rc1.dist-info → codex-1.5.0rc2.dist-info}/METADATA +29 -27
- {codex-1.5.0rc1.dist-info → codex-1.5.0rc2.dist-info}/RECORD +372 -117
- codex/static_root/admin/css/codex-admin-dark.4d45b3679935.css +0 -51
- codex/static_root/admin/css/codex-admin-dark.4d45b3679935.css.br +0 -0
- codex/static_root/admin/css/codex-admin-dark.4d45b3679935.css.gz +0 -0
- codex/static_root/admin/css/codex-admin-dark.css +0 -51
- codex/static_root/admin/css/codex-admin-dark.css.br +0 -0
- codex/static_root/admin/css/codex-admin-dark.css.gz +0 -0
- codex/static_root/admin/css/codex-admin.7ad6b144bf84.css +0 -60
- codex/static_root/admin/css/codex-admin.7ad6b144bf84.css.br +0 -0
- codex/static_root/admin/css/codex-admin.7ad6b144bf84.css.gz +0 -0
- codex/static_root/admin/css/codex-admin.css +0 -60
- codex/static_root/admin/css/codex-admin.css.br +0 -0
- codex/static_root/admin/css/codex-admin.css.gz +0 -0
- codex/static_root/admin/css/queue-job.bee4dbac67f1.css +0 -9
- codex/static_root/admin/css/queue-job.bee4dbac67f1.css.br +0 -0
- codex/static_root/admin/css/queue-job.bee4dbac67f1.css.gz +0 -0
- codex/static_root/admin/css/queue-job.css +0 -9
- codex/static_root/admin/css/queue-job.css.br +0 -0
- codex/static_root/admin/css/queue-job.css.gz +0 -0
- codex/static_root/admin/js/queue-job.628c5e325415.js +0 -53
- codex/static_root/admin/js/queue-job.628c5e325415.js.br +0 -0
- codex/static_root/admin/js/queue-job.628c5e325415.js.gz +0 -0
- codex/static_root/admin/js/queue-job.js +0 -53
- codex/static_root/admin/js/queue-job.js.br +0 -0
- codex/static_root/admin/js/queue-job.js.gz +0 -0
- codex/static_root/assets/admin-I3RmFwkX.css +0 -1
- codex/static_root/assets/admin-I3RmFwkX.css.br +0 -0
- codex/static_root/assets/admin-I3RmFwkX.css.gz +0 -0
- codex/static_root/assets/admin-I3RmFwkX.f37f64bccd87.css +0 -1
- codex/static_root/assets/admin-I3RmFwkX.f37f64bccd87.css.br +0 -0
- codex/static_root/assets/admin-I3RmFwkX.f37f64bccd87.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-6Jzha_HG.c37134d4a58c.css +0 -1
- codex/static_root/assets/admin-drawer-panel-6Jzha_HG.c37134d4a58c.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-6Jzha_HG.c37134d4a58c.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-6Jzha_HG.css +0 -1
- codex/static_root/assets/admin-drawer-panel-6Jzha_HG.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-6Jzha_HG.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-v7PBN80C.b839d90a76e3.js +0 -1
- codex/static_root/assets/admin-drawer-panel-v7PBN80C.b839d90a76e3.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-v7PBN80C.b839d90a76e3.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-v7PBN80C.js +0 -1
- codex/static_root/assets/admin-drawer-panel-v7PBN80C.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-v7PBN80C.js.gz +0 -0
- codex/static_root/assets/admin-eKzY3vzh.6fb51913d3af.js +0 -49
- codex/static_root/assets/admin-eKzY3vzh.6fb51913d3af.js.br +0 -0
- codex/static_root/assets/admin-eKzY3vzh.6fb51913d3af.js.gz +0 -0
- codex/static_root/assets/admin-eKzY3vzh.js +0 -49
- codex/static_root/assets/admin-eKzY3vzh.js.br +0 -0
- codex/static_root/assets/admin-eKzY3vzh.js.gz +0 -0
- codex/static_root/assets/browser-2U3chfQN.9841f3b5f8bf.js +0 -1
- codex/static_root/assets/browser-2U3chfQN.9841f3b5f8bf.js.br +0 -0
- codex/static_root/assets/browser-2U3chfQN.9841f3b5f8bf.js.gz +0 -0
- codex/static_root/assets/browser-2U3chfQN.js +0 -1
- codex/static_root/assets/browser-2U3chfQN.js.br +0 -0
- codex/static_root/assets/browser-2U3chfQN.js.gz +0 -0
- codex/static_root/assets/browser-LpHrL2zI.11f261776acd.css.br +0 -0
- codex/static_root/assets/browser-LpHrL2zI.css.br +0 -0
- codex/static_root/assets/http-error-tGvBmzRt.6d163aa84451.js +0 -1
- codex/static_root/assets/http-error-tGvBmzRt.6d163aa84451.js.br +0 -0
- codex/static_root/assets/http-error-tGvBmzRt.6d163aa84451.js.gz +0 -0
- codex/static_root/assets/http-error-tGvBmzRt.js +0 -1
- codex/static_root/assets/http-error-tGvBmzRt.js.br +0 -0
- codex/static_root/assets/http-error-tGvBmzRt.js.gz +0 -0
- codex/static_root/assets/main-2hDi4F7b.a08454eeb79f.js +0 -1
- codex/static_root/assets/main-2hDi4F7b.a08454eeb79f.js.br +0 -0
- codex/static_root/assets/main-2hDi4F7b.a08454eeb79f.js.gz +0 -0
- codex/static_root/assets/main-2hDi4F7b.js +0 -1
- codex/static_root/assets/main-2hDi4F7b.js.br +0 -0
- codex/static_root/assets/main-2hDi4F7b.js.gz +0 -0
- codex/static_root/assets/metadata-dialog-LCLm-ZqL.26f9e71ba429.js +0 -1
- codex/static_root/assets/metadata-dialog-LCLm-ZqL.26f9e71ba429.js.br +0 -0
- codex/static_root/assets/metadata-dialog-LCLm-ZqL.26f9e71ba429.js.gz +0 -0
- codex/static_root/assets/metadata-dialog-LCLm-ZqL.js +0 -1
- codex/static_root/assets/metadata-dialog-LCLm-ZqL.js.br +0 -0
- codex/static_root/assets/metadata-dialog-LCLm-ZqL.js.gz +0 -0
- codex/static_root/assets/metadata-dialog-h6Ksq8nL.042fed116504.css.br +0 -0
- codex/static_root/assets/metadata-dialog-h6Ksq8nL.042fed116504.css.gz +0 -0
- codex/static_root/assets/metadata-dialog-h6Ksq8nL.css.br +0 -0
- codex/static_root/assets/metadata-dialog-h6Ksq8nL.css.gz +0 -0
- codex/static_root/assets/page-pdf-8DCW311Z.58ff7f64f5c7.js.br +0 -0
- codex/static_root/assets/page-pdf-8DCW311Z.58ff7f64f5c7.js.gz +0 -0
- codex/static_root/assets/page-pdf-8DCW311Z.js.br +0 -0
- codex/static_root/assets/page-pdf-8DCW311Z.js.gz +0 -0
- codex/static_root/assets/reader-YZw9-gq4.c6e5ac51f5b9.js +0 -7
- codex/static_root/assets/reader-YZw9-gq4.c6e5ac51f5b9.js.br +0 -0
- codex/static_root/assets/reader-YZw9-gq4.c6e5ac51f5b9.js.gz +0 -0
- codex/static_root/assets/reader-YZw9-gq4.js +0 -7
- codex/static_root/assets/reader-YZw9-gq4.js.br +0 -0
- codex/static_root/assets/reader-YZw9-gq4.js.gz +0 -0
- {codex-1.5.0rc1.dist-info → codex-1.5.0rc2.dist-info}/LICENSE +0 -0
- {codex-1.5.0rc1.dist-info → codex-1.5.0rc2.dist-info}/WHEEL +0 -0
- {codex-1.5.0rc1.dist-info → codex-1.5.0rc2.dist-info}/entry_points.txt +0 -0
codex/views/cover.py
CHANGED
codex/views/opds/const.py
CHANGED
codex/views/opds/v1/feed.py
CHANGED
|
@@ -12,11 +12,8 @@ from codex.serializers.opds.v1 import (
|
|
|
12
12
|
OPDS1TemplateSerializer,
|
|
13
13
|
)
|
|
14
14
|
from codex.views.browser.browser import BrowserView
|
|
15
|
-
from codex.views.
|
|
16
|
-
|
|
17
|
-
FALSY,
|
|
18
|
-
MimeType,
|
|
19
|
-
)
|
|
15
|
+
from codex.views.const import FALSY
|
|
16
|
+
from codex.views.opds.const import BLANK_TITLE, MimeType
|
|
20
17
|
from codex.views.opds.v1.entry.data import OPDS1EntryData
|
|
21
18
|
from codex.views.opds.v1.entry.entry import OPDS1Entry
|
|
22
19
|
from codex.views.opds.v1.links import (
|
codex/views/opds/v2/feed.py
CHANGED
|
@@ -10,7 +10,8 @@ from codex.logger.logging import get_logger
|
|
|
10
10
|
from codex.models import AdminFlag
|
|
11
11
|
from codex.serializers.opds.v2 import OPDS2FeedSerializer
|
|
12
12
|
from codex.views.browser.browser import BrowserView
|
|
13
|
-
from codex.views.
|
|
13
|
+
from codex.views.const import FALSY
|
|
14
|
+
from codex.views.opds.const import BLANK_TITLE
|
|
14
15
|
from codex.views.opds.v2.const import (
|
|
15
16
|
FACETS,
|
|
16
17
|
FACETS_SECTION_DATA,
|
codex/views/opds/v2/links.py
CHANGED
|
@@ -6,7 +6,8 @@ from urllib.parse import parse_qsl, urlparse
|
|
|
6
6
|
from django.urls import reverse
|
|
7
7
|
|
|
8
8
|
from codex.views.browser.browser import BrowserView
|
|
9
|
-
from codex.views.
|
|
9
|
+
from codex.views.const import FALSY
|
|
10
|
+
from codex.views.opds.const import MimeType, Rel
|
|
10
11
|
from codex.views.opds.util import update_href_query_params
|
|
11
12
|
|
|
12
13
|
|
|
@@ -97,7 +98,7 @@ class LinksMixin(BrowserView):
|
|
|
97
98
|
def _normalize_query_params(qps_dict):
|
|
98
99
|
if qps_dict.get("orderBy") == "sort_name":
|
|
99
100
|
qps_dict.pop("orderBy")
|
|
100
|
-
if qps_dict.get("orderReverse")
|
|
101
|
+
if qps_dict.get("orderReverse", "").lower() in FALSY:
|
|
101
102
|
qps_dict.pop("orderReverse")
|
|
102
103
|
return frozenset(qps_dict.items())
|
|
103
104
|
|
codex/views/reader/page.py
CHANGED
|
@@ -10,10 +10,10 @@ from rest_framework.negotiation import BaseContentNegotiation
|
|
|
10
10
|
from codex.logger.logging import get_logger
|
|
11
11
|
from codex.models import Comic
|
|
12
12
|
from codex.views.bookmark import BookmarkBaseView
|
|
13
|
+
from codex.views.const import FALSY
|
|
13
14
|
|
|
14
15
|
LOG = get_logger(__name__)
|
|
15
16
|
PDF_MIME_TYPE = "application/pdf"
|
|
16
|
-
FALSY = {"", "false", "0", False}
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class IgnoreClientContentNegotiation(BaseContentNegotiation):
|
|
@@ -61,7 +61,7 @@ class ReaderPageView(BookmarkBaseView):
|
|
|
61
61
|
pk = self.kwargs.get("pk")
|
|
62
62
|
comic = Comic.objects.filter(group_acl_filter).only("path").get(pk=pk)
|
|
63
63
|
page = self.kwargs.get("page")
|
|
64
|
-
to_pixmap = self.request.GET.get("pixmap") not in FALSY
|
|
64
|
+
to_pixmap = self.request.GET.get("pixmap", "").lower() not in FALSY
|
|
65
65
|
if comic.file_type == Comic.FileType.PDF.value and not to_pixmap:
|
|
66
66
|
content_type = PDF_MIME_TYPE
|
|
67
67
|
else:
|
codex/views/template.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: codex
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.0rc2
|
|
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.0.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)
|
|
@@ -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.
|
|
@@ -127,21 +127,10 @@ brew install jpeg libffi libyaml libzip openssl python unrar webp
|
|
|
127
127
|
|
|
128
128
|
###### <a href="#debian">Debian</a>
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
...and Ubuntu, Mint, MX and others.
|
|
131
131
|
|
|
132
132
|
```sh
|
|
133
|
-
apt install build-essential
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
older releases may use the `libweb6` package instead.
|
|
137
|
-
|
|
138
|
-
###### Debian on ARM
|
|
139
|
-
|
|
140
|
-
The python cryptography wheel needs compiling on rare architectures. Install the
|
|
141
|
-
Rust compiler.
|
|
142
|
-
|
|
143
|
-
```sh
|
|
144
|
-
apt install cargo
|
|
133
|
+
apt install build-essential libimagequant0 libjpeg62-turbo libopenjp2-7 libssl3 libyaml-0-2 libtiff6 libwebp7 python3-dev python3-pip mupdf unrar zlib1g
|
|
145
134
|
```
|
|
146
135
|
|
|
147
136
|
###### Alpine
|
|
@@ -150,25 +139,25 @@ apt install cargo
|
|
|
150
139
|
apk add bsd-compat-headers build-base jpeg-dev libffi-dev libwebp openssl-dev yaml-dev zlib-dev
|
|
151
140
|
```
|
|
152
141
|
|
|
153
|
-
##### Install unrar Runtime Dependency on Linux
|
|
142
|
+
##### Install unrar Runtime Dependency on non-debian Linux
|
|
154
143
|
|
|
155
|
-
Codex requires unrar to read
|
|
144
|
+
Codex requires unrar to read CBR formatted comic archives. Unrar is often not
|
|
156
145
|
packaged for Linux, but here are some instructions:
|
|
157
146
|
[How to install unrar in Linux](https://www.unixtutorial.org/how-to-install-unrar-in-linux/)
|
|
158
147
|
|
|
159
|
-
Unrar as packaged for Alpine Linux v3.14 seems to work on Alpine v3.15
|
|
148
|
+
Unrar as packaged for Alpine Linux v3.14 seems to work on Alpine v3.15+
|
|
160
149
|
|
|
161
150
|
#### Windows
|
|
162
151
|
|
|
163
152
|
Windows users should use Docker to run Codex until this documentation section is
|
|
164
153
|
complete.
|
|
165
154
|
|
|
166
|
-
Codex can _probably_ Windows Linux Subsystem but I haven't
|
|
155
|
+
Codex can _probably_ run on the Windows Linux Subsystem but I haven't personally
|
|
167
156
|
tested it yet. Try following the instructions for [Debian](#debian) above. There
|
|
168
157
|
may be outstanding platform related bugs.
|
|
169
158
|
|
|
170
|
-
Contributions to
|
|
171
|
-
[the outstanding issue](https://github.com/ajslater/codex/issues/76) or
|
|
159
|
+
Contributions to the Windows documentation will be gratefully accepted on
|
|
160
|
+
[the outstanding issue](https://github.com/ajslater/codex/issues/76) or Discord.
|
|
172
161
|
|
|
173
162
|
#### Install Codex with pip
|
|
174
163
|
|
|
@@ -248,6 +237,11 @@ A library with _any_ groups is accessible only to users who are in those groups.
|
|
|
248
237
|
Use the Groups admin panel to create groups and the Users admin panel to add and
|
|
249
238
|
remove users to groups.
|
|
250
239
|
|
|
240
|
+
#### Include and Exclude Groups
|
|
241
|
+
|
|
242
|
+
Codex can make groups for libraries that exclude groups of users or exclude
|
|
243
|
+
everyone and include only certain groups of users.
|
|
244
|
+
|
|
251
245
|
### PDFs
|
|
252
246
|
|
|
253
247
|
Codex only reads PDF metadata from the filename. If you decide to include PDFs
|
|
@@ -282,9 +276,11 @@ index, a Django cache and comic book cover thumbnails.
|
|
|
282
276
|
|
|
283
277
|
### Environment Variables
|
|
284
278
|
|
|
279
|
+
### Codex
|
|
280
|
+
|
|
285
281
|
- `LOGLEVEL` will change how verbose codex's logging is. Valid values are
|
|
286
282
|
`ERROR`, `WARNING`, `INFO`, `DEBUG`. The default is `INFO`.
|
|
287
|
-
- `TIMEZONE` or `TZ` will explicitly the timezone in long format (e.g.
|
|
283
|
+
- `TIMEZONE` or `TZ` will explicitly set the timezone in long format (e.g.
|
|
288
284
|
`"America/Los Angeles"`). This is useful inside Docker because codex cannot
|
|
289
285
|
automatically detect the host machine's timezone.
|
|
290
286
|
- `CODEX_CONFIG_DIR` will set the path to codex config directory. Defaults to
|
|
@@ -298,6 +294,12 @@ index, a Django cache and comic book cover thumbnails.
|
|
|
298
294
|
- `CODEX_LOG_TO_FILE=0` will not log to files.
|
|
299
295
|
- `CODEX_LOG_TO_CONSOLE=0` will not log to the console.
|
|
300
296
|
|
|
297
|
+
#### Comicbox
|
|
298
|
+
|
|
299
|
+
- `DEBUG_TRANSFORM` will show verbose information about how the comicbox library
|
|
300
|
+
reads all archive metadata sources and transforms it into a the comicbox
|
|
301
|
+
schema.
|
|
302
|
+
|
|
301
303
|
### Reverse Proxy
|
|
302
304
|
|
|
303
305
|
[nginx](https://nginx.org/) is often used as a TLS terminator and subpath proxy.
|
|
@@ -346,11 +348,11 @@ Codex can run with as little as 1GB available RAM. Large batch jobs –like
|
|
|
346
348
|
importing and indexing tens of thousands of comics at once– will run faster the
|
|
347
349
|
more memory is available to Codex. The biggest gains in speed happen when you
|
|
348
350
|
increase memory up to about 6GB. Codex batch jobs do get faster the more memory
|
|
349
|
-
|
|
351
|
+
it has above 6GB, but with diminishing returns.
|
|
350
352
|
|
|
351
|
-
If you run Codex in an admin restricted memory environment you might want
|
|
352
|
-
temporarily give
|
|
353
|
-
restrict it for normal operation.
|
|
353
|
+
If you must run Codex in an admin restricted memory environment you might want
|
|
354
|
+
to temporarily give Codex a lot of memory to run a very large import job and
|
|
355
|
+
then restrict it for normal operation.
|
|
354
356
|
|
|
355
357
|
## <a name="usage">📖 Usage</a>
|
|
356
358
|
|