codex 1.12.7__tar.gz → 2.0.0__tar.gz
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.
- codex-2.0.0/.dockerignore +42 -0
- codex-2.0.0/NEWS.md +2205 -0
- codex-2.0.0/PKG-INFO +1041 -0
- codex-2.0.0/README.md +985 -0
- codex-2.0.0/bin/benchmark-opds.sh +17 -0
- codex-2.0.0/bin/ci-download-dist-if-identical.sh +38 -0
- codex-2.0.0/bin/cleanup-pypi-alpha.sh +31 -0
- codex-2.0.0/bin/delete-files.sh +13 -0
- codex-2.0.0/bin/dev.sh +88 -0
- codex-2.0.0/bin/docker-tag-latest.sh +40 -0
- codex-2.0.0/bin/fix-docker.sh +11 -0
- codex-2.0.0/bin/fix-sh.sh +7 -0
- codex-2.0.0/bin/ghcr-prune-alphas.sh +224 -0
- codex-2.0.0/bin/lint-ci.sh +11 -0
- codex-2.0.0/bin/lint-complexity.sh +10 -0
- codex-2.0.0/bin/lint-darwin.sh +10 -0
- codex-2.0.0/bin/lint-docker.sh +12 -0
- codex-2.0.0/bin/lint-sh.sh +8 -0
- codex-2.0.0/bin/prettier-nginx.sh +7 -0
- codex-2.0.0/bin/remark-for-claude.sh +7 -0
- codex-2.0.0/bin/roman.py +205 -0
- codex-2.0.0/bin/sort-ignore.sh +10 -0
- codex-2.0.0/bin/type-python.sh +9 -0
- codex-2.0.0/bin/vendor-diff-package.sh +34 -0
- codex-2.0.0/bin/version-node.sh +15 -0
- codex-2.0.0/bin/version-python.sh +9 -0
- codex-2.0.0/bun.lock +1232 -0
- codex-2.0.0/codex/applications/websocket.py +22 -0
- codex-2.0.0/codex/cache.py +77 -0
- codex-2.0.0/codex/choices/admin.py +74 -0
- codex-2.0.0/codex/choices/browser.py +708 -0
- codex-2.0.0/codex/choices/choices_to_json.py +194 -0
- codex-2.0.0/codex/choices/jobs.py +461 -0
- codex-2.0.0/codex/choices/notifications.py +41 -0
- codex-2.0.0/codex/choices/statii.py +46 -0
- codex-2.0.0/codex/choices/tagging.py +227 -0
- codex-2.0.0/codex/collection.py +95 -0
- codex-2.0.0/codex/librarian/bookmark/bookmarkd.py +193 -0
- codex-2.0.0/codex/librarian/bookmark/last_route.py +33 -0
- codex-2.0.0/codex/librarian/bookmark/latest_version.py +63 -0
- codex-2.0.0/codex/librarian/bookmark/tasks.py +55 -0
- codex-2.0.0/codex/librarian/covers/purge.py +115 -0
- codex-2.0.0/codex/librarian/fs/filters.py +96 -0
- codex-2.0.0/codex/librarian/fs/poller/poller.py +328 -0
- codex-2.0.0/codex/librarian/fs/poller/snapshot.py +233 -0
- codex-2.0.0/codex/librarian/fs/poller/snapshot_diff.py +305 -0
- codex-2.0.0/codex/librarian/fs/watcher/dirs.py +81 -0
- codex-2.0.0/codex/librarian/fs/watcher/events.py +104 -0
- codex-2.0.0/codex/librarian/fs/watcher/move.py +131 -0
- codex-2.0.0/codex/librarian/fs/watcher/watcher.py +199 -0
- codex-2.0.0/codex/librarian/librariand.py +214 -0
- codex-2.0.0/codex/librarian/memory.py +72 -0
- codex-2.0.0/codex/librarian/notifier/tasks.py +61 -0
- codex-2.0.0/codex/librarian/onlinetag/__init__.py +1 -0
- codex-2.0.0/codex/librarian/onlinetag/credential_validator.py +101 -0
- codex-2.0.0/codex/librarian/onlinetag/estimate.py +63 -0
- codex-2.0.0/codex/librarian/onlinetag/explicit_id.py +139 -0
- codex-2.0.0/codex/librarian/onlinetag/onlinetagd.py +83 -0
- codex-2.0.0/codex/librarian/onlinetag/outcome_stats.py +121 -0
- codex-2.0.0/codex/librarian/onlinetag/session_cache.py +94 -0
- codex-2.0.0/codex/librarian/onlinetag/session_manager.py +773 -0
- codex-2.0.0/codex/librarian/onlinetag/session_snapshot.py +330 -0
- codex-2.0.0/codex/librarian/onlinetag/session_state.py +83 -0
- codex-2.0.0/codex/librarian/onlinetag/status.py +31 -0
- codex-2.0.0/codex/librarian/onlinetag/tag_pass_runner.py +190 -0
- codex-2.0.0/codex/librarian/onlinetag/tasks.py +70 -0
- codex-2.0.0/codex/librarian/scribe/importer/const.py +475 -0
- codex-2.0.0/codex/librarian/scribe/importer/create/__init__.py +129 -0
- codex-2.0.0/codex/librarian/scribe/importer/create/comics.py +260 -0
- codex-2.0.0/codex/librarian/scribe/importer/create/const.py +131 -0
- codex-2.0.0/codex/librarian/scribe/importer/create/covers.py +111 -0
- codex-2.0.0/codex/librarian/scribe/importer/create/folders.py +98 -0
- codex-2.0.0/codex/librarian/scribe/importer/create/foreign_keys.py +309 -0
- codex-2.0.0/codex/librarian/scribe/importer/create/link_fks.py +190 -0
- codex-2.0.0/codex/librarian/scribe/importer/delete/__init__.py +37 -0
- codex-2.0.0/codex/librarian/scribe/importer/delete/comics.py +87 -0
- codex-2.0.0/codex/librarian/scribe/importer/delete/folders.py +34 -0
- codex-2.0.0/codex/librarian/scribe/importer/finish.py +117 -0
- codex-2.0.0/codex/librarian/scribe/importer/importer.py +114 -0
- codex-2.0.0/codex/librarian/scribe/importer/init.py +398 -0
- codex-2.0.0/codex/librarian/scribe/importer/link/const.py +33 -0
- codex-2.0.0/codex/librarian/scribe/importer/link/covers.py +17 -0
- codex-2.0.0/codex/librarian/scribe/importer/link/delete.py +101 -0
- codex-2.0.0/codex/librarian/scribe/importer/link/many_to_many.py +91 -0
- codex-2.0.0/codex/librarian/scribe/importer/link/prepare.py +239 -0
- codex-2.0.0/codex/librarian/scribe/importer/moved/covers.py +88 -0
- codex-2.0.0/codex/librarian/scribe/importer/moved/folders.py +232 -0
- codex-2.0.0/codex/librarian/scribe/importer/query/filters.py +106 -0
- codex-2.0.0/codex/librarian/scribe/importer/query/links_fk.py +139 -0
- codex-2.0.0/codex/librarian/scribe/importer/query/links_m2m.py +225 -0
- codex-2.0.0/codex/librarian/scribe/importer/query/update_comics.py +69 -0
- codex-2.0.0/codex/librarian/scribe/importer/read/__init__.py +14 -0
- codex-2.0.0/codex/librarian/scribe/importer/read/aggregate_path.py +109 -0
- codex-2.0.0/codex/librarian/scribe/importer/read/const.py +135 -0
- codex-2.0.0/codex/librarian/scribe/importer/read/extract.py +353 -0
- codex-2.0.0/codex/librarian/scribe/importer/read/folders.py +41 -0
- codex-2.0.0/codex/librarian/scribe/importer/read/foreign_keys.py +161 -0
- codex-2.0.0/codex/librarian/scribe/importer/read/many_to_many.py +283 -0
- codex-2.0.0/codex/librarian/scribe/janitor/adopt_folders.py +120 -0
- codex-2.0.0/codex/librarian/scribe/janitor/cleanup.py +525 -0
- codex-2.0.0/codex/librarian/scribe/janitor/failed_imports.py +33 -0
- codex-2.0.0/codex/librarian/scribe/janitor/integrity/__init__.py +135 -0
- codex-2.0.0/codex/librarian/scribe/janitor/integrity/foreign_keys.py +602 -0
- codex-2.0.0/codex/librarian/scribe/janitor/janitor.py +176 -0
- codex-2.0.0/codex/librarian/scribe/janitor/status.py +204 -0
- codex-2.0.0/codex/librarian/scribe/janitor/tasks.py +91 -0
- codex-2.0.0/codex/librarian/scribe/janitor/update.py +91 -0
- codex-2.0.0/codex/librarian/scribe/janitor/vacuum.py +169 -0
- codex-2.0.0/codex/librarian/scribe/lazy_importer.py +50 -0
- codex-2.0.0/codex/librarian/scribe/priority.py +85 -0
- codex-2.0.0/codex/librarian/scribe/scribed.py +163 -0
- codex-2.0.0/codex/librarian/scribe/status.py +30 -0
- codex-2.0.0/codex/librarian/scribe/tag_writer.py +169 -0
- codex-2.0.0/codex/librarian/scribe/tagwrite_errors.py +57 -0
- codex-2.0.0/codex/librarian/scribe/tasks.py +61 -0
- codex-2.0.0/codex/librarian/scribe/timestamp_update.py +144 -0
- codex-2.0.0/codex/librarian/status.py +83 -0
- codex-2.0.0/codex/librarian/status_controller.py +238 -0
- codex-2.0.0/codex/librarian/telemeter/scheduled_time.py +69 -0
- codex-2.0.0/codex/librarian/telemeter/stats.py +202 -0
- codex-2.0.0/codex/librarian/telemeter/telemeter.py +86 -0
- codex-2.0.0/codex/mail.py +59 -0
- codex-2.0.0/codex/management/__init__.py +1 -0
- codex-2.0.0/codex/management/commands/__init__.py +1 -0
- codex-2.0.0/codex/management/commands/restore_user_data.py +60 -0
- codex-2.0.0/codex/migrations/0034_comicbox2.py +792 -0
- codex-2.0.0/codex/migrations/0038_settings_tables.py +991 -0
- codex-2.0.0/codex/migrations/0039_metron_age_rating_default_view_and_performance.py +1092 -0
- codex-2.0.0/codex/migrations/0042_browser_table_view_and_favorites.py +274 -0
- codex-2.0.0/codex/migrations/0043_comicbox_tagging_defaults.py +1250 -0
- codex-2.0.0/codex/models/__init__.py +14 -0
- codex-2.0.0/codex/models/admin.py +285 -0
- codex-2.0.0/codex/models/bookmark.py +74 -0
- codex-2.0.0/codex/models/collections.py +214 -0
- codex-2.0.0/codex/models/comic.py +417 -0
- codex-2.0.0/codex/models/favorite.py +66 -0
- codex-2.0.0/codex/models/fields.py +137 -0
- codex-2.0.0/codex/models/library.py +67 -0
- codex-2.0.0/codex/models/named.py +180 -0
- codex-2.0.0/codex/models/paths.py +156 -0
- codex-2.0.0/codex/models/settings.py +583 -0
- codex-2.0.0/codex/serializers/admin/custom_cover.py +106 -0
- codex-2.0.0/codex/serializers/admin/email.py +73 -0
- codex-2.0.0/codex/serializers/admin/flags.py +57 -0
- codex-2.0.0/codex/serializers/admin/groups.py +69 -0
- codex-2.0.0/codex/serializers/admin/libraries.py +116 -0
- codex-2.0.0/codex/serializers/admin/stats.py +131 -0
- codex-2.0.0/codex/serializers/admin/tagging.py +192 -0
- codex-2.0.0/codex/serializers/admin/throttle.py +25 -0
- codex-2.0.0/codex/serializers/admin/users.py +92 -0
- codex-2.0.0/codex/serializers/auth.py +141 -0
- codex-2.0.0/codex/serializers/browser/metadata.py +243 -0
- codex-2.0.0/codex/serializers/browser/mixins.py +61 -0
- codex-2.0.0/codex/serializers/browser/mtime.py +23 -0
- codex-2.0.0/codex/serializers/browser/page.py +343 -0
- codex-2.0.0/codex/serializers/browser/settings.py +243 -0
- codex-2.0.0/codex/serializers/fields/__init__.py +37 -0
- codex-2.0.0/codex/serializers/fields/collection.py +19 -0
- codex-2.0.0/codex/serializers/fields/reader.py +33 -0
- codex-2.0.0/codex/serializers/models/collections.py +54 -0
- codex-2.0.0/codex/serializers/models/comic.py +84 -0
- codex-2.0.0/codex/serializers/models/named.py +269 -0
- codex-2.0.0/codex/serializers/opds/v1.py +73 -0
- codex-2.0.0/codex/serializers/opds/v2/progression.py +43 -0
- codex-2.0.0/codex/serializers/opds/v2/publication.py +162 -0
- codex-2.0.0/codex/serializers/reader.py +148 -0
- codex-2.0.0/codex/serializers/route.py +81 -0
- codex-2.0.0/codex/settings/__init__.py +1125 -0
- codex-2.0.0/codex/settings/codex.toml.default +166 -0
- codex-2.0.0/codex/settings/config.py +159 -0
- codex-2.0.0/codex/settings/db.py +207 -0
- codex-2.0.0/codex/settings/logging.py +154 -0
- codex-2.0.0/codex/settings/secret_key.py +28 -0
- codex-2.0.0/codex/signals/django_signals.py +73 -0
- codex-2.0.0/codex/startup/__init__.py +246 -0
- codex-2.0.0/codex/startup/db.py +244 -0
- codex-2.0.0/codex/startup/loguru.py +100 -0
- codex-2.0.0/codex/startup/registration.py +41 -0
- codex-2.0.0/codex/static/assets/VCard-BCYbpv-w.css +1 -0
- codex-2.0.0/codex/static/assets/VCard-BCYbpv-w.css.br +0 -0
- codex-2.0.0/codex/static/assets/VCard-BCYbpv-w.css.gz +0 -0
- codex-2.0.0/codex/static/assets/VCard-BYc8KKCr.js +1 -0
- codex-2.0.0/codex/static/assets/VCard-BYc8KKCr.js.br +0 -0
- codex-2.0.0/codex/static/assets/VCard-BYc8KKCr.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VCheckbox-Cjk80q1l.js +1 -0
- codex-2.0.0/codex/static/assets/VCheckbox-Cjk80q1l.js.br +0 -0
- codex-2.0.0/codex/static/assets/VCheckbox-Cjk80q1l.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VChip-DQqIdbfh.js +1 -0
- codex-2.0.0/codex/static/assets/VChip-DQqIdbfh.js.br +0 -0
- codex-2.0.0/codex/static/assets/VChip-DQqIdbfh.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VChip-DYEA3aEu.css +1 -0
- codex-2.0.0/codex/static/assets/VChip-DYEA3aEu.css.br +0 -0
- codex-2.0.0/codex/static/assets/VChip-DYEA3aEu.css.gz +0 -0
- codex-2.0.0/codex/static/assets/VCombobox-DkGsF5jF.js +2 -0
- codex-2.0.0/codex/static/assets/VCombobox-DkGsF5jF.js.br +0 -0
- codex-2.0.0/codex/static/assets/VCombobox-DkGsF5jF.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VDataTableVirtual-AirKnWji.js +1 -0
- codex-2.0.0/codex/static/assets/VDataTableVirtual-AirKnWji.js.br +0 -0
- codex-2.0.0/codex/static/assets/VDataTableVirtual-AirKnWji.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VDataTableVirtual-DKTG_5eJ.css +1 -0
- codex-2.0.0/codex/static/assets/VDataTableVirtual-DKTG_5eJ.css.br +0 -0
- codex-2.0.0/codex/static/assets/VDataTableVirtual-DKTG_5eJ.css.gz +0 -0
- codex-2.0.0/codex/static/assets/VExpansionPanels-BRDFnwgi.js +1 -0
- codex-2.0.0/codex/static/assets/VExpansionPanels-BRDFnwgi.js.br +0 -0
- codex-2.0.0/codex/static/assets/VExpansionPanels-BRDFnwgi.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VExpansionPanels-cvCWEkWz.css +1 -0
- codex-2.0.0/codex/static/assets/VExpansionPanels-cvCWEkWz.css.br +0 -0
- codex-2.0.0/codex/static/assets/VExpansionPanels-cvCWEkWz.css.gz +0 -0
- codex-2.0.0/codex/static/assets/VForm-CNM-Pia9.js +1 -0
- codex-2.0.0/codex/static/assets/VForm-CNM-Pia9.js.br +0 -0
- codex-2.0.0/codex/static/assets/VForm-CNM-Pia9.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VProgressCircular-CN8LNi1z.js +10 -0
- codex-2.0.0/codex/static/assets/VProgressCircular-CN8LNi1z.js.br +0 -0
- codex-2.0.0/codex/static/assets/VProgressCircular-CN8LNi1z.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VRadioGroup-Bn78mDyO.js +1 -0
- codex-2.0.0/codex/static/assets/VRadioGroup-Bn78mDyO.js.br +0 -0
- codex-2.0.0/codex/static/assets/VRadioGroup-Bn78mDyO.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VSelect-2krt_qw0.js +1 -0
- codex-2.0.0/codex/static/assets/VSelect-2krt_qw0.js.br +0 -0
- codex-2.0.0/codex/static/assets/VSelect-2krt_qw0.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VSelect-CHRolWTP.css +1 -0
- codex-2.0.0/codex/static/assets/VSelect-CHRolWTP.css.br +0 -0
- codex-2.0.0/codex/static/assets/VSelect-CHRolWTP.css.gz +0 -0
- codex-2.0.0/codex/static/assets/VSelectionControl-D9YoCXbC.css +1 -0
- codex-2.0.0/codex/static/assets/VSelectionControl-D9YoCXbC.css.br +0 -0
- codex-2.0.0/codex/static/assets/VSelectionControl-D9YoCXbC.css.gz +0 -0
- codex-2.0.0/codex/static/assets/VSelectionControl-DNEU-1zj.js +1 -0
- codex-2.0.0/codex/static/assets/VSelectionControl-DNEU-1zj.js.br +0 -0
- codex-2.0.0/codex/static/assets/VSelectionControl-DNEU-1zj.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VTable-CKnfZRbV.js +1 -0
- codex-2.0.0/codex/static/assets/VTable-CKnfZRbV.js.br +0 -0
- codex-2.0.0/codex/static/assets/VTable-CKnfZRbV.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VTable-LbK8_KkU.css +1 -0
- codex-2.0.0/codex/static/assets/VTable-LbK8_KkU.css.br +0 -0
- codex-2.0.0/codex/static/assets/VTable-LbK8_KkU.css.gz +0 -0
- codex-2.0.0/codex/static/assets/VTextField-Cctq0q1E.js +1 -0
- codex-2.0.0/codex/static/assets/VTextField-Cctq0q1E.js.br +0 -0
- codex-2.0.0/codex/static/assets/VTextField-Cctq0q1E.js.gz +0 -0
- codex-2.0.0/codex/static/assets/VTextField-CrvY9Oj5.css +1 -0
- codex-2.0.0/codex/static/assets/VTextField-CrvY9Oj5.css.br +0 -0
- codex-2.0.0/codex/static/assets/VTextField-CrvY9Oj5.css.gz +0 -0
- codex-2.0.0/codex/static/assets/action-bar-BS_BPdVi.js +1 -0
- codex-2.0.0/codex/static/assets/action-bar-BS_BPdVi.js.br +0 -0
- codex-2.0.0/codex/static/assets/action-bar-BS_BPdVi.js.gz +0 -0
- codex-2.0.0/codex/static/assets/action-bar-K7HMjb42.css +1 -0
- codex-2.0.0/codex/static/assets/action-bar-K7HMjb42.css.br +0 -0
- codex-2.0.0/codex/static/assets/action-bar-K7HMjb42.css.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-B664n-z3.css +1 -0
- codex-2.0.0/codex/static/assets/admin-B664n-z3.css.br +0 -0
- codex-2.0.0/codex/static/assets/admin-B664n-z3.css.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-B82fh66G.js +1 -0
- codex-2.0.0/codex/static/assets/admin-B82fh66G.js.br +0 -0
- codex-2.0.0/codex/static/assets/admin-B82fh66G.js.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-BVykesxN.js +1 -0
- codex-2.0.0/codex/static/assets/admin-BVykesxN.js.br +0 -0
- codex-2.0.0/codex/static/assets/admin-BVykesxN.js.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-menu-B2A5Xs3i.js +1 -0
- codex-2.0.0/codex/static/assets/admin-menu-B2A5Xs3i.js.br +0 -0
- codex-2.0.0/codex/static/assets/admin-menu-B2A5Xs3i.js.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-menu-C0OguDOK.css +1 -0
- codex-2.0.0/codex/static/assets/admin-menu-C0OguDOK.css.br +0 -0
- codex-2.0.0/codex/static/assets/admin-menu-C0OguDOK.css.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-section-BssvM8Fa.css +1 -0
- codex-2.0.0/codex/static/assets/admin-section-BssvM8Fa.css.br +0 -0
- codex-2.0.0/codex/static/assets/admin-section-BssvM8Fa.css.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-section-DkZ9DEbn.js +1 -0
- codex-2.0.0/codex/static/assets/admin-section-DkZ9DEbn.js.br +0 -0
- codex-2.0.0/codex/static/assets/admin-section-DkZ9DEbn.js.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-errors-8nyZgICC.css +1 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-errors-8nyZgICC.css.br +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-errors-8nyZgICC.css.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-errors-BlQjI6py.js +1 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-errors-BlQjI6py.js.br +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-errors-BlQjI6py.js.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-progress-DecSD55N.js +1 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-progress-DecSD55N.js.br +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-progress-DecSD55N.js.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-prompts-DUW6I7oZ.js +1 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-prompts-DUW6I7oZ.js.br +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-prompts-DUW6I7oZ.js.gz +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-prompts-DqHaoDam.css +1 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-prompts-DqHaoDam.css.br +0 -0
- codex-2.0.0/codex/static/assets/admin-settings-button-prompts-DqHaoDam.css.gz +0 -0
- codex-2.0.0/codex/static/assets/auth-D18IlZqc.js +1 -0
- codex-2.0.0/codex/static/assets/auth-D18IlZqc.js.br +0 -0
- codex-2.0.0/codex/static/assets/auth-D18IlZqc.js.gz +0 -0
- codex-2.0.0/codex/static/assets/base-CtB9eVX-.js +1 -0
- codex-2.0.0/codex/static/assets/base-CtB9eVX-.js.br +0 -0
- codex-2.0.0/codex/static/assets/base-CtB9eVX-.js.gz +0 -0
- codex-2.0.0/codex/static/assets/browser-BZw-XnaE.js +1 -0
- codex-2.0.0/codex/static/assets/browser-BZw-XnaE.js.br +0 -0
- codex-2.0.0/codex/static/assets/browser-BZw-XnaE.js.gz +0 -0
- codex-2.0.0/codex/static/assets/browser-D6DFGz5b.css +1 -0
- codex-2.0.0/codex/static/assets/browser-D6DFGz5b.css.br +0 -0
- codex-2.0.0/codex/static/assets/browser-D6DFGz5b.css.gz +0 -0
- codex-2.0.0/codex/static/assets/clipboard-Ca6iSMS3.js +1 -0
- codex-2.0.0/codex/static/assets/clipboard-Ca6iSMS3.js.br +0 -0
- codex-2.0.0/codex/static/assets/clipboard-Ca6iSMS3.js.gz +0 -0
- codex-2.0.0/codex/static/assets/close-button-CEYanHQ4.css +1 -0
- codex-2.0.0/codex/static/assets/close-button-sD9kLi-t.js +1 -0
- codex-2.0.0/codex/static/assets/close-button-sD9kLi-t.js.br +2 -0
- codex-2.0.0/codex/static/assets/close-button-sD9kLi-t.js.gz +0 -0
- codex-2.0.0/codex/static/assets/confirm-dialog-D5_8m9zi.css +1 -0
- codex-2.0.0/codex/static/assets/confirm-dialog-D5_8m9zi.css.br +0 -0
- codex-2.0.0/codex/static/assets/confirm-dialog-D5_8m9zi.css.gz +0 -0
- codex-2.0.0/codex/static/assets/confirm-dialog-f2WyMqg0.js +1 -0
- codex-2.0.0/codex/static/assets/confirm-dialog-f2WyMqg0.js.br +0 -0
- codex-2.0.0/codex/static/assets/confirm-dialog-f2WyMqg0.js.gz +0 -0
- codex-2.0.0/codex/static/assets/custom-covers-tab-8JwY6YaL.js +1 -0
- codex-2.0.0/codex/static/assets/custom-covers-tab-8JwY6YaL.js.br +0 -0
- codex-2.0.0/codex/static/assets/custom-covers-tab-8JwY6YaL.js.gz +0 -0
- codex-2.0.0/codex/static/assets/custom-covers-tab-L-QGNOCr.css +1 -0
- codex-2.0.0/codex/static/assets/custom-covers-tab-L-QGNOCr.css.br +0 -0
- codex-2.0.0/codex/static/assets/custom-covers-tab-L-QGNOCr.css.gz +0 -0
- codex-2.0.0/codex/static/assets/datetime-column-BZ76Qjcv.css +1 -0
- codex-2.0.0/codex/static/assets/datetime-column-D9vOrFU-.js +1 -0
- codex-2.0.0/codex/static/assets/datetime-column-D9vOrFU-.js.br +1 -0
- codex-2.0.0/codex/static/assets/datetime-column-D9vOrFU-.js.gz +0 -0
- codex-2.0.0/codex/static/assets/delete-row-dialog-Dhep7edh.css +1 -0
- codex-2.0.0/codex/static/assets/delete-row-dialog-Dp6Rj5_O.js +1 -0
- codex-2.0.0/codex/static/assets/delete-row-dialog-Dp6Rj5_O.js.br +0 -0
- codex-2.0.0/codex/static/assets/delete-row-dialog-Dp6Rj5_O.js.gz +0 -0
- codex-2.0.0/codex/static/assets/edit-panel-BhTSaX60.css +1 -0
- codex-2.0.0/codex/static/assets/edit-panel-BhTSaX60.css.br +0 -0
- codex-2.0.0/codex/static/assets/edit-panel-BhTSaX60.css.gz +0 -0
- codex-2.0.0/codex/static/assets/edit-panel-C3q9R97Q.js +1 -0
- codex-2.0.0/codex/static/assets/edit-panel-C3q9R97Q.js.br +0 -0
- codex-2.0.0/codex/static/assets/edit-panel-C3q9R97Q.js.gz +0 -0
- codex-2.0.0/codex/static/assets/email-tab-B-G0DJRJ.js +1 -0
- codex-2.0.0/codex/static/assets/email-tab-B-G0DJRJ.js.br +0 -0
- codex-2.0.0/codex/static/assets/email-tab-B-G0DJRJ.js.gz +0 -0
- codex-2.0.0/codex/static/assets/email-tab-DM3A3vTK.css +1 -0
- codex-2.0.0/codex/static/assets/email-tab-DM3A3vTK.css.br +0 -0
- codex-2.0.0/codex/static/assets/email-tab-DM3A3vTK.css.gz +0 -0
- codex-2.0.0/codex/static/assets/expand-toggle-DcbsFM1a.js +1 -0
- codex-2.0.0/codex/static/assets/expand-toggle-DcbsFM1a.js.br +0 -0
- codex-2.0.0/codex/static/assets/expand-toggle-DcbsFM1a.js.gz +0 -0
- codex-2.0.0/codex/static/assets/expand-toggle-Dv1rmLCG.css +1 -0
- codex-2.0.0/codex/static/assets/expand-toggle-Dv1rmLCG.css.br +0 -0
- codex-2.0.0/codex/static/assets/expand-toggle-Dv1rmLCG.css.gz +0 -0
- codex-2.0.0/codex/static/assets/flag-card-B8Kw1iR-.css +1 -0
- codex-2.0.0/codex/static/assets/flag-card-B8Kw1iR-.css.br +0 -0
- codex-2.0.0/codex/static/assets/flag-card-B8Kw1iR-.css.gz +0 -0
- codex-2.0.0/codex/static/assets/flag-card-C8DV88-f.js +1 -0
- codex-2.0.0/codex/static/assets/flag-card-C8DV88-f.js.br +0 -0
- codex-2.0.0/codex/static/assets/flag-card-C8DV88-f.js.gz +0 -0
- codex-2.0.0/codex/static/assets/forwardRefs-CvzvePTj.css +1 -0
- codex-2.0.0/codex/static/assets/forwardRefs-CvzvePTj.css.br +0 -0
- codex-2.0.0/codex/static/assets/forwardRefs-CvzvePTj.css.gz +0 -0
- codex-2.0.0/codex/static/assets/forwardRefs-DjtITMTI.js +1 -0
- codex-2.0.0/codex/static/assets/forwardRefs-DjtITMTI.js.br +0 -0
- codex-2.0.0/codex/static/assets/forwardRefs-DjtITMTI.js.gz +0 -0
- codex-2.0.0/codex/static/assets/group-tab-RGt1aVss.js +1 -0
- codex-2.0.0/codex/static/assets/group-tab-RGt1aVss.js.br +0 -0
- codex-2.0.0/codex/static/assets/group-tab-RGt1aVss.js.gz +0 -0
- codex-2.0.0/codex/static/assets/group-tab-wc90p-27.css +1 -0
- codex-2.0.0/codex/static/assets/group-tab-wc90p-27.css.br +0 -0
- codex-2.0.0/codex/static/assets/group-tab-wc90p-27.css.gz +0 -0
- codex-2.0.0/codex/static/assets/http-error-Dv_j9_yM.js +1 -0
- codex-2.0.0/codex/static/assets/http-error-Dv_j9_yM.js.br +0 -0
- codex-2.0.0/codex/static/assets/http-error-Dv_j9_yM.js.gz +0 -0
- codex-2.0.0/codex/static/assets/job-tab-C_BnrKH5.js +1 -0
- codex-2.0.0/codex/static/assets/job-tab-C_BnrKH5.js.br +0 -0
- codex-2.0.0/codex/static/assets/job-tab-C_BnrKH5.js.gz +0 -0
- codex-2.0.0/codex/static/assets/job-tab-uVs7XhJp.css +1 -0
- codex-2.0.0/codex/static/assets/job-tab-uVs7XhJp.css.br +0 -0
- codex-2.0.0/codex/static/assets/job-tab-uVs7XhJp.css.gz +0 -0
- codex-2.0.0/codex/static/assets/library-tab-BEN9sbV0.js +1 -0
- codex-2.0.0/codex/static/assets/library-tab-BEN9sbV0.js.br +0 -0
- codex-2.0.0/codex/static/assets/library-tab-BEN9sbV0.js.gz +0 -0
- codex-2.0.0/codex/static/assets/library-tab-DpizIgMx.css +1 -0
- codex-2.0.0/codex/static/assets/library-tab-DpizIgMx.css.br +0 -0
- codex-2.0.0/codex/static/assets/library-tab-DpizIgMx.css.gz +0 -0
- codex-2.0.0/codex/static/assets/main-DJVSlK4f.css +1 -0
- codex-2.0.0/codex/static/assets/main-DJVSlK4f.css.br +0 -0
- codex-2.0.0/codex/static/assets/main-DJVSlK4f.css.gz +0 -0
- codex-2.0.0/codex/static/assets/main-zrvwvvQy.js +6 -0
- codex-2.0.0/codex/static/assets/main-zrvwvvQy.js.br +0 -0
- codex-2.0.0/codex/static/assets/main-zrvwvvQy.js.gz +0 -0
- codex-2.0.0/codex/static/assets/online-tag-8-RfhnA_.js +1 -0
- codex-2.0.0/codex/static/assets/online-tag-8-RfhnA_.js.br +0 -0
- codex-2.0.0/codex/static/assets/online-tag-8-RfhnA_.js.gz +0 -0
- codex-2.0.0/codex/static/assets/pagination-toolbar-BTvj_rDT.js +2 -0
- codex-2.0.0/codex/static/assets/pagination-toolbar-BTvj_rDT.js.br +0 -0
- codex-2.0.0/codex/static/assets/pagination-toolbar-BTvj_rDT.js.gz +0 -0
- codex-2.0.0/codex/static/assets/pagination-toolbar-DKas2usv.css +1 -0
- codex-2.0.0/codex/static/assets/pagination-toolbar-DKas2usv.css.br +0 -0
- codex-2.0.0/codex/static/assets/pagination-toolbar-DKas2usv.css.gz +0 -0
- codex-2.0.0/codex/static/assets/pdf-doc-DMjy88FR.js +378 -0
- codex-2.0.0/codex/static/assets/pdf-doc-DMjy88FR.js.br +0 -0
- codex-2.0.0/codex/static/assets/pdf-doc-DMjy88FR.js.gz +0 -0
- codex-2.0.0/codex/static/assets/prompt-popup-0KXMVAoP.js +2 -0
- codex-2.0.0/codex/static/assets/prompt-popup-0KXMVAoP.js.br +0 -0
- codex-2.0.0/codex/static/assets/prompt-popup-0KXMVAoP.js.gz +0 -0
- codex-2.0.0/codex/static/assets/prompt-popup-BGeloMt_.css +1 -0
- codex-2.0.0/codex/static/assets/prompt-popup-BGeloMt_.css.br +0 -0
- codex-2.0.0/codex/static/assets/prompt-popup-BGeloMt_.css.gz +0 -0
- codex-2.0.0/codex/static/assets/reader-DsjPteCv.js +2 -0
- codex-2.0.0/codex/static/assets/reader-DsjPteCv.js.br +0 -0
- codex-2.0.0/codex/static/assets/reader-DsjPteCv.js.gz +0 -0
- codex-2.0.0/codex/static/assets/reader-iIJLysTT.css +1 -0
- codex-2.0.0/codex/static/assets/reader-iIJLysTT.css.br +0 -0
- codex-2.0.0/codex/static/assets/reader-iIJLysTT.css.gz +0 -0
- codex-2.0.0/codex/static/assets/relation-chips-CSAtEYBo.js +1 -0
- codex-2.0.0/codex/static/assets/relation-chips-CSAtEYBo.js.br +0 -0
- codex-2.0.0/codex/static/assets/relation-chips-CSAtEYBo.js.gz +0 -0
- codex-2.0.0/codex/static/assets/relation-chips-CVzPLks2.css +1 -0
- codex-2.0.0/codex/static/assets/relation-chips-CVzPLks2.css.br +1 -0
- codex-2.0.0/codex/static/assets/relation-chips-CVzPLks2.css.gz +0 -0
- codex-2.0.0/codex/static/assets/reset-password-confirm-BlOkLMJ4.js +1 -0
- codex-2.0.0/codex/static/assets/reset-password-confirm-BlOkLMJ4.js.br +0 -0
- codex-2.0.0/codex/static/assets/reset-password-confirm-BlOkLMJ4.js.gz +0 -0
- codex-2.0.0/codex/static/assets/reset-password-confirm-ByPxowqs.css +1 -0
- codex-2.0.0/codex/static/assets/reset-password-confirm-ByPxowqs.css.br +0 -0
- codex-2.0.0/codex/static/assets/reset-password-confirm-ByPxowqs.css.gz +0 -0
- codex-2.0.0/codex/static/assets/restore-tab-DJWfm2xd.js +3 -0
- codex-2.0.0/codex/static/assets/restore-tab-DJWfm2xd.js.br +0 -0
- codex-2.0.0/codex/static/assets/restore-tab-DJWfm2xd.js.gz +0 -0
- codex-2.0.0/codex/static/assets/restore-tab-DSwRjlQF.css +1 -0
- codex-2.0.0/codex/static/assets/restore-tab-DSwRjlQF.css.br +0 -0
- codex-2.0.0/codex/static/assets/restore-tab-DSwRjlQF.css.gz +0 -0
- codex-2.0.0/codex/static/assets/settings-tab-CQVONyd7.js +1 -0
- codex-2.0.0/codex/static/assets/settings-tab-CQVONyd7.js.br +0 -0
- codex-2.0.0/codex/static/assets/settings-tab-CQVONyd7.js.gz +0 -0
- codex-2.0.0/codex/static/assets/settings-tab-DZDcFq57.css +1 -0
- codex-2.0.0/codex/static/assets/settings-tab-DZDcFq57.css.br +0 -0
- codex-2.0.0/codex/static/assets/settings-tab-DZDcFq57.css.gz +0 -0
- codex-2.0.0/codex/static/assets/ssrBoot-oIEaytJC.js +1 -0
- codex-2.0.0/codex/static/assets/ssrBoot-oIEaytJC.js.br +0 -0
- codex-2.0.0/codex/static/assets/ssrBoot-oIEaytJC.js.gz +0 -0
- codex-2.0.0/codex/static/assets/stats-tab-BXHFAFl8.js +1 -0
- codex-2.0.0/codex/static/assets/stats-tab-BXHFAFl8.js.br +0 -0
- codex-2.0.0/codex/static/assets/stats-tab-BXHFAFl8.js.gz +0 -0
- codex-2.0.0/codex/static/assets/stats-tab-BYEFoLNj.css +1 -0
- codex-2.0.0/codex/static/assets/stats-tab-BYEFoLNj.css.br +0 -0
- codex-2.0.0/codex/static/assets/stats-tab-BYEFoLNj.css.gz +0 -0
- codex-2.0.0/codex/static/assets/submit-footer-BWA2qp4A.js +1 -0
- codex-2.0.0/codex/static/assets/submit-footer-BWA2qp4A.js.br +0 -0
- codex-2.0.0/codex/static/assets/submit-footer-BWA2qp4A.js.gz +0 -0
- codex-2.0.0/codex/static/assets/tagging-choices-BH2u4elJ.js +1 -0
- codex-2.0.0/codex/static/assets/tagging-choices-BH2u4elJ.js.br +0 -0
- codex-2.0.0/codex/static/assets/tagging-choices-BH2u4elJ.js.gz +0 -0
- codex-2.0.0/codex/static/assets/tagging-tab-BRqLuLoF.js +1 -0
- codex-2.0.0/codex/static/assets/tagging-tab-BRqLuLoF.js.br +0 -0
- codex-2.0.0/codex/static/assets/tagging-tab-BRqLuLoF.js.gz +0 -0
- codex-2.0.0/codex/static/assets/tagging-tab-COrouzhv.css +1 -0
- codex-2.0.0/codex/static/assets/tagging-tab-COrouzhv.css.br +0 -0
- codex-2.0.0/codex/static/assets/tagging-tab-COrouzhv.css.gz +0 -0
- codex-2.0.0/codex/static/assets/tooltip-BZ1w6Ier.js +1 -0
- codex-2.0.0/codex/static/assets/tooltip-BZ1w6Ier.js.br +0 -0
- codex-2.0.0/codex/static/assets/tooltip-BZ1w6Ier.js.gz +0 -0
- codex-2.0.0/codex/static/assets/unauthorized-BJGqi83S.js +1 -0
- codex-2.0.0/codex/static/assets/unauthorized-BJGqi83S.js.br +0 -0
- codex-2.0.0/codex/static/assets/unauthorized-BJGqi83S.js.gz +0 -0
- codex-2.0.0/codex/static/assets/unauthorized-DoPdHZ05.css +1 -0
- codex-2.0.0/codex/static/assets/unauthorized-DoPdHZ05.css.br +0 -0
- codex-2.0.0/codex/static/assets/unauthorized-DoPdHZ05.css.gz +0 -0
- codex-2.0.0/codex/static/assets/use-now-timer-dFuGPr2n.js +1 -0
- codex-2.0.0/codex/static/assets/use-now-timer-dFuGPr2n.js.br +0 -0
- codex-2.0.0/codex/static/assets/use-now-timer-dFuGPr2n.js.gz +0 -0
- codex-2.0.0/codex/static/assets/user-tab-BGu6y0aI.js +1 -0
- codex-2.0.0/codex/static/assets/user-tab-BGu6y0aI.js.br +0 -0
- codex-2.0.0/codex/static/assets/user-tab-BGu6y0aI.js.gz +0 -0
- codex-2.0.0/codex/static/assets/user-tab-BTo8p7iN.css +1 -0
- codex-2.0.0/codex/static/assets/user-tab-BTo8p7iN.css.br +0 -0
- codex-2.0.0/codex/static/assets/user-tab-BTo8p7iN.css.gz +0 -0
- codex-2.0.0/codex/static/assets/vendor-vue-CboaxaCO.js +1 -0
- codex-2.0.0/codex/static/assets/vendor-vue-CboaxaCO.js.br +0 -0
- codex-2.0.0/codex/static/assets/vendor-vue-CboaxaCO.js.gz +0 -0
- codex-2.0.0/codex/static/manifest.json +1122 -0
- codex-2.0.0/codex/static/manifest.json.br +0 -0
- codex-2.0.0/codex/static/manifest.json.gz +0 -0
- codex-2.0.0/codex/templates/headers-script-globals.html +9 -0
- codex-2.0.0/codex/templates/opds_v1/index.xml +114 -0
- codex-2.0.0/codex/templates/opds_v1/opensearch_v1.xml +10 -0
- codex-2.0.0/codex/templates/rest_registration/register/body.txt +11 -0
- codex-2.0.0/codex/templates/rest_registration/register/subject.txt +1 -0
- codex-2.0.0/codex/templates/rest_registration/reset_password/body.html +82 -0
- codex-2.0.0/codex/templates/rest_registration/reset_password/body.txt +14 -0
- codex-2.0.0/codex/templates/rest_registration/reset_password/subject.txt +1 -0
- codex-2.0.0/codex/throttling.py +69 -0
- codex-2.0.0/codex/urls/api/root.py +12 -0
- codex-2.0.0/codex/urls/api/v4/__init__.py +32 -0
- codex-2.0.0/codex/urls/api/v4/admin.py +307 -0
- codex-2.0.0/codex/urls/api/v4/auth.py +34 -0
- codex-2.0.0/codex/urls/api/v4/browse.py +87 -0
- codex-2.0.0/codex/urls/api/v4/comics.py +46 -0
- codex-2.0.0/codex/urls/api/v4/favorites.py +16 -0
- codex-2.0.0/codex/urls/api/v4/reader.py +12 -0
- codex-2.0.0/codex/urls/app.py +50 -0
- codex-2.0.0/codex/urls/converters.py +45 -0
- codex-2.0.0/codex/urls/opds/root.py +34 -0
- codex-2.0.0/codex/urls/opds/v1.py +39 -0
- codex-2.0.0/codex/urls/opds/v2.py +57 -0
- codex-2.0.0/codex/urls/root.py +52 -0
- codex-2.0.0/codex/user_data/__init__.py +1 -0
- codex-2.0.0/codex/user_data/backups.py +109 -0
- codex-2.0.0/codex/user_data/dump.py +262 -0
- codex-2.0.0/codex/user_data/identifiers.py +143 -0
- codex-2.0.0/codex/user_data/restore.py +694 -0
- codex-2.0.0/codex/user_data/schema.sql +189 -0
- codex-2.0.0/codex/user_data/serializers.py +386 -0
- codex-2.0.0/codex/user_data/store.py +240 -0
- codex-2.0.0/codex/views/admin/api_key.py +41 -0
- codex-2.0.0/codex/views/admin/auth.py +59 -0
- codex-2.0.0/codex/views/admin/custom_cover.py +285 -0
- codex-2.0.0/codex/views/admin/dump_user_data.py +18 -0
- codex-2.0.0/codex/views/admin/email.py +144 -0
- codex-2.0.0/codex/views/admin/failed_imports_seen.py +40 -0
- codex-2.0.0/codex/views/admin/flag.py +49 -0
- codex-2.0.0/codex/views/admin/identifier_parse.py +153 -0
- codex-2.0.0/codex/views/admin/json_api.py +57 -0
- codex-2.0.0/codex/views/admin/library.py +235 -0
- codex-2.0.0/codex/views/admin/onlinetag.py +205 -0
- codex-2.0.0/codex/views/admin/permissions.py +23 -0
- codex-2.0.0/codex/views/admin/restore_user_data.py +52 -0
- codex-2.0.0/codex/views/admin/stats.py +106 -0
- codex-2.0.0/codex/views/admin/tag_write_errors.py +32 -0
- codex-2.0.0/codex/views/admin/tagging_defaults.py +27 -0
- codex-2.0.0/codex/views/admin/tagging_validate.py +61 -0
- codex-2.0.0/codex/views/admin/tagwrite.py +274 -0
- codex-2.0.0/codex/views/admin/tasks.py +213 -0
- codex-2.0.0/codex/views/admin/throttle.py +25 -0
- codex-2.0.0/codex/views/admin/user.py +274 -0
- codex-2.0.0/codex/views/auth.py +615 -0
- codex-2.0.0/codex/views/bookmark.py +109 -0
- codex-2.0.0/codex/views/browser/annotate/bookmark.py +125 -0
- codex-2.0.0/codex/views/browser/annotate/card.py +121 -0
- codex-2.0.0/codex/views/browser/annotate/cover.py +163 -0
- codex-2.0.0/codex/views/browser/annotate/order.py +583 -0
- codex-2.0.0/codex/views/browser/bookmark.py +96 -0
- codex-2.0.0/codex/views/browser/breadcrumbs.py +210 -0
- codex-2.0.0/codex/views/browser/browser.py +490 -0
- codex-2.0.0/codex/views/browser/collection_mtime.py +190 -0
- codex-2.0.0/codex/views/browser/columns.py +312 -0
- codex-2.0.0/codex/views/browser/cover.py +194 -0
- codex-2.0.0/codex/views/browser/download.py +67 -0
- codex-2.0.0/codex/views/browser/filters/bookmark.py +43 -0
- codex-2.0.0/codex/views/browser/filters/collection.py +58 -0
- codex-2.0.0/codex/views/browser/filters/field.py +75 -0
- codex-2.0.0/codex/views/browser/filters/filter.py +266 -0
- codex-2.0.0/codex/views/browser/filters/search/field/expression.py +190 -0
- codex-2.0.0/codex/views/browser/filters/search/parse.py +345 -0
- codex-2.0.0/codex/views/browser/force_update.py +52 -0
- codex-2.0.0/codex/views/browser/intersections.py +997 -0
- codex-2.0.0/codex/views/browser/metadata/__init__.py +120 -0
- codex-2.0.0/codex/views/browser/metadata/annotate.py +147 -0
- codex-2.0.0/codex/views/browser/metadata/collection_list.py +44 -0
- codex-2.0.0/codex/views/browser/metadata/const.py +112 -0
- codex-2.0.0/codex/views/browser/metadata/copy_intersections.py +108 -0
- codex-2.0.0/codex/views/browser/metadata/query_intersections.py +166 -0
- codex-2.0.0/codex/views/browser/mtime.py +52 -0
- codex-2.0.0/codex/views/browser/order_by.py +228 -0
- codex-2.0.0/codex/views/browser/page_in_bounds.py +65 -0
- codex-2.0.0/codex/views/browser/paginate.py +115 -0
- codex-2.0.0/codex/views/browser/params.py +92 -0
- codex-2.0.0/codex/views/browser/saved_settings.py +309 -0
- codex-2.0.0/codex/views/browser/settings.py +184 -0
- codex-2.0.0/codex/views/browser/title.py +51 -0
- codex-2.0.0/codex/views/browser/validate.py +198 -0
- codex-2.0.0/codex/views/const.py +188 -0
- codex-2.0.0/codex/views/envelope.py +79 -0
- codex-2.0.0/codex/views/exceptions.py +102 -0
- codex-2.0.0/codex/views/favorites.py +105 -0
- codex-2.0.0/codex/views/frontend.py +45 -0
- codex-2.0.0/codex/views/lazy_import.py +28 -0
- codex-2.0.0/codex/views/mixins.py +128 -0
- codex-2.0.0/codex/views/opds/authentication/v1.py +93 -0
- codex-2.0.0/codex/views/opds/const.py +124 -0
- codex-2.0.0/codex/views/opds/error.py +71 -0
- codex-2.0.0/codex/views/opds/feed.py +22 -0
- codex-2.0.0/codex/views/opds/metadata.py +147 -0
- codex-2.0.0/codex/views/opds/opensearch/v1.py +51 -0
- codex-2.0.0/codex/views/opds/route.py +69 -0
- codex-2.0.0/codex/views/opds/start.py +20 -0
- codex-2.0.0/codex/views/opds/urls.py +27 -0
- codex-2.0.0/codex/views/opds/v1/const.py +207 -0
- codex-2.0.0/codex/views/opds/v1/entry/entry.py +159 -0
- codex-2.0.0/codex/views/opds/v1/entry/links.py +196 -0
- codex-2.0.0/codex/views/opds/v1/facets.py +173 -0
- codex-2.0.0/codex/views/opds/v1/feed.py +236 -0
- codex-2.0.0/codex/views/opds/v1/links.py +154 -0
- codex-2.0.0/codex/views/opds/v2/const.py +197 -0
- codex-2.0.0/codex/views/opds/v2/feed/__init__.py +218 -0
- codex-2.0.0/codex/views/opds/v2/feed/feed_links.py +141 -0
- codex-2.0.0/codex/views/opds/v2/feed/groups.py +218 -0
- codex-2.0.0/codex/views/opds/v2/feed/links.py +152 -0
- codex-2.0.0/codex/views/opds/v2/feed/publications.py +580 -0
- codex-2.0.0/codex/views/opds/v2/href.py +63 -0
- codex-2.0.0/codex/views/opds/v2/manifest.py +409 -0
- codex-2.0.0/codex/views/opds/v2/progression.py +254 -0
- codex-2.0.0/codex/views/opds/v2/renderers.py +26 -0
- codex-2.0.0/codex/views/pagination.py +55 -0
- codex-2.0.0/codex/views/reader/_archive_cache.py +302 -0
- codex-2.0.0/codex/views/reader/arcs.py +160 -0
- codex-2.0.0/codex/views/reader/books.py +241 -0
- codex-2.0.0/codex/views/reader/page.py +224 -0
- codex-2.0.0/codex/views/reader/params.py +80 -0
- codex-2.0.0/codex/views/reader/reader.py +49 -0
- codex-2.0.0/codex/views/reader/settings.py +348 -0
- codex-2.0.0/codex/views/register.py +87 -0
- codex-2.0.0/codex/views/reset_password.py +24 -0
- codex-2.0.0/codex/views/session.py +107 -0
- codex-2.0.0/codex/views/settings.py +562 -0
- codex-2.0.0/codex/views/util.py +68 -0
- codex-2.0.0/codex/views/version.py +52 -0
- codex-2.0.0/codex/websockets/consumers.py +71 -0
- codex-2.0.0/codex/websockets/payloads.py +45 -0
- codex-2.0.0/codex/xz.py +147 -0
- codex-2.0.0/docs/DOCKER.md +114 -0
- codex-2.0.0/docs/NEWS.md +2205 -0
- codex-2.0.0/docs/README.md +985 -0
- codex-2.0.0/eslint.config.js +82 -0
- codex-2.0.0/frontend/.eslintcache +1 -0
- codex-2.0.0/frontend/DESIGN.md +154 -0
- codex-2.0.0/frontend/bin/fix-sh.sh +7 -0
- codex-2.0.0/frontend/bin/lint-darwin.sh +10 -0
- codex-2.0.0/frontend/bin/lint-sh.sh +8 -0
- codex-2.0.0/frontend/bin/remark-for-claude.sh +7 -0
- codex-2.0.0/frontend/bin/sort-ignore.sh +10 -0
- codex-2.0.0/frontend/bin/version-node.sh +15 -0
- codex-2.0.0/frontend/bun.lock +1159 -0
- codex-2.0.0/frontend/package.json +55 -0
- codex-2.0.0/frontend/src/admin.vue +40 -0
- codex-2.0.0/frontend/src/api/v4/abortable.js +38 -0
- codex-2.0.0/frontend/src/api/v4/admin.js +230 -0
- codex-2.0.0/frontend/src/api/v4/auth.js +45 -0
- codex-2.0.0/frontend/src/api/v4/base.js +72 -0
- codex-2.0.0/frontend/src/api/v4/browser.js +217 -0
- codex-2.0.0/frontend/src/api/v4/common.js +88 -0
- codex-2.0.0/frontend/src/api/v4/favorites.js +11 -0
- codex-2.0.0/frontend/src/api/v4/notify.js +48 -0
- codex-2.0.0/frontend/src/api/v4/reader.js +53 -0
- codex-2.0.0/frontend/src/app.vue +102 -0
- codex-2.0.0/frontend/src/browser.vue +80 -0
- codex-2.0.0/frontend/src/choices/admin-flag-choices.json +17 -0
- codex-2.0.0/frontend/src/choices/admin-jobs.json +435 -0
- codex-2.0.0/frontend/src/choices/admin-status-titles.json +63 -0
- codex-2.0.0/frontend/src/choices/browser-choices.json +266 -0
- codex-2.0.0/frontend/src/choices/browser-defaults.json +52 -0
- codex-2.0.0/frontend/src/choices/browser-map.json +75 -0
- codex-2.0.0/frontend/src/choices/browser-table-columns.json +303 -0
- codex-2.0.0/frontend/src/choices/browser-table-default-columns.json +53 -0
- codex-2.0.0/frontend/src/choices/format-field-support.json +58 -0
- codex-2.0.0/frontend/src/choices/format-field-values.json +111 -0
- codex-2.0.0/frontend/src/choices/identifier-sources.json +66 -0
- codex-2.0.0/frontend/src/choices/identifier-types.json +58 -0
- codex-2.0.0/frontend/src/choices/languages.json +738 -0
- codex-2.0.0/frontend/src/choices/tagging-choices.json +28 -0
- codex-2.0.0/frontend/src/choices/websocket-messages.json +14 -0
- codex-2.0.0/frontend/src/components/admin/admin-header.vue +119 -0
- codex-2.0.0/frontend/src/components/admin/create-update-dialog/create-update-dialog.vue +214 -0
- codex-2.0.0/frontend/src/components/admin/create-update-dialog/create-update-inputs-mixin.js +60 -0
- codex-2.0.0/frontend/src/components/admin/create-update-dialog/group-create-update-inputs.vue +99 -0
- codex-2.0.0/frontend/src/components/admin/create-update-dialog/library-create-update-inputs.vue +121 -0
- codex-2.0.0/frontend/src/components/admin/create-update-dialog/user-create-update-inputs.vue +153 -0
- codex-2.0.0/frontend/src/components/admin/drawer/admin-menu.vue +134 -0
- codex-2.0.0/frontend/src/components/admin/drawer/admin-settings-button-errors.vue +58 -0
- codex-2.0.0/frontend/src/components/admin/drawer/admin-settings-button-prompts.vue +45 -0
- codex-2.0.0/frontend/src/components/admin/drawer/status-list-item.vue +133 -0
- codex-2.0.0/frontend/src/components/admin/status-helpers.js +123 -0
- codex-2.0.0/frontend/src/components/admin/tabs/action-bar.vue +45 -0
- codex-2.0.0/frontend/src/components/admin/tabs/admin-section.scss +232 -0
- codex-2.0.0/frontend/src/components/admin/tabs/admin-section.vue +31 -0
- codex-2.0.0/frontend/src/components/admin/tabs/custom-covers-tab.vue +263 -0
- codex-2.0.0/frontend/src/components/admin/tabs/datetime-column.vue +50 -0
- codex-2.0.0/frontend/src/components/admin/tabs/design.scss +28 -0
- codex-2.0.0/frontend/src/components/admin/tabs/email-tab.vue +426 -0
- codex-2.0.0/frontend/src/components/admin/tabs/expand-toggle.vue +46 -0
- codex-2.0.0/frontend/src/components/admin/tabs/failed-imports-panel.vue +195 -0
- codex-2.0.0/frontend/src/components/admin/tabs/flag-card.vue +224 -0
- codex-2.0.0/frontend/src/components/admin/tabs/flag-descriptions.json +15 -0
- codex-2.0.0/frontend/src/components/admin/tabs/flag-groups.json +14 -0
- codex-2.0.0/frontend/src/components/admin/tabs/group-tab.vue +189 -0
- codex-2.0.0/frontend/src/components/admin/tabs/job-tab.vue +610 -0
- codex-2.0.0/frontend/src/components/admin/tabs/key-value-table.vue +88 -0
- codex-2.0.0/frontend/src/components/admin/tabs/library-tab.vue +55 -0
- codex-2.0.0/frontend/src/components/admin/tabs/library-table.vue +236 -0
- codex-2.0.0/frontend/src/components/admin/tabs/replace-cover-button.vue +87 -0
- codex-2.0.0/frontend/src/components/admin/tabs/restore-tab.vue +328 -0
- codex-2.0.0/frontend/src/components/admin/tabs/settings-tab.vue +137 -0
- codex-2.0.0/frontend/src/components/admin/tabs/stats-tab.vue +150 -0
- codex-2.0.0/frontend/src/components/admin/tabs/tag-write-errors-panel.vue +140 -0
- codex-2.0.0/frontend/src/components/admin/tabs/tagging-status-table.vue +580 -0
- codex-2.0.0/frontend/src/components/admin/tabs/tagging-tab.vue +726 -0
- codex-2.0.0/frontend/src/components/admin/tabs/tagging-validation-chip.vue +35 -0
- codex-2.0.0/frontend/src/components/admin/tabs/throttling-section.vue +175 -0
- codex-2.0.0/frontend/src/components/admin/tabs/user-tab.vue +298 -0
- codex-2.0.0/frontend/src/components/auth/auth-menu.vue +52 -0
- codex-2.0.0/frontend/src/components/auth/auth-token.vue +126 -0
- codex-2.0.0/frontend/src/components/auth/change-password-dialog.vue +208 -0
- codex-2.0.0/frontend/src/components/auth/login-dialog.vue +229 -0
- codex-2.0.0/frontend/src/components/auth/profile-dialog.vue +337 -0
- codex-2.0.0/frontend/src/components/auth/reset-password-confirm.vue +186 -0
- codex-2.0.0/frontend/src/components/auth/reset-password-request-dialog.vue +125 -0
- codex-2.0.0/frontend/src/components/book-cover.vue +207 -0
- codex-2.0.0/frontend/src/components/browser/card/browser-card-menu.vue +80 -0
- codex-2.0.0/frontend/src/components/browser/card/card.vue +319 -0
- codex-2.0.0/frontend/src/components/browser/card/controls.vue +96 -0
- codex-2.0.0/frontend/src/components/browser/card/order-by-caption.vue +114 -0
- codex-2.0.0/frontend/src/components/browser/card/remove-cover-button.vue +72 -0
- codex-2.0.0/frontend/src/components/browser/card/subtitle.vue +142 -0
- codex-2.0.0/frontend/src/components/browser/card/upload-cover-button.vue +101 -0
- codex-2.0.0/frontend/src/components/browser/drawer/browser-settings-collection.vue +67 -0
- codex-2.0.0/frontend/src/components/browser/drawer/browser-settings-covers.vue +65 -0
- codex-2.0.0/frontend/src/components/browser/drawer/browser-settings-misc.vue +57 -0
- codex-2.0.0/frontend/src/components/browser/drawer/browser-settings-panel.vue +25 -0
- codex-2.0.0/frontend/src/components/browser/drawer/browser-settings-saved.vue +198 -0
- codex-2.0.0/frontend/src/components/browser/empty.vue +83 -0
- codex-2.0.0/frontend/src/components/browser/main.vue +388 -0
- codex-2.0.0/frontend/src/components/browser/table/browser-table-cell.vue +398 -0
- codex-2.0.0/frontend/src/components/browser/table/browser-table-column-picker.vue +567 -0
- codex-2.0.0/frontend/src/components/browser/table/browser-table.vue +524 -0
- codex-2.0.0/frontend/src/components/browser/toolbars/breadcrumbs/breadcrumbs.vue +145 -0
- codex-2.0.0/frontend/src/components/browser/toolbars/browser-toolbar-title.vue +109 -0
- codex-2.0.0/frontend/src/components/browser/toolbars/nav/browser-nav-button.vue +103 -0
- codex-2.0.0/frontend/src/components/browser/toolbars/nav/browser-toolbar-nav.vue +47 -0
- codex-2.0.0/frontend/src/components/browser/toolbars/top/browser-toolbar-top.vue +86 -0
- codex-2.0.0/frontend/src/components/browser/toolbars/top/filter-choice-list.vue +164 -0
- codex-2.0.0/frontend/src/components/browser/toolbars/top/filter-sub-menu.vue +399 -0
- codex-2.0.0/frontend/src/components/browser/toolbars/top/top-collection-select.vue +72 -0
- codex-2.0.0/frontend/src/components/confirm-dialog.vue +127 -0
- codex-2.0.0/frontend/src/components/download-button.vue +120 -0
- codex-2.0.0/frontend/src/components/favorite-toggle.vue +119 -0
- codex-2.0.0/frontend/src/components/force-update-button.vue +109 -0
- codex-2.0.0/frontend/src/components/force-update-confirm-dialog.vue +71 -0
- codex-2.0.0/frontend/src/components/mark-read-button.vue +85 -0
- codex-2.0.0/frontend/src/components/metadata/edit-mode/clear-field-icon.vue +34 -0
- codex-2.0.0/frontend/src/components/metadata/edit-mode/edit-panel.vue +1827 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-activator.vue +60 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-body.vue +142 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-chip.vue +174 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-controls.vue +232 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-cover.vue +96 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-dialog.vue +225 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-header.vue +325 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-ratings.vue +85 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-tags.vue +77 -0
- codex-2.0.0/frontend/src/components/metadata/metadata-text.vue +273 -0
- codex-2.0.0/frontend/src/components/metadata/tags-table.vue +50 -0
- codex-2.0.0/frontend/src/components/online-tag/launcher-dialog.vue +629 -0
- codex-2.0.0/frontend/src/components/online-tag/prompt-popup.vue +207 -0
- codex-2.0.0/frontend/src/components/reader/drawer/download-panel.vue +79 -0
- codex-2.0.0/frontend/src/components/reader/drawer/keyboard-shortcuts-table.vue +140 -0
- codex-2.0.0/frontend/src/components/reader/drawer/reader-settings-reader.vue +50 -0
- codex-2.0.0/frontend/src/components/reader/drawer/reader-settings-scope.vue +302 -0
- codex-2.0.0/frontend/src/components/reader/pager/page/page.vue +228 -0
- codex-2.0.0/frontend/src/components/reader/pager/pager-horizontal.vue +159 -0
- codex-2.0.0/frontend/src/components/reader/pager/pager.vue +76 -0
- codex-2.0.0/frontend/src/components/reader/toolbars/nav/reader-book-change-nav-button.vue +65 -0
- codex-2.0.0/frontend/src/components/reader/toolbars/nav/reader-nav-button.vue +93 -0
- codex-2.0.0/frontend/src/components/reader/toolbars/top/reader-arc-select.vue +168 -0
- codex-2.0.0/frontend/src/components/reader/toolbars/top/reader-toolbar-top.vue +239 -0
- codex-2.0.0/frontend/src/components/settings/button.vue +77 -0
- codex-2.0.0/frontend/src/components/settings/opds-dialog.vue +82 -0
- codex-2.0.0/frontend/src/plugins/router.js +152 -0
- codex-2.0.0/frontend/src/plugins/vuetify.js +98 -0
- codex-2.0.0/frontend/src/reader.vue +96 -0
- codex-2.0.0/frontend/src/route.js +82 -0
- codex-2.0.0/frontend/src/stores/admin.js +525 -0
- codex-2.0.0/frontend/src/stores/auth.js +220 -0
- codex-2.0.0/frontend/src/stores/browser-select-many.js +264 -0
- codex-2.0.0/frontend/src/stores/browser.js +1038 -0
- codex-2.0.0/frontend/src/stores/common.js +112 -0
- codex-2.0.0/frontend/src/stores/favorites.js +134 -0
- codex-2.0.0/frontend/src/stores/metadata.js +135 -0
- codex-2.0.0/frontend/src/stores/online-tag.js +217 -0
- codex-2.0.0/frontend/src/stores/reader.js +1011 -0
- codex-2.0.0/frontend/src/stores/socket.js +338 -0
- codex-2.0.0/frontend/tests/unit/__snapshots__/reader-nav-button.test.js.snap +9 -0
- codex-2.0.0/frontend/tests/unit/admin-menu.test.js +66 -0
- codex-2.0.0/frontend/tests/unit/auth-store.test.js +123 -0
- codex-2.0.0/frontend/tests/unit/browser-select-many-store.test.js +192 -0
- codex-2.0.0/frontend/tests/unit/browser-store-helpers.test.js +142 -0
- codex-2.0.0/frontend/tests/unit/datetime-column.test.js +62 -0
- codex-2.0.0/frontend/tests/unit/edit-panel-collections.test.js +181 -0
- codex-2.0.0/frontend/tests/unit/edit-panel-disabled-tooltips.test.js +149 -0
- codex-2.0.0/frontend/tests/unit/edit-panel-identifiers.test.js +99 -0
- codex-2.0.0/frontend/tests/unit/favorite-toggle.test.js +120 -0
- codex-2.0.0/frontend/tests/unit/favorites-store.test.js +249 -0
- codex-2.0.0/frontend/tests/unit/launcher-dialog.test.js +393 -0
- codex-2.0.0/frontend/tests/unit/metadata-activator.test.js +118 -0
- codex-2.0.0/frontend/tests/unit/metadata-header.test.js +68 -0
- codex-2.0.0/frontend/tests/unit/online-tag-store.test.js +150 -0
- codex-2.0.0/frontend/tests/unit/profile-dialog.test.js +153 -0
- codex-2.0.0/frontend/tests/unit/reader-nav-button.test.js +72 -0
- codex-2.0.0/frontend/tests/unit/reader-store-routes.test.js +28 -0
- codex-2.0.0/frontend/tests/unit/reset-password-confirm.test.js +124 -0
- codex-2.0.0/frontend/tests/unit/reset-password-request-dialog.test.js +73 -0
- codex-2.0.0/frontend/tests/unit/route-helpers.test.js +74 -0
- codex-2.0.0/frontend/tests/unit/status-helpers.test.js +61 -0
- codex-2.0.0/frontend/tests/unit/tag-write-errors-panel.test.js +77 -0
- codex-2.0.0/frontend/tests/unit/tagging-status-table.test.js +272 -0
- codex-2.0.0/frontend/tests/unit/tagging-tab.test.js +345 -0
- codex-2.0.0/package.json +107 -0
- codex-2.0.0/pyproject.toml +420 -0
- codex-2.0.0/tests/conftest.py +55 -0
- codex-2.0.0/tests/importer/test_basic.py +892 -0
- codex-2.0.0/tests/importer/test_move_timestamps.py +155 -0
- codex-2.0.0/tests/importer/test_moved_folder_parents.py +56 -0
- codex-2.0.0/tests/importer/test_update_all.py +777 -0
- codex-2.0.0/tests/importer/test_update_none.py +166 -0
- codex-2.0.0/tests/importer/test_update_protagonist.py +56 -0
- codex-2.0.0/tests/opds_schema.py +327 -0
- codex-2.0.0/tests/perf/run_baseline.py +384 -0
- codex-2.0.0/tests/perf/run_opds_baseline.py +369 -0
- codex-2.0.0/tests/perf/run_reader_baseline.py +431 -0
- codex-2.0.0/tests/schema/opds/README.md +47 -0
- codex-2.0.0/tests/schema/opds/fetch_schemas.py +120 -0
- codex-2.0.0/tests/schema/opds/v1/atom.rnc +283 -0
- codex-2.0.0/tests/schema/opds/v1/opds-pse-1.2.rnc +38 -0
- codex-2.0.0/tests/schema/opds/v1/opds.rnc +136 -0
- codex-2.0.0/tests/schema/opds/v1/opensearch-1.1.rnc +93 -0
- codex-2.0.0/tests/schema/opds/v2/opds/acquisition-object.schema.json +20 -0
- codex-2.0.0/tests/schema/opds/v2/opds/authentication.schema.json +65 -0
- codex-2.0.0/tests/schema/opds/v2/opds/feed-metadata.schema.json +52 -0
- codex-2.0.0/tests/schema/opds/v2/opds/feed.schema.json +155 -0
- codex-2.0.0/tests/schema/opds/v2/opds/progression.schema.json +49 -0
- codex-2.0.0/tests/schema/opds/v2/opds/properties.schema.json +123 -0
- codex-2.0.0/tests/schema/opds/v2/opds/publication.schema.json +84 -0
- codex-2.0.0/tests/schema/opds/v2/readium/a11y.schema.json +162 -0
- codex-2.0.0/tests/schema/opds/v2/readium/altIdentifier.schema.json +30 -0
- codex-2.0.0/tests/schema/opds/v2/readium/article.schema.json +83 -0
- codex-2.0.0/tests/schema/opds/v2/readium/chapter.schema.json +61 -0
- codex-2.0.0/tests/schema/opds/v2/readium/collection.schema.json +58 -0
- codex-2.0.0/tests/schema/opds/v2/readium/contributor.schema.json +64 -0
- codex-2.0.0/tests/schema/opds/v2/readium/episode.schema.json +58 -0
- codex-2.0.0/tests/schema/opds/v2/readium/extensions/encryption/properties.schema.json +40 -0
- codex-2.0.0/tests/schema/opds/v2/readium/extensions/epub/metadata.schema.json +21 -0
- codex-2.0.0/tests/schema/opds/v2/readium/extensions/epub/properties.schema.json +24 -0
- codex-2.0.0/tests/schema/opds/v2/readium/extensions/epub/subcollections.schema.json +44 -0
- codex-2.0.0/tests/schema/opds/v2/readium/issue.schema.json +64 -0
- codex-2.0.0/tests/schema/opds/v2/readium/language-map.schema.json +21 -0
- codex-2.0.0/tests/schema/opds/v2/readium/link.schema.json +133 -0
- codex-2.0.0/tests/schema/opds/v2/readium/metadata.schema.json +227 -0
- codex-2.0.0/tests/schema/opds/v2/readium/periodical.schema.json +64 -0
- codex-2.0.0/tests/schema/opds/v2/readium/publication.schema.json +83 -0
- codex-2.0.0/tests/schema/opds/v2/readium/season.schema.json +61 -0
- codex-2.0.0/tests/schema/opds/v2/readium/series.schema.json +76 -0
- codex-2.0.0/tests/schema/opds/v2/readium/storyArc.schema.json +67 -0
- codex-2.0.0/tests/schema/opds/v2/readium/subcollection.schema.json +55 -0
- codex-2.0.0/tests/schema/opds/v2/readium/subject.schema.json +55 -0
- codex-2.0.0/tests/schema/opds/v2/readium/volume.schema.json +67 -0
- codex-2.0.0/tests/test_admin_custom_cover.py +299 -0
- codex-2.0.0/tests/test_admin_query_counts.py +104 -0
- codex-2.0.0/tests/test_admin_singleton_settings.py +123 -0
- codex-2.0.0/tests/test_admin_status_order.py +70 -0
- codex-2.0.0/tests/test_admin_writes.py +95 -0
- codex-2.0.0/tests/test_app_urls.py +40 -0
- codex-2.0.0/tests/test_bookmark_filter_isolation.py +188 -0
- codex-2.0.0/tests/test_breadcrumbs.py +128 -0
- codex-2.0.0/tests/test_browser_bookmark_unread.py +156 -0
- codex-2.0.0/tests/test_browser_columns_registry.py +215 -0
- codex-2.0.0/tests/test_browser_ordering.py +930 -0
- codex-2.0.0/tests/test_browser_settings_table.py +316 -0
- codex-2.0.0/tests/test_browser_table_columns.py +84 -0
- codex-2.0.0/tests/test_browser_table_response.py +976 -0
- codex-2.0.0/tests/test_credential_validator.py +137 -0
- codex-2.0.0/tests/test_critical_rating.py +134 -0
- codex-2.0.0/tests/test_db_backup.py +167 -0
- codex-2.0.0/tests/test_favorites_api.py +564 -0
- codex-2.0.0/tests/test_fs_filters_ignore.py +199 -0
- codex-2.0.0/tests/test_group.py +82 -0
- codex-2.0.0/tests/test_janitor_cleanup_tagging_state.py +176 -0
- codex-2.0.0/tests/test_janitor_failed_imports.py +73 -0
- codex-2.0.0/tests/test_janitor_folder_relations.py +200 -0
- codex-2.0.0/tests/test_janitor_fts_rebuild.py +43 -0
- codex-2.0.0/tests/test_lazy_import.py +76 -0
- codex-2.0.0/tests/test_lazy_import_marker.py +137 -0
- codex-2.0.0/tests/test_logging_filter.py +131 -0
- codex-2.0.0/tests/test_metadata_collection_list.py +202 -0
- codex-2.0.0/tests/test_metadata_get_no_writes.py +142 -0
- codex-2.0.0/tests/test_metadata_path.py +160 -0
- codex-2.0.0/tests/test_migration_age_rating_relink.py +126 -0
- codex-2.0.0/tests/test_models.py +148 -0
- codex-2.0.0/tests/test_mtime_gate.py +282 -0
- codex-2.0.0/tests/test_onlinetag_estimate.py +83 -0
- codex-2.0.0/tests/test_onlinetag_outcome_stats.py +109 -0
- codex-2.0.0/tests/test_onlinetag_prompt_endpoints.py +110 -0
- codex-2.0.0/tests/test_onlinetag_resume_endpoints.py +114 -0
- codex-2.0.0/tests/test_onlinetag_session_manager.py +669 -0
- codex-2.0.0/tests/test_onlinetag_snapshot.py +291 -0
- codex-2.0.0/tests/test_opds_feed.py +302 -0
- codex-2.0.0/tests/test_opds_schema.py +365 -0
- codex-2.0.0/tests/test_password_reset.py +490 -0
- codex-2.0.0/tests/test_reader.py +148 -0
- codex-2.0.0/tests/test_registration_settings_patch.py +61 -0
- codex-2.0.0/tests/test_route_serializer.py +40 -0
- codex-2.0.0/tests/test_scribe_priority.py +32 -0
- codex-2.0.0/tests/test_settings_collection_flip.py +249 -0
- codex-2.0.0/tests/test_shape_identifiers.py +71 -0
- codex-2.0.0/tests/test_snapshot_diff.py +286 -0
- codex-2.0.0/tests/test_tag_by_id.py +383 -0
- codex-2.0.0/tests/test_tag_write_errors.py +129 -0
- codex-2.0.0/tests/test_tag_write_filters.py +130 -0
- codex-2.0.0/tests/test_tag_writer_progress.py +105 -0
- codex-2.0.0/tests/test_tagging_validate_endpoint.py +122 -0
- codex-2.0.0/tests/test_user_data_backups.py +101 -0
- codex-2.0.0/tests/test_user_data_dump.py +106 -0
- codex-2.0.0/tests/test_user_data_restore.py +254 -0
- codex-2.0.0/tests/test_user_data_snapshot.py +133 -0
- codex-2.0.0/tests/test_user_data_store.py +125 -0
- codex-2.0.0/tests/test_xz.py +96 -0
- codex-2.0.0/uv.lock +4368 -0
- codex-2.0.0/vulture_ignorelist.py +8 -0
- codex-1.12.7/.dockerignore +0 -42
- codex-1.12.7/NEWS.md +0 -2147
- codex-1.12.7/PKG-INFO +0 -883
- codex-1.12.7/README.md +0 -829
- codex-1.12.7/bin/benchmark-opds.sh +0 -17
- codex-1.12.7/bin/ci-download-dist-if-identical.sh +0 -38
- codex-1.12.7/bin/cleanup-pypi-alpha.sh +0 -31
- codex-1.12.7/bin/delete-files.sh +0 -13
- codex-1.12.7/bin/dev-server.sh +0 -17
- codex-1.12.7/bin/dev-ttabs.sh +0 -8
- codex-1.12.7/bin/docker-tag-latest.sh +0 -40
- codex-1.12.7/bin/fix-docker.sh +0 -11
- codex-1.12.7/bin/fix-sh.sh +0 -7
- codex-1.12.7/bin/ghcr-prune-alphas.sh +0 -224
- codex-1.12.7/bin/lint-ci.sh +0 -11
- codex-1.12.7/bin/lint-complexity.sh +0 -10
- codex-1.12.7/bin/lint-darwin.sh +0 -10
- codex-1.12.7/bin/lint-docker.sh +0 -12
- codex-1.12.7/bin/lint-sh.sh +0 -8
- codex-1.12.7/bin/prettier-nginx.sh +0 -7
- codex-1.12.7/bin/remark-for-claude.sh +0 -7
- codex-1.12.7/bin/sort-ignore.sh +0 -10
- codex-1.12.7/bin/type-python.sh +0 -9
- codex-1.12.7/bin/vendor-diff-package.sh +0 -34
- codex-1.12.7/bin/version-node.sh +0 -15
- codex-1.12.7/bin/version-python.sh +0 -9
- codex-1.12.7/bun.lock +0 -1224
- codex-1.12.7/codex/applications/websocket.py +0 -22
- codex-1.12.7/codex/cache.py +0 -66
- codex-1.12.7/codex/choices/admin.py +0 -38
- codex-1.12.7/codex/choices/browser.py +0 -692
- codex-1.12.7/codex/choices/choices_to_json.py +0 -174
- codex-1.12.7/codex/choices/jobs.py +0 -419
- codex-1.12.7/codex/choices/notifications.py +0 -16
- codex-1.12.7/codex/choices/statii.py +0 -44
- codex-1.12.7/codex/librarian/bookmark/bookmarkd.py +0 -177
- codex-1.12.7/codex/librarian/bookmark/latest_version.py +0 -63
- codex-1.12.7/codex/librarian/bookmark/tasks.py +0 -38
- codex-1.12.7/codex/librarian/covers/purge.py +0 -114
- codex-1.12.7/codex/librarian/fs/filters.py +0 -119
- codex-1.12.7/codex/librarian/fs/poller/poller.py +0 -333
- codex-1.12.7/codex/librarian/fs/poller/snapshot.py +0 -229
- codex-1.12.7/codex/librarian/fs/poller/snapshot_diff.py +0 -292
- codex-1.12.7/codex/librarian/fs/watcher/dirs.py +0 -106
- codex-1.12.7/codex/librarian/fs/watcher/events.py +0 -114
- codex-1.12.7/codex/librarian/fs/watcher/move.py +0 -131
- codex-1.12.7/codex/librarian/fs/watcher/watcher.py +0 -221
- codex-1.12.7/codex/librarian/librariand.py +0 -201
- codex-1.12.7/codex/librarian/memory.py +0 -60
- codex-1.12.7/codex/librarian/notifier/tasks.py +0 -31
- codex-1.12.7/codex/librarian/scribe/importer/const.py +0 -426
- codex-1.12.7/codex/librarian/scribe/importer/create/__init__.py +0 -114
- codex-1.12.7/codex/librarian/scribe/importer/create/comics.py +0 -208
- codex-1.12.7/codex/librarian/scribe/importer/create/const.py +0 -131
- codex-1.12.7/codex/librarian/scribe/importer/create/covers.py +0 -121
- codex-1.12.7/codex/librarian/scribe/importer/create/folders.py +0 -98
- codex-1.12.7/codex/librarian/scribe/importer/create/foreign_keys.py +0 -309
- codex-1.12.7/codex/librarian/scribe/importer/create/link_fks.py +0 -88
- codex-1.12.7/codex/librarian/scribe/importer/delete/__init__.py +0 -28
- codex-1.12.7/codex/librarian/scribe/importer/delete/comics.py +0 -83
- codex-1.12.7/codex/librarian/scribe/importer/delete/folders.py +0 -34
- codex-1.12.7/codex/librarian/scribe/importer/finish.py +0 -78
- codex-1.12.7/codex/librarian/scribe/importer/importer.py +0 -111
- codex-1.12.7/codex/librarian/scribe/importer/init.py +0 -355
- codex-1.12.7/codex/librarian/scribe/importer/link/const.py +0 -31
- codex-1.12.7/codex/librarian/scribe/importer/link/covers.py +0 -70
- codex-1.12.7/codex/librarian/scribe/importer/link/delete.py +0 -113
- codex-1.12.7/codex/librarian/scribe/importer/link/many_to_many.py +0 -90
- codex-1.12.7/codex/librarian/scribe/importer/link/prepare.py +0 -200
- codex-1.12.7/codex/librarian/scribe/importer/moved/covers.py +0 -88
- codex-1.12.7/codex/librarian/scribe/importer/moved/folders.py +0 -228
- codex-1.12.7/codex/librarian/scribe/importer/query/filters.py +0 -61
- codex-1.12.7/codex/librarian/scribe/importer/query/links_fk.py +0 -123
- codex-1.12.7/codex/librarian/scribe/importer/query/links_m2m.py +0 -135
- codex-1.12.7/codex/librarian/scribe/importer/query/update_comics.py +0 -69
- codex-1.12.7/codex/librarian/scribe/importer/read/__init__.py +0 -14
- codex-1.12.7/codex/librarian/scribe/importer/read/aggregate_path.py +0 -109
- codex-1.12.7/codex/librarian/scribe/importer/read/const.py +0 -136
- codex-1.12.7/codex/librarian/scribe/importer/read/extract.py +0 -300
- codex-1.12.7/codex/librarian/scribe/importer/read/folders.py +0 -41
- codex-1.12.7/codex/librarian/scribe/importer/read/foreign_keys.py +0 -160
- codex-1.12.7/codex/librarian/scribe/importer/read/many_to_many.py +0 -283
- codex-1.12.7/codex/librarian/scribe/janitor/adopt_folders.py +0 -109
- codex-1.12.7/codex/librarian/scribe/janitor/cleanup.py +0 -419
- codex-1.12.7/codex/librarian/scribe/janitor/failed_imports.py +0 -30
- codex-1.12.7/codex/librarian/scribe/janitor/integrity/__init__.py +0 -120
- codex-1.12.7/codex/librarian/scribe/janitor/integrity/foreign_keys.py +0 -372
- codex-1.12.7/codex/librarian/scribe/janitor/janitor.py +0 -149
- codex-1.12.7/codex/librarian/scribe/janitor/status.py +0 -172
- codex-1.12.7/codex/librarian/scribe/janitor/tasks.py +0 -79
- codex-1.12.7/codex/librarian/scribe/janitor/update.py +0 -91
- codex-1.12.7/codex/librarian/scribe/janitor/vacuum.py +0 -62
- codex-1.12.7/codex/librarian/scribe/lazy_importer.py +0 -49
- codex-1.12.7/codex/librarian/scribe/priority.py +0 -75
- codex-1.12.7/codex/librarian/scribe/scribed.py +0 -138
- codex-1.12.7/codex/librarian/scribe/status.py +0 -21
- codex-1.12.7/codex/librarian/scribe/tasks.py +0 -44
- codex-1.12.7/codex/librarian/scribe/timestamp_update.py +0 -131
- codex-1.12.7/codex/librarian/status.py +0 -76
- codex-1.12.7/codex/librarian/status_controller.py +0 -225
- codex-1.12.7/codex/librarian/telemeter/scheduled_time.py +0 -69
- codex-1.12.7/codex/librarian/telemeter/stats.py +0 -206
- codex-1.12.7/codex/librarian/telemeter/telemeter.py +0 -86
- codex-1.12.7/codex/migrations/0034_comicbox2.py +0 -792
- codex-1.12.7/codex/migrations/0038_settings_tables.py +0 -991
- codex-1.12.7/codex/migrations/0039_metron_age_rating_default_view_and_performance.py +0 -1092
- codex-1.12.7/codex/migrations/0042_browser_table_view_and_favorites.py +0 -274
- codex-1.12.7/codex/models/__init__.py +0 -14
- codex-1.12.7/codex/models/admin.py +0 -145
- codex-1.12.7/codex/models/bookmark.py +0 -63
- codex-1.12.7/codex/models/comic.py +0 -400
- codex-1.12.7/codex/models/favorite.py +0 -70
- codex-1.12.7/codex/models/fields.py +0 -83
- codex-1.12.7/codex/models/groups.py +0 -215
- codex-1.12.7/codex/models/library.py +0 -76
- codex-1.12.7/codex/models/named.py +0 -180
- codex-1.12.7/codex/models/paths.py +0 -132
- codex-1.12.7/codex/models/settings.py +0 -579
- codex-1.12.7/codex/serializers/admin/flags.py +0 -52
- codex-1.12.7/codex/serializers/admin/groups.py +0 -64
- codex-1.12.7/codex/serializers/admin/libraries.py +0 -104
- codex-1.12.7/codex/serializers/admin/stats.py +0 -129
- codex-1.12.7/codex/serializers/admin/users.py +0 -83
- codex-1.12.7/codex/serializers/auth.py +0 -28
- codex-1.12.7/codex/serializers/browser/metadata.py +0 -80
- codex-1.12.7/codex/serializers/browser/mixins.py +0 -74
- codex-1.12.7/codex/serializers/browser/mtime.py +0 -23
- codex-1.12.7/codex/serializers/browser/page.py +0 -280
- codex-1.12.7/codex/serializers/browser/settings.py +0 -227
- codex-1.12.7/codex/serializers/fields/__init__.py +0 -37
- codex-1.12.7/codex/serializers/fields/group.py +0 -16
- codex-1.12.7/codex/serializers/fields/reader.py +0 -26
- codex-1.12.7/codex/serializers/models/comic.py +0 -84
- codex-1.12.7/codex/serializers/models/groups.py +0 -54
- codex-1.12.7/codex/serializers/models/named.py +0 -264
- codex-1.12.7/codex/serializers/opds/v1.py +0 -73
- codex-1.12.7/codex/serializers/opds/v2/progression.py +0 -57
- codex-1.12.7/codex/serializers/opds/v2/publication.py +0 -164
- codex-1.12.7/codex/serializers/reader.py +0 -148
- codex-1.12.7/codex/serializers/route.py +0 -51
- codex-1.12.7/codex/settings/__init__.py +0 -980
- codex-1.12.7/codex/settings/codex.toml.default +0 -59
- codex-1.12.7/codex/settings/config.py +0 -148
- codex-1.12.7/codex/settings/logging.py +0 -126
- codex-1.12.7/codex/settings/secret_key.py +0 -14
- codex-1.12.7/codex/signals/django_signals.py +0 -71
- codex-1.12.7/codex/startup/__init__.py +0 -305
- codex-1.12.7/codex/startup/custom_cover_libraries.py +0 -44
- codex-1.12.7/codex/startup/db.py +0 -244
- codex-1.12.7/codex/startup/loguru.py +0 -82
- codex-1.12.7/codex/startup/registration.py +0 -13
- codex-1.12.7/codex/static/assets/VCheckbox-E57ubrNv.js +0 -1
- codex-1.12.7/codex/static/assets/VCheckbox-E57ubrNv.js.br +0 -0
- codex-1.12.7/codex/static/assets/VCheckbox-E57ubrNv.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VCombobox-CSFSGfLd.js +0 -2
- codex-1.12.7/codex/static/assets/VCombobox-CSFSGfLd.js.br +0 -0
- codex-1.12.7/codex/static/assets/VCombobox-CSFSGfLd.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VDivider-C6KGdwiu.css +0 -1
- codex-1.12.7/codex/static/assets/VDivider-C6KGdwiu.css.br +0 -0
- codex-1.12.7/codex/static/assets/VDivider-C6KGdwiu.css.gz +0 -0
- codex-1.12.7/codex/static/assets/VDivider-TyR5Phw-.js +0 -1
- codex-1.12.7/codex/static/assets/VDivider-TyR5Phw-.js.br +0 -0
- codex-1.12.7/codex/static/assets/VDivider-TyR5Phw-.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VExpansionPanels-CULNITHX.js +0 -1
- codex-1.12.7/codex/static/assets/VExpansionPanels-CULNITHX.js.br +0 -0
- codex-1.12.7/codex/static/assets/VExpansionPanels-CULNITHX.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VExpansionPanels-CUfe7Zz5.css +0 -1
- codex-1.12.7/codex/static/assets/VExpansionPanels-CUfe7Zz5.css.br +0 -0
- codex-1.12.7/codex/static/assets/VExpansionPanels-CUfe7Zz5.css.gz +0 -0
- codex-1.12.7/codex/static/assets/VForm-D_MRywit.js +0 -1
- codex-1.12.7/codex/static/assets/VForm-D_MRywit.js.br +0 -0
- codex-1.12.7/codex/static/assets/VForm-D_MRywit.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VListItem-BPLo0ybo.css +0 -1
- codex-1.12.7/codex/static/assets/VListItem-BPLo0ybo.css.br +0 -0
- codex-1.12.7/codex/static/assets/VListItem-BPLo0ybo.css.gz +0 -0
- codex-1.12.7/codex/static/assets/VListItem-CodEI_Ap.js +0 -1
- codex-1.12.7/codex/static/assets/VListItem-CodEI_Ap.js.br +0 -0
- codex-1.12.7/codex/static/assets/VListItem-CodEI_Ap.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VProgressCircular-DGEUiQBS.js +0 -10
- codex-1.12.7/codex/static/assets/VProgressCircular-DGEUiQBS.js.br +0 -0
- codex-1.12.7/codex/static/assets/VProgressCircular-DGEUiQBS.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VRadioGroup-CnYpLYXB.js +0 -1
- codex-1.12.7/codex/static/assets/VRadioGroup-CnYpLYXB.js.br +0 -0
- codex-1.12.7/codex/static/assets/VRadioGroup-CnYpLYXB.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VSelect-C8lGNFfd.css +0 -1
- codex-1.12.7/codex/static/assets/VSelect-C8lGNFfd.css.br +0 -0
- codex-1.12.7/codex/static/assets/VSelect-C8lGNFfd.css.gz +0 -0
- codex-1.12.7/codex/static/assets/VSelect-nogMhy_Q.js +0 -1
- codex-1.12.7/codex/static/assets/VSelect-nogMhy_Q.js.br +0 -0
- codex-1.12.7/codex/static/assets/VSelect-nogMhy_Q.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VSelectionControl-CDfSNsUR.css +0 -1
- codex-1.12.7/codex/static/assets/VSelectionControl-CDfSNsUR.css.br +0 -0
- codex-1.12.7/codex/static/assets/VSelectionControl-CDfSNsUR.css.gz +0 -0
- codex-1.12.7/codex/static/assets/VSelectionControl-rOPGFMXg.js +0 -1
- codex-1.12.7/codex/static/assets/VSelectionControl-rOPGFMXg.js.br +0 -0
- codex-1.12.7/codex/static/assets/VSelectionControl-rOPGFMXg.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VTable-BB60CanX.js +0 -1
- codex-1.12.7/codex/static/assets/VTable-BB60CanX.js.br +0 -0
- codex-1.12.7/codex/static/assets/VTable-BB60CanX.js.gz +0 -0
- codex-1.12.7/codex/static/assets/VTable-Dq_7MYoa.css +0 -1
- codex-1.12.7/codex/static/assets/VTable-Dq_7MYoa.css.br +0 -0
- codex-1.12.7/codex/static/assets/VTable-Dq_7MYoa.css.gz +0 -0
- codex-1.12.7/codex/static/assets/VWindowItem-D7nMrfHD.css +0 -1
- codex-1.12.7/codex/static/assets/VWindowItem-D7nMrfHD.css.br +0 -0
- codex-1.12.7/codex/static/assets/VWindowItem-D7nMrfHD.css.gz +0 -0
- codex-1.12.7/codex/static/assets/VWindowItem-_SuWNwU8.js +0 -1
- codex-1.12.7/codex/static/assets/VWindowItem-_SuWNwU8.js.br +0 -0
- codex-1.12.7/codex/static/assets/VWindowItem-_SuWNwU8.js.gz +0 -0
- codex-1.12.7/codex/static/assets/admin-B7QuTDbE.js +0 -1
- codex-1.12.7/codex/static/assets/admin-B7QuTDbE.js.br +0 -0
- codex-1.12.7/codex/static/assets/admin-B7QuTDbE.js.gz +0 -0
- codex-1.12.7/codex/static/assets/admin-CQ6CwRJ3.css +0 -1
- codex-1.12.7/codex/static/assets/admin-CQ6CwRJ3.css.br +0 -0
- codex-1.12.7/codex/static/assets/admin-CQ6CwRJ3.css.gz +0 -0
- codex-1.12.7/codex/static/assets/admin-DKFHyvG1.js +0 -1
- codex-1.12.7/codex/static/assets/admin-DKFHyvG1.js.br +0 -0
- codex-1.12.7/codex/static/assets/admin-DKFHyvG1.js.gz +0 -0
- codex-1.12.7/codex/static/assets/admin-menu-C7uO_P7i.js +0 -1
- codex-1.12.7/codex/static/assets/admin-menu-C7uO_P7i.js.br +0 -0
- codex-1.12.7/codex/static/assets/admin-menu-C7uO_P7i.js.gz +0 -0
- codex-1.12.7/codex/static/assets/admin-menu-C_ThfpDU.css +0 -1
- codex-1.12.7/codex/static/assets/admin-menu-C_ThfpDU.css.br +0 -0
- codex-1.12.7/codex/static/assets/admin-menu-C_ThfpDU.css.gz +0 -0
- codex-1.12.7/codex/static/assets/admin-settings-button-progress-DwL2iGAd.js +0 -1
- codex-1.12.7/codex/static/assets/admin-settings-button-progress-DwL2iGAd.js.br +0 -0
- codex-1.12.7/codex/static/assets/admin-settings-button-progress-DwL2iGAd.js.gz +0 -0
- codex-1.12.7/codex/static/assets/browser-CWf30Frt.js +0 -1
- codex-1.12.7/codex/static/assets/browser-CWf30Frt.js.br +0 -0
- codex-1.12.7/codex/static/assets/browser-CWf30Frt.js.gz +0 -0
- codex-1.12.7/codex/static/assets/browser-D4rwrT2s.css +0 -1
- codex-1.12.7/codex/static/assets/browser-D4rwrT2s.css.br +0 -0
- codex-1.12.7/codex/static/assets/browser-D4rwrT2s.css.gz +0 -0
- codex-1.12.7/codex/static/assets/change-password-dialog-DPb7hr5i.css +0 -1
- codex-1.12.7/codex/static/assets/change-password-dialog-DPb7hr5i.css.br +0 -2
- codex-1.12.7/codex/static/assets/change-password-dialog-DPb7hr5i.css.gz +0 -0
- codex-1.12.7/codex/static/assets/change-password-dialog-DShcSD1q.js +0 -1
- codex-1.12.7/codex/static/assets/change-password-dialog-DShcSD1q.js.br +0 -0
- codex-1.12.7/codex/static/assets/change-password-dialog-DShcSD1q.js.gz +0 -0
- codex-1.12.7/codex/static/assets/clipboard-DwN5w1_T.js +0 -1
- codex-1.12.7/codex/static/assets/clipboard-DwN5w1_T.js.br +0 -0
- codex-1.12.7/codex/static/assets/clipboard-DwN5w1_T.js.gz +0 -0
- codex-1.12.7/codex/static/assets/confirm-dialog-BCmI1dOF.css +0 -1
- codex-1.12.7/codex/static/assets/confirm-dialog-BCmI1dOF.css.br +0 -0
- codex-1.12.7/codex/static/assets/confirm-dialog-BCmI1dOF.css.gz +0 -0
- codex-1.12.7/codex/static/assets/confirm-dialog-nxHgU-NT.js +0 -1
- codex-1.12.7/codex/static/assets/confirm-dialog-nxHgU-NT.js.br +0 -0
- codex-1.12.7/codex/static/assets/confirm-dialog-nxHgU-NT.js.gz +0 -0
- codex-1.12.7/codex/static/assets/confirm-footer-BeBnhQHH.js +0 -1
- codex-1.12.7/codex/static/assets/confirm-footer-BeBnhQHH.js.br +0 -0
- codex-1.12.7/codex/static/assets/confirm-footer-BeBnhQHH.js.gz +0 -0
- codex-1.12.7/codex/static/assets/confirm-footer-ClPdZQz9.css +0 -1
- codex-1.12.7/codex/static/assets/confirm-footer-ClPdZQz9.css.br +0 -0
- codex-1.12.7/codex/static/assets/confirm-footer-ClPdZQz9.css.gz +0 -0
- codex-1.12.7/codex/static/assets/datetime-column-BH-nhgFS.css +0 -1
- codex-1.12.7/codex/static/assets/datetime-column-Bd8T3xZ3.js +0 -1
- codex-1.12.7/codex/static/assets/datetime-column-Bd8T3xZ3.js.br +0 -0
- codex-1.12.7/codex/static/assets/datetime-column-Bd8T3xZ3.js.gz +0 -0
- codex-1.12.7/codex/static/assets/dist-Bt_QBcxX.js +0 -1
- codex-1.12.7/codex/static/assets/dist-Bt_QBcxX.js.br +0 -0
- codex-1.12.7/codex/static/assets/dist-Bt_QBcxX.js.gz +0 -0
- codex-1.12.7/codex/static/assets/flag-tab-BulKNnHr.js +0 -1
- codex-1.12.7/codex/static/assets/flag-tab-BulKNnHr.js.br +0 -0
- codex-1.12.7/codex/static/assets/flag-tab-BulKNnHr.js.gz +0 -0
- codex-1.12.7/codex/static/assets/flag-tab-Dr7PNG57.css +0 -1
- codex-1.12.7/codex/static/assets/flag-tab-Dr7PNG57.css.br +0 -6
- codex-1.12.7/codex/static/assets/flag-tab-Dr7PNG57.css.gz +0 -0
- codex-1.12.7/codex/static/assets/group-tab-BOsxaIUq.js +0 -1
- codex-1.12.7/codex/static/assets/group-tab-BOsxaIUq.js.br +0 -0
- codex-1.12.7/codex/static/assets/group-tab-BOsxaIUq.js.gz +0 -0
- codex-1.12.7/codex/static/assets/group-tab-DO4TFX8B.css +0 -1
- codex-1.12.7/codex/static/assets/group-tab-DO4TFX8B.css.br +0 -0
- codex-1.12.7/codex/static/assets/group-tab-DO4TFX8B.css.gz +0 -0
- codex-1.12.7/codex/static/assets/http-error-CV6VbDMG.js +0 -1
- codex-1.12.7/codex/static/assets/http-error-CV6VbDMG.js.br +0 -0
- codex-1.12.7/codex/static/assets/http-error-CV6VbDMG.js.gz +0 -0
- codex-1.12.7/codex/static/assets/job-tab-BQdgAgat.js +0 -1
- codex-1.12.7/codex/static/assets/job-tab-BQdgAgat.js.br +0 -0
- codex-1.12.7/codex/static/assets/job-tab-BQdgAgat.js.gz +0 -0
- codex-1.12.7/codex/static/assets/job-tab-KX6MP9wA.css +0 -1
- codex-1.12.7/codex/static/assets/job-tab-KX6MP9wA.css.br +0 -0
- codex-1.12.7/codex/static/assets/job-tab-KX6MP9wA.css.gz +0 -0
- codex-1.12.7/codex/static/assets/library-tab-B5Abqu6U.js +0 -1
- codex-1.12.7/codex/static/assets/library-tab-B5Abqu6U.js.br +0 -0
- codex-1.12.7/codex/static/assets/library-tab-B5Abqu6U.js.gz +0 -0
- codex-1.12.7/codex/static/assets/library-tab-CBlCYLTX.css +0 -1
- codex-1.12.7/codex/static/assets/library-tab-CBlCYLTX.css.br +0 -0
- codex-1.12.7/codex/static/assets/library-tab-CBlCYLTX.css.gz +0 -0
- codex-1.12.7/codex/static/assets/main-CiRWWALy.css +0 -1
- codex-1.12.7/codex/static/assets/main-CiRWWALy.css.br +0 -0
- codex-1.12.7/codex/static/assets/main-CiRWWALy.css.gz +0 -0
- codex-1.12.7/codex/static/assets/main-glQLhtQy.js +0 -6
- codex-1.12.7/codex/static/assets/main-glQLhtQy.js.br +0 -0
- codex-1.12.7/codex/static/assets/main-glQLhtQy.js.gz +0 -0
- codex-1.12.7/codex/static/assets/pagination-toolbar-DdlS6ZHu.js +0 -1
- codex-1.12.7/codex/static/assets/pagination-toolbar-DdlS6ZHu.js.br +0 -0
- codex-1.12.7/codex/static/assets/pagination-toolbar-DdlS6ZHu.js.gz +0 -0
- codex-1.12.7/codex/static/assets/pagination-toolbar-Fs5Lkf6I.css +0 -1
- codex-1.12.7/codex/static/assets/pagination-toolbar-Fs5Lkf6I.css.br +0 -0
- codex-1.12.7/codex/static/assets/pagination-toolbar-Fs5Lkf6I.css.gz +0 -0
- codex-1.12.7/codex/static/assets/pdf-doc-1giPaJhr.js +0 -378
- codex-1.12.7/codex/static/assets/pdf-doc-1giPaJhr.js.br +0 -0
- codex-1.12.7/codex/static/assets/pdf-doc-1giPaJhr.js.gz +0 -0
- codex-1.12.7/codex/static/assets/reader-6n_bAmHe.css +0 -1
- codex-1.12.7/codex/static/assets/reader-6n_bAmHe.css.br +0 -0
- codex-1.12.7/codex/static/assets/reader-6n_bAmHe.css.gz +0 -0
- codex-1.12.7/codex/static/assets/reader-BQyNNnx4.js +0 -2
- codex-1.12.7/codex/static/assets/reader-BQyNNnx4.js.br +0 -0
- codex-1.12.7/codex/static/assets/reader-BQyNNnx4.js.gz +0 -0
- codex-1.12.7/codex/static/assets/relation-chips-CJTtr8eX.js +0 -1
- codex-1.12.7/codex/static/assets/relation-chips-CJTtr8eX.js.br +0 -0
- codex-1.12.7/codex/static/assets/relation-chips-CJTtr8eX.js.gz +0 -0
- codex-1.12.7/codex/static/assets/relation-chips-DJp1a2uO.css +0 -1
- codex-1.12.7/codex/static/assets/relation-chips-DJp1a2uO.css.br +0 -0
- codex-1.12.7/codex/static/assets/relation-chips-DJp1a2uO.css.gz +0 -0
- codex-1.12.7/codex/static/assets/settings-drawer-DOLgO-B1.css +0 -1
- codex-1.12.7/codex/static/assets/settings-drawer-DOLgO-B1.css.br +0 -0
- codex-1.12.7/codex/static/assets/settings-drawer-DOLgO-B1.css.gz +0 -0
- codex-1.12.7/codex/static/assets/settings-drawer-DQBjfNOS.js +0 -2
- codex-1.12.7/codex/static/assets/settings-drawer-DQBjfNOS.js.br +0 -0
- codex-1.12.7/codex/static/assets/settings-drawer-DQBjfNOS.js.gz +0 -0
- codex-1.12.7/codex/static/assets/stats-tab-BXtuCqLF.css +0 -1
- codex-1.12.7/codex/static/assets/stats-tab-BXtuCqLF.css.br +0 -0
- codex-1.12.7/codex/static/assets/stats-tab-BXtuCqLF.css.gz +0 -0
- codex-1.12.7/codex/static/assets/stats-tab-DCIx-LgL.js +0 -1
- codex-1.12.7/codex/static/assets/stats-tab-DCIx-LgL.js.br +0 -0
- codex-1.12.7/codex/static/assets/stats-tab-DCIx-LgL.js.gz +0 -0
- codex-1.12.7/codex/static/assets/tooltip-onZ2HOXO.js +0 -1
- codex-1.12.7/codex/static/assets/tooltip-onZ2HOXO.js.br +0 -0
- codex-1.12.7/codex/static/assets/tooltip-onZ2HOXO.js.gz +0 -0
- codex-1.12.7/codex/static/assets/unauthorized-CWtxMS7M.js +0 -1
- codex-1.12.7/codex/static/assets/unauthorized-CWtxMS7M.js.br +0 -0
- codex-1.12.7/codex/static/assets/unauthorized-CWtxMS7M.js.gz +0 -0
- codex-1.12.7/codex/static/assets/unauthorized-gk3ft6LF.css +0 -1
- codex-1.12.7/codex/static/assets/unauthorized-gk3ft6LF.css.br +0 -0
- codex-1.12.7/codex/static/assets/unauthorized-gk3ft6LF.css.gz +0 -0
- codex-1.12.7/codex/static/assets/use-now-timer-Drp4HFmC.js +0 -1
- codex-1.12.7/codex/static/assets/use-now-timer-Drp4HFmC.js.br +0 -0
- codex-1.12.7/codex/static/assets/use-now-timer-Drp4HFmC.js.gz +0 -0
- codex-1.12.7/codex/static/assets/user-tab-BXy6ZrdV.css +0 -1
- codex-1.12.7/codex/static/assets/user-tab-BXy6ZrdV.css.br +0 -0
- codex-1.12.7/codex/static/assets/user-tab-BXy6ZrdV.css.gz +0 -0
- codex-1.12.7/codex/static/assets/user-tab-CtR9Eh-F.js +0 -1
- codex-1.12.7/codex/static/assets/user-tab-CtR9Eh-F.js.br +0 -0
- codex-1.12.7/codex/static/assets/user-tab-CtR9Eh-F.js.gz +0 -0
- codex-1.12.7/codex/static/assets/vendor-vue-CuwZC7JE.js +0 -1
- codex-1.12.7/codex/static/assets/vendor-vue-CuwZC7JE.js.br +0 -0
- codex-1.12.7/codex/static/assets/vendor-vue-CuwZC7JE.js.gz +0 -0
- codex-1.12.7/codex/static/manifest.json +0 -754
- codex-1.12.7/codex/static/manifest.json.br +0 -0
- codex-1.12.7/codex/static/manifest.json.gz +0 -0
- codex-1.12.7/codex/templates/headers-script-globals.html +0 -10
- codex-1.12.7/codex/templates/opds_v1/index.xml +0 -115
- codex-1.12.7/codex/templates/opds_v1/opensearch_v1.xml +0 -10
- codex-1.12.7/codex/urls/api/admin.py +0 -98
- codex-1.12.7/codex/urls/api/auth.py +0 -15
- codex-1.12.7/codex/urls/api/browser.py +0 -93
- codex-1.12.7/codex/urls/api/favorites.py +0 -20
- codex-1.12.7/codex/urls/api/reader.py +0 -70
- codex-1.12.7/codex/urls/api/root.py +0 -8
- codex-1.12.7/codex/urls/api/v3.py +0 -52
- codex-1.12.7/codex/urls/app.py +0 -31
- codex-1.12.7/codex/urls/converters.py +0 -45
- codex-1.12.7/codex/urls/opds/root.py +0 -34
- codex-1.12.7/codex/urls/opds/v1.py +0 -32
- codex-1.12.7/codex/urls/opds/v2.py +0 -45
- codex-1.12.7/codex/urls/root.py +0 -49
- codex-1.12.7/codex/views/admin/api_key.py +0 -23
- codex-1.12.7/codex/views/admin/auth.py +0 -47
- codex-1.12.7/codex/views/admin/flag.py +0 -49
- codex-1.12.7/codex/views/admin/library.py +0 -254
- codex-1.12.7/codex/views/admin/permissions.py +0 -22
- codex-1.12.7/codex/views/admin/stats.py +0 -105
- codex-1.12.7/codex/views/admin/tasks.py +0 -201
- codex-1.12.7/codex/views/admin/user.py +0 -137
- codex-1.12.7/codex/views/auth.py +0 -457
- codex-1.12.7/codex/views/bookmark.py +0 -80
- codex-1.12.7/codex/views/browser/annotate/bookmark.py +0 -116
- codex-1.12.7/codex/views/browser/annotate/card.py +0 -102
- codex-1.12.7/codex/views/browser/annotate/cover.py +0 -107
- codex-1.12.7/codex/views/browser/annotate/order.py +0 -525
- codex-1.12.7/codex/views/browser/bookmark.py +0 -70
- codex-1.12.7/codex/views/browser/breadcrumbs.py +0 -179
- codex-1.12.7/codex/views/browser/browser.py +0 -401
- codex-1.12.7/codex/views/browser/columns.py +0 -305
- codex-1.12.7/codex/views/browser/cover.py +0 -147
- codex-1.12.7/codex/views/browser/download.py +0 -67
- codex-1.12.7/codex/views/browser/filters/bookmark.py +0 -39
- codex-1.12.7/codex/views/browser/filters/field.py +0 -75
- codex-1.12.7/codex/views/browser/filters/filter.py +0 -242
- codex-1.12.7/codex/views/browser/filters/group.py +0 -54
- codex-1.12.7/codex/views/browser/filters/search/field/expression.py +0 -190
- codex-1.12.7/codex/views/browser/filters/search/parse.py +0 -296
- codex-1.12.7/codex/views/browser/force_update.py +0 -52
- codex-1.12.7/codex/views/browser/group_mtime.py +0 -143
- codex-1.12.7/codex/views/browser/intersections.py +0 -957
- codex-1.12.7/codex/views/browser/metadata/__init__.py +0 -118
- codex-1.12.7/codex/views/browser/metadata/annotate.py +0 -147
- codex-1.12.7/codex/views/browser/metadata/const.py +0 -111
- codex-1.12.7/codex/views/browser/metadata/copy_intersections.py +0 -90
- codex-1.12.7/codex/views/browser/metadata/group_list.py +0 -44
- codex-1.12.7/codex/views/browser/metadata/query_intersections.py +0 -152
- codex-1.12.7/codex/views/browser/mtime.py +0 -50
- codex-1.12.7/codex/views/browser/order_by.py +0 -214
- codex-1.12.7/codex/views/browser/page_in_bounds.py +0 -64
- codex-1.12.7/codex/views/browser/paginate.py +0 -103
- codex-1.12.7/codex/views/browser/params.py +0 -67
- codex-1.12.7/codex/views/browser/saved_settings.py +0 -309
- codex-1.12.7/codex/views/browser/settings.py +0 -170
- codex-1.12.7/codex/views/browser/title.py +0 -49
- codex-1.12.7/codex/views/browser/validate.py +0 -194
- codex-1.12.7/codex/views/const.py +0 -157
- codex-1.12.7/codex/views/exceptions.py +0 -100
- codex-1.12.7/codex/views/favorites.py +0 -80
- codex-1.12.7/codex/views/frontend.py +0 -39
- codex-1.12.7/codex/views/lazy_import.py +0 -24
- codex-1.12.7/codex/views/mixins.py +0 -123
- codex-1.12.7/codex/views/opds/authentication/v1.py +0 -89
- codex-1.12.7/codex/views/opds/const.py +0 -122
- codex-1.12.7/codex/views/opds/error.py +0 -71
- codex-1.12.7/codex/views/opds/feed.py +0 -21
- codex-1.12.7/codex/views/opds/metadata.py +0 -149
- codex-1.12.7/codex/views/opds/opensearch/v1.py +0 -20
- codex-1.12.7/codex/views/opds/start.py +0 -20
- codex-1.12.7/codex/views/opds/urls.py +0 -31
- codex-1.12.7/codex/views/opds/v1/const.py +0 -204
- codex-1.12.7/codex/views/opds/v1/entry/entry.py +0 -161
- codex-1.12.7/codex/views/opds/v1/entry/links.py +0 -184
- codex-1.12.7/codex/views/opds/v1/facets.py +0 -173
- codex-1.12.7/codex/views/opds/v1/feed.py +0 -228
- codex-1.12.7/codex/views/opds/v1/links.py +0 -155
- codex-1.12.7/codex/views/opds/v2/const.py +0 -197
- codex-1.12.7/codex/views/opds/v2/feed/__init__.py +0 -214
- codex-1.12.7/codex/views/opds/v2/feed/feed_links.py +0 -134
- codex-1.12.7/codex/views/opds/v2/feed/groups.py +0 -191
- codex-1.12.7/codex/views/opds/v2/feed/links.py +0 -146
- codex-1.12.7/codex/views/opds/v2/feed/publications.py +0 -560
- codex-1.12.7/codex/views/opds/v2/href.py +0 -65
- codex-1.12.7/codex/views/opds/v2/manifest.py +0 -406
- codex-1.12.7/codex/views/opds/v2/progression.py +0 -266
- codex-1.12.7/codex/views/public.py +0 -42
- codex-1.12.7/codex/views/reader/_archive_cache.py +0 -302
- codex-1.12.7/codex/views/reader/arcs.py +0 -149
- codex-1.12.7/codex/views/reader/books.py +0 -235
- codex-1.12.7/codex/views/reader/page.py +0 -223
- codex-1.12.7/codex/views/reader/params.py +0 -70
- codex-1.12.7/codex/views/reader/reader.py +0 -49
- codex-1.12.7/codex/views/reader/settings.py +0 -343
- codex-1.12.7/codex/views/settings.py +0 -512
- codex-1.12.7/codex/views/timezone.py +0 -41
- codex-1.12.7/codex/views/util.py +0 -68
- codex-1.12.7/codex/views/version.py +0 -40
- codex-1.12.7/codex/websockets/consumers.py +0 -61
- codex-1.12.7/docs/DOCKER.md +0 -108
- codex-1.12.7/docs/NEWS.md +0 -2147
- codex-1.12.7/docs/README.md +0 -829
- codex-1.12.7/eslint.config.js +0 -81
- codex-1.12.7/frontend/.eslintcache +0 -1
- codex-1.12.7/frontend/bin/fix-sh.sh +0 -7
- codex-1.12.7/frontend/bin/lint-darwin.sh +0 -10
- codex-1.12.7/frontend/bin/lint-sh.sh +0 -8
- codex-1.12.7/frontend/bin/remark-for-claude.sh +0 -7
- codex-1.12.7/frontend/bin/roman.py +0 -205
- codex-1.12.7/frontend/bin/sort-ignore.sh +0 -10
- codex-1.12.7/frontend/bin/version-node.sh +0 -15
- codex-1.12.7/frontend/bun.lock +0 -1223
- codex-1.12.7/frontend/package.json +0 -55
- codex-1.12.7/frontend/src/admin.vue +0 -37
- codex-1.12.7/frontend/src/api/v3/abortable.js +0 -89
- codex-1.12.7/frontend/src/api/v3/admin.js +0 -74
- codex-1.12.7/frontend/src/api/v3/auth.js +0 -32
- codex-1.12.7/frontend/src/api/v3/base.js +0 -96
- codex-1.12.7/frontend/src/api/v3/browser.js +0 -159
- codex-1.12.7/frontend/src/api/v3/common.js +0 -118
- codex-1.12.7/frontend/src/api/v3/favorites.js +0 -9
- codex-1.12.7/frontend/src/api/v3/notify.js +0 -9
- codex-1.12.7/frontend/src/api/v3/reader.js +0 -74
- codex-1.12.7/frontend/src/app.vue +0 -115
- codex-1.12.7/frontend/src/browser.vue +0 -77
- codex-1.12.7/frontend/src/choices/admin-flag-choices.json +0 -13
- codex-1.12.7/frontend/src/choices/admin-jobs.json +0 -399
- codex-1.12.7/frontend/src/choices/admin-status-titles.json +0 -57
- codex-1.12.7/frontend/src/choices/browser-choices.json +0 -266
- codex-1.12.7/frontend/src/choices/browser-defaults.json +0 -54
- codex-1.12.7/frontend/src/choices/browser-map.json +0 -75
- codex-1.12.7/frontend/src/choices/browser-table-columns.json +0 -303
- codex-1.12.7/frontend/src/choices/browser-table-default-columns.json +0 -53
- codex-1.12.7/frontend/src/choices/websocket-messages.json +0 -12
- codex-1.12.7/frontend/src/components/admin/admin-header.vue +0 -114
- codex-1.12.7/frontend/src/components/admin/create-update-dialog/create-update-dialog.vue +0 -190
- codex-1.12.7/frontend/src/components/admin/create-update-dialog/create-update-inputs-mixin.js +0 -60
- codex-1.12.7/frontend/src/components/admin/create-update-dialog/group-create-update-inputs.vue +0 -99
- codex-1.12.7/frontend/src/components/admin/create-update-dialog/library-create-update-inputs.vue +0 -122
- codex-1.12.7/frontend/src/components/admin/create-update-dialog/user-create-update-inputs.vue +0 -126
- codex-1.12.7/frontend/src/components/admin/drawer/admin-menu.vue +0 -68
- codex-1.12.7/frontend/src/components/admin/drawer/status-list-item.vue +0 -117
- codex-1.12.7/frontend/src/components/admin/status-helpers.js +0 -57
- codex-1.12.7/frontend/src/components/admin/tabs/admin-section.scss +0 -70
- codex-1.12.7/frontend/src/components/admin/tabs/custom-covers-panel.vue +0 -96
- codex-1.12.7/frontend/src/components/admin/tabs/datetime-column.vue +0 -53
- codex-1.12.7/frontend/src/components/admin/tabs/failed-imports-panel.vue +0 -151
- codex-1.12.7/frontend/src/components/admin/tabs/flag-descriptions.json +0 -13
- codex-1.12.7/frontend/src/components/admin/tabs/flag-groups.json +0 -18
- codex-1.12.7/frontend/src/components/admin/tabs/flag-tab.vue +0 -275
- codex-1.12.7/frontend/src/components/admin/tabs/group-tab.vue +0 -195
- codex-1.12.7/frontend/src/components/admin/tabs/job-tab.vue +0 -612
- codex-1.12.7/frontend/src/components/admin/tabs/library-tab.vue +0 -74
- codex-1.12.7/frontend/src/components/admin/tabs/library-table.vue +0 -277
- codex-1.12.7/frontend/src/components/admin/tabs/stats-tab.vue +0 -219
- codex-1.12.7/frontend/src/components/admin/tabs/stats-table.vue +0 -91
- codex-1.12.7/frontend/src/components/admin/tabs/user-tab.vue +0 -223
- codex-1.12.7/frontend/src/components/auth/auth-menu.vue +0 -55
- codex-1.12.7/frontend/src/components/auth/auth-token.vue +0 -132
- codex-1.12.7/frontend/src/components/auth/change-password-dialog.vue +0 -208
- codex-1.12.7/frontend/src/components/auth/login-dialog.vue +0 -177
- codex-1.12.7/frontend/src/components/book-cover.vue +0 -207
- codex-1.12.7/frontend/src/components/browser/card/browser-card-menu.vue +0 -69
- codex-1.12.7/frontend/src/components/browser/card/card.vue +0 -316
- codex-1.12.7/frontend/src/components/browser/card/controls.vue +0 -96
- codex-1.12.7/frontend/src/components/browser/card/order-by-caption.vue +0 -99
- codex-1.12.7/frontend/src/components/browser/card/subtitle.vue +0 -140
- codex-1.12.7/frontend/src/components/browser/drawer/browser-settings-covers.vue +0 -65
- codex-1.12.7/frontend/src/components/browser/drawer/browser-settings-group.vue +0 -61
- codex-1.12.7/frontend/src/components/browser/drawer/browser-settings-misc.vue +0 -57
- codex-1.12.7/frontend/src/components/browser/drawer/browser-settings-panel.vue +0 -25
- codex-1.12.7/frontend/src/components/browser/drawer/browser-settings-saved.vue +0 -198
- codex-1.12.7/frontend/src/components/browser/empty.vue +0 -86
- codex-1.12.7/frontend/src/components/browser/main.vue +0 -390
- codex-1.12.7/frontend/src/components/browser/table/browser-table-cell.vue +0 -395
- codex-1.12.7/frontend/src/components/browser/table/browser-table-column-picker.vue +0 -574
- codex-1.12.7/frontend/src/components/browser/table/browser-table.vue +0 -511
- codex-1.12.7/frontend/src/components/browser/toolbars/breadcrumbs/breadcrumbs.vue +0 -139
- codex-1.12.7/frontend/src/components/browser/toolbars/browser-toolbar-title.vue +0 -101
- codex-1.12.7/frontend/src/components/browser/toolbars/nav/browser-nav-button.vue +0 -100
- codex-1.12.7/frontend/src/components/browser/toolbars/nav/browser-toolbar-nav.vue +0 -47
- codex-1.12.7/frontend/src/components/browser/toolbars/top/browser-toolbar-top.vue +0 -86
- codex-1.12.7/frontend/src/components/browser/toolbars/top/filter-choice-list.vue +0 -219
- codex-1.12.7/frontend/src/components/browser/toolbars/top/filter-sub-menu.vue +0 -418
- codex-1.12.7/frontend/src/components/browser/toolbars/top/top-group-select.vue +0 -69
- codex-1.12.7/frontend/src/components/confirm-dialog.vue +0 -122
- codex-1.12.7/frontend/src/components/download-button.vue +0 -120
- codex-1.12.7/frontend/src/components/favorite-toggle.vue +0 -88
- codex-1.12.7/frontend/src/components/force-update-button.vue +0 -106
- codex-1.12.7/frontend/src/components/force-update-confirm-dialog.vue +0 -71
- codex-1.12.7/frontend/src/components/mark-read-button.vue +0 -85
- codex-1.12.7/frontend/src/components/metadata/metadata-activator.vue +0 -60
- codex-1.12.7/frontend/src/components/metadata/metadata-body.vue +0 -142
- codex-1.12.7/frontend/src/components/metadata/metadata-chip.vue +0 -188
- codex-1.12.7/frontend/src/components/metadata/metadata-controls.vue +0 -188
- codex-1.12.7/frontend/src/components/metadata/metadata-cover.vue +0 -96
- codex-1.12.7/frontend/src/components/metadata/metadata-dialog.vue +0 -201
- codex-1.12.7/frontend/src/components/metadata/metadata-header.vue +0 -308
- codex-1.12.7/frontend/src/components/metadata/metadata-ratings.vue +0 -75
- codex-1.12.7/frontend/src/components/metadata/metadata-tags.vue +0 -91
- codex-1.12.7/frontend/src/components/metadata/metadata-text.vue +0 -267
- codex-1.12.7/frontend/src/components/metadata/tags-table.vue +0 -57
- codex-1.12.7/frontend/src/components/reader/drawer/download-panel.vue +0 -79
- codex-1.12.7/frontend/src/components/reader/drawer/keyboard-shortcuts-table.vue +0 -140
- codex-1.12.7/frontend/src/components/reader/drawer/reader-settings-reader.vue +0 -50
- codex-1.12.7/frontend/src/components/reader/drawer/reader-settings-scope.vue +0 -302
- codex-1.12.7/frontend/src/components/reader/pager/page/page.vue +0 -228
- codex-1.12.7/frontend/src/components/reader/pager/pager-horizontal.vue +0 -159
- codex-1.12.7/frontend/src/components/reader/pager/pager.vue +0 -76
- codex-1.12.7/frontend/src/components/reader/toolbars/nav/reader-book-change-nav-button.vue +0 -69
- codex-1.12.7/frontend/src/components/reader/toolbars/nav/reader-nav-button.vue +0 -91
- codex-1.12.7/frontend/src/components/reader/toolbars/top/reader-arc-select.vue +0 -166
- codex-1.12.7/frontend/src/components/reader/toolbars/top/reader-toolbar-top.vue +0 -235
- codex-1.12.7/frontend/src/components/settings/button.vue +0 -59
- codex-1.12.7/frontend/src/components/settings/opds-dialog.vue +0 -82
- codex-1.12.7/frontend/src/plugins/router.js +0 -119
- codex-1.12.7/frontend/src/plugins/vuetify.js +0 -98
- codex-1.12.7/frontend/src/reader.vue +0 -93
- codex-1.12.7/frontend/src/route.js +0 -27
- codex-1.12.7/frontend/src/stores/admin.js +0 -275
- codex-1.12.7/frontend/src/stores/auth.js +0 -137
- codex-1.12.7/frontend/src/stores/browser-select-many.js +0 -249
- codex-1.12.7/frontend/src/stores/browser.js +0 -930
- codex-1.12.7/frontend/src/stores/common.js +0 -112
- codex-1.12.7/frontend/src/stores/favorites.js +0 -92
- codex-1.12.7/frontend/src/stores/metadata.js +0 -250
- codex-1.12.7/frontend/src/stores/reader.js +0 -964
- codex-1.12.7/frontend/src/stores/socket.js +0 -252
- codex-1.12.7/frontend/tests/unit/__snapshots__/reader-nav-button.test.js.snap +0 -9
- codex-1.12.7/frontend/tests/unit/browser-select-many-store.test.js +0 -192
- codex-1.12.7/frontend/tests/unit/browser-store-helpers.test.js +0 -119
- codex-1.12.7/frontend/tests/unit/favorites-store.test.js +0 -159
- codex-1.12.7/frontend/tests/unit/reader-nav-button.test.js +0 -68
- codex-1.12.7/package.json +0 -107
- codex-1.12.7/pyproject.toml +0 -414
- codex-1.12.7/tests/importer/test_basic.py +0 -884
- codex-1.12.7/tests/importer/test_update_all.py +0 -774
- codex-1.12.7/tests/importer/test_update_none.py +0 -165
- codex-1.12.7/tests/perf/run_baseline.py +0 -389
- codex-1.12.7/tests/perf/run_opds_baseline.py +0 -369
- codex-1.12.7/tests/perf/run_reader_baseline.py +0 -430
- codex-1.12.7/tests/test_admin_query_counts.py +0 -104
- codex-1.12.7/tests/test_browser_columns_registry.py +0 -211
- codex-1.12.7/tests/test_browser_ordering.py +0 -815
- codex-1.12.7/tests/test_browser_settings_table.py +0 -301
- codex-1.12.7/tests/test_browser_table_response.py +0 -995
- codex-1.12.7/tests/test_favorites_api.py +0 -481
- codex-1.12.7/tests/test_fs_filters_ignore.py +0 -209
- codex-1.12.7/tests/test_logging_filter.py +0 -68
- codex-1.12.7/tests/test_metadata_group_list.py +0 -182
- codex-1.12.7/tests/test_models.py +0 -130
- codex-1.12.7/tests/test_snapshot_diff.py +0 -223
- codex-1.12.7/uv.lock +0 -3649
- codex-1.12.7/vulture_ignorelist.py +0 -4
- {codex-1.12.7 → codex-2.0.0}/.github/workflows/ci.yml +0 -0
- {codex-1.12.7 → codex-2.0.0}/.gitignore +0 -0
- {codex-1.12.7 → codex-2.0.0}/.prettierignore +0 -0
- {codex-1.12.7 → codex-2.0.0}/.readthedocs.yaml +0 -0
- {codex-1.12.7 → codex-2.0.0}/.remarkignore +0 -0
- {codex-1.12.7 → codex-2.0.0}/.shellcheckrc +0 -0
- {codex-1.12.7 → codex-2.0.0}/Makefile +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/build-choices.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/build-dist.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/clean-pycache.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/collectstatic.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/dev-docker.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/dev-module.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/dev-prod-server.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/dev-reverse-proxy.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/docker-compose-exit.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/fix-python.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/fix.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/icons_transform.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/kill-codex.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/kill-eslint_d.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/lint-python.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/lint.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/localize-db.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/localize_library.sql +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/manage.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/pm +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/sync_comic_logo.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/test-python.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/uml.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/update-deps-node.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/update-deps-python.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/bin/vendor-patch-imports.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/applications/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/applications/lifespan.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/asgi.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/authentication.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/choices/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/choices/reader.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/choices/search.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/db_routers.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/failed_login_log.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/bookmark/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/bookmark/update.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/bookmark/user_active.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/covers/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/covers/coverd.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/covers/create.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/covers/path.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/covers/status.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/covers/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/cron/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/cron/crond.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/events.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/import_task.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/poller/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/poller/status.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/poller/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/status.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/watcher/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/watcher/data.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/watcher/status.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/fs/watcher/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/mp_queue.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/notifier/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/notifier/notifierd.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/restarter/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/restarter/restarter.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/restarter/status.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/restarter/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/force_updater.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/delete/covers.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/failed/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/failed/create.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/failed/failed.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/failed/query.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/link/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/link/sum.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/moved/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/moved/comics.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/pragmas.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/query/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/query/covers.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/query/foreign_keys.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/query/links.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/query/update_fks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/search/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/search/prepare.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/search/sync_m2m.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/search/update.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/create.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/delete.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/failed.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/link.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/moved.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/query.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/read.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/statii/search.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/status.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/importer/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/janitor/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/janitor/scheduled_time.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/const.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/handler.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/optimize.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/prepare.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/remove.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/status.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/sync.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/scribe/search/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/telemeter/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/telemeter/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/threads.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/librarian/worker.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/middleware.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0001_init.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0002_auto_20200826_0622.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0003_auto_20200831_2033.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0004_failedimport.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0005_auto_20200918_0146.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0006_update_default_names_and_remove_duplicate_comics.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0007_auto_20211210_1710.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0008_alter_comic_created_at_alter_comic_format_and_more.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0009_alter_comic_parent_folder.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0010_haystack.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0011_library_groups_and_metadata_changes.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0012_rename_description_comic_comments.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0013_int_issue_count_longer_charfields.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0014_pdf_issue_suffix_remove_cover_image_sort_name.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0015_link_comics_to_top_level_folders.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0016_remove_comic_cover_path_librarianstatus.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0017_alter_timestamp_options_alter_adminflag_name_and_more.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0018_rename_userbookmark_bookmark.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0019_delete_queuejob.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0020_remove_search_tables.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0021_bookmark_fit_to_choices_read_in_reverse.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0022_bookmark_vertical_useractive_null_statuses.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0023_rename_credit_creator_and_more.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0024_comic_gtin_comic_story_arc_number.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0025_add_story_arc_number.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0026_comicbox_1.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0027_import_order_and_covers.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0028_telemeter.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0029_comicfts.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0030_nocase_collation_day_month_indexes_status_types.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0031_adminflag_banner.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0032_alter_librarianstatus_preactive.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0033_alter_librarianstatus_status_type.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0035_fts_optmize.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0036_alter_comic_path_alter_customcover_path_and_more.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0037_redefine_reading_direction_filetype_choices.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0040_reset_global_cache_book.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/0041_cleanup_phantom_comic_as_folder_rows.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/migrations/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/models/age_rating.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/models/auth.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/models/base.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/models/choices.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/models/functions.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/models/identifier.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/models/query.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/models/util.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/run.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/admin/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/admin/tasks.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/browser/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/browser/choices.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/browser/filters.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/browser/saved.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/fields/auth.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/fields/base.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/fields/browser.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/fields/sanitized.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/fields/settings.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/fields/stats.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/fields/vuetify.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/homepage.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/mixins.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/models/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/models/admin.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/models/base.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/models/bookmark.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/models/pycountry.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/authentication.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/urls.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/v2/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/v2/facet.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/v2/feed.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/v2/links.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/v2/metadata.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/opds/v2/unused.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/redirect.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/settings.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/serializers/versions.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/settings/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/settings/hypercorn_migrate.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/settings/servestatic.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/settings/timezone.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/signals/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/signals/os_signals.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VCheckbox-ChRKi1kj.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VCheckbox-ChRKi1kj.css.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VCheckbox-ChRKi1kj.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VCombobox-C3ha-zP2.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VCombobox-C3ha-zP2.css.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VCombobox-C3ha-zP2.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VProgressCircular-Du8ZZdoy.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VProgressCircular-Du8ZZdoy.css.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VProgressCircular-Du8ZZdoy.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VRadioGroup-C9f4tbih.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VRadioGroup-C9f4tbih.css.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/VRadioGroup-C9f4tbih.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/admin-settings-button-progress-DJAsUqRu.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/clipboard-CHKZWj7s.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/clipboard-CHKZWj7s.css.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/clipboard-CHKZWj7s.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/http-error-1LOpL9mn.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/http-error-1LOpL9mn.css.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/http-error-1LOpL9mn.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/materialdesignicons-webfont-B7mPwVP_.ttf +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/materialdesignicons-webfont-B7mPwVP_.ttf.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/materialdesignicons-webfont-B7mPwVP_.ttf.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/materialdesignicons-webfont-CSr8KVlo.eot +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/materialdesignicons-webfont-CSr8KVlo.eot.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/materialdesignicons-webfont-CSr8KVlo.eot.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/materialdesignicons-webfont-Dp5v-WZN.woff2 +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/materialdesignicons-webfont-PXm3-2wK.woff +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/pdf-doc-RMRstq1W.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/pdf-doc-RMRstq1W.css.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/pdf-doc-RMRstq1W.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/rolldown-runtime-DK3Fl9T5.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/rolldown-runtime-DK3Fl9T5.js.br +0 -0
- /codex-1.12.7/codex/static/assets/VForm-DxBt30-N.css → /codex-2.0.0/codex/static/assets/submit-footer-DxBt30-N.css +0 -0
- /codex-1.12.7/codex/static/assets/VForm-DxBt30-N.css.br → /codex-2.0.0/codex/static/assets/submit-footer-DxBt30-N.css.br +0 -0
- /codex-1.12.7/codex/static/assets/VForm-DxBt30-N.css.gz → /codex-2.0.0/codex/static/assets/submit-footer-DxBt30-N.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/tooltip-BI1qRHEp.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/tooltip-BI1qRHEp.css.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/assets/tooltip-BI1qRHEp.css.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/comic-165.webp +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/comic.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/comic.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/comic.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/folder.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/folder.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/folder.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/imprint.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/imprint.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/imprint.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/logo-32.webp +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/logo-maskable-180.webp +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/logo-maskable.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/logo-maskable.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/logo-maskable.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/logo.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/logo.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/logo.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/publisher.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/publisher.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/publisher.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/series.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/series.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/series.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/story-arc.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/story-arc.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/story-arc.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/volume.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/volume.svg.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/img/volume.svg.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/pwa/offline.html +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/pwa/offline.html.br +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/pwa/offline.html.gz +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static/robots.txt +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/.picopt_treestamps.yaml +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/comic-165.webp +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/comic.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/folder.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/imprint.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/logo-32.webp +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/logo-maskable-180.webp +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/logo-maskable.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/logo.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/publisher.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/series.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/story-arc.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/img/volume.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/pwa/offline.html +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/static_src/robots.txt +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/templates/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/templates/headers-icons.html +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/templates/index.html +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/templates/pwa/headers.html +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/templates/pwa/manifest.webmanifest +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/templates/pwa/serviceworker-register.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/templates/pwa/serviceworker.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/urls/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/urls/api/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/urls/const.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/urls/opds/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/urls/opds/authentication.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/urls/opds/binary.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/urls/pwa.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/urls/spectacular.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/util.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/version.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/admin/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/admin/age_rating_metron.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/admin/group.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/annotate/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/choices.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/const.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/filters/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/filters/search/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/filters/search/field/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/filters/search/field/column.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/filters/search/field/filter.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/filters/search/field/parse.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/browser/filters/search/fts.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/download.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/error.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/healthcheck.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/auth.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/authentication/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/binary.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/opensearch/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/settings.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/user_agent.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/v1/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/v1/entry/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/opds/v2/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/pwa.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/reader/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/views/template.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/websockets/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/websockets/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/websockets/listener.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/codex/websockets/mp_queue.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/compose.yaml +0 -0
- {codex-1.12.7 → codex-2.0.0}/docs/WINDOWS.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/docs/codex/img/logo.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/docs/requirements.txt +0 -0
- {codex-1.12.7 → codex-2.0.0}/docs/strange.jpg +0 -0
- {codex-1.12.7 → codex-2.0.0}/docs/style.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/docs/style.material.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/docs/style.mkdocs.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/docs/style.readthedocs.css +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/.gitignore +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/.npmrc +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/.prettierignore +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/.remarkignore +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/.shellcheckrc +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/Makefile +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/bin/dev-server.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/bin/fix.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/bin/kill-eslint_d.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/bin/lint.sh +0 -0
- {codex-1.12.7 → codex-2.0.0/frontend}/bin/roman.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/bin/update-deps-node.sh +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/cfg/codex-frontend.mk +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/cfg/common.mk +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/cfg/help.mk +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/cfg/node.mk +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/jsconfig.json +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/choices/browser-table-column-costs.json +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/choices/reader-choices.json +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/choices/reader-defaults.json +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/choices/reader-map.json +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/choices/search-map.json +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/comic-name.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/browser-link.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/create-update-dialog/create-update-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/create-update-dialog/duration-input.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/create-update-dialog/relation-picker.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/create-update-dialog/server-folder-picker.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/drawer/admin-settings-button-progress.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/drawer/admin-settings-drawer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/drawer/admin-settings-panel.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/drawer/status-list.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/group-chip.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/tabs/admin-table.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/tabs/delete-row-dialog.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/tabs/relation-chips.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/tabs/tabs.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/admin/use-now-timer.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/anchors.scss +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/auth/auth-form-mixin.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/banner.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/book-cover.scss +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/browser-header.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/drawer/browser-settings-drawer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/filter-warning-snackbar.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/breadcrumbs/browser-toolbar-breadcrumbs.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/search/browser-toolbar-search.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/search/search-combobox.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/search/search-help-text.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/search/search-help.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/select-many/browser-toolbar-select-many.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/top/columns-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/top/filter-by-select.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/top/order-by-select.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/top/order-reverse-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/top/search-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/top/toolbar-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/browser/toolbars/top/view-mode-toggle.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/cancel-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/clipboard.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/close-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/codex-list-item.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/confirm-footer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/empty.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/metadata/expand-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/metadata/table.scss +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/pagination-nav-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/pagination-slider.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/pagination-toolbar.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/placeholder-loading.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/book-change-activator.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/book-change-drawer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/books-window.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/change-column.scss +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/drawer/_expansion-panel-overrides.scss +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/drawer/keyboard-shortcuts-panel.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/drawer/reader-settings-controls.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/drawer/reader-settings-drawer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/drawer/reader-settings-panel.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/drawer/settings-indicator-dot.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/empty.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/pager/horizontal-pages.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/pager/page/page-error.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/pager/page/page-img.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/pager/page/page-loading.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/pager/page-change-link.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/pager/pager-vertical.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/pager/pdf-doc.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/pager/scale-for-scroll.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/reader/toolbars/nav/reader-toolbar-nav.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/scale-button.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/session-error-snackbar.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/settings/docs-footer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/settings/opds-url.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/settings/settings-drawer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/settings/version-footer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/submit-footer.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/toolbar-select.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/components/unauthorized.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/datetime.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/http-error.vue +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/main.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/platform.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/plugins/drag-scroll.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/stores/store.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/util.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/src/vuetify-items.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/tests/unit/browser-table-cell.test.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/tests/unit/browser-table-column-picker.test.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/frontend/vite.config.js +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/comic.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/folder.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/imprint.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/logo-maskable.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/logo.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/publisher.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/series.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/story-arc.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/img/volume.svg +0 -0
- {codex-1.12.7 → codex-2.0.0}/mkdocs.yml +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/README.md +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/files/comicbox-2-example.cbz +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/files/comicbox-2-update.cbz +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/files/comicbox.example.yaml +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/files/comicbox.update.yaml +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/importer/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/nginx-local-codex.conf +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/perf/__init__.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/test_age_rating_acl.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/test_asgi.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/test_failed_login_log.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/test_poller_stat_refresh.py +0 -0
- {codex-1.12.7 → codex-2.0.0}/tests/test_search_fts.py +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
__pycache__
|
|
2
|
+
!dist
|
|
3
|
+
!docker/debian.sources
|
|
4
|
+
.*cache
|
|
5
|
+
.circleci
|
|
6
|
+
.claude
|
|
7
|
+
.coverage*
|
|
8
|
+
.docker-token
|
|
9
|
+
.DS_Store
|
|
10
|
+
.env*
|
|
11
|
+
.eslintcache
|
|
12
|
+
.ghrc-token
|
|
13
|
+
.git
|
|
14
|
+
.mypy_cache
|
|
15
|
+
.picopt_timestamp
|
|
16
|
+
.picopt_treestamps.yaml
|
|
17
|
+
.pypi-token
|
|
18
|
+
.pytest_cache
|
|
19
|
+
.ropeproject
|
|
20
|
+
.ruff_cache
|
|
21
|
+
.venv*
|
|
22
|
+
*.egg-info
|
|
23
|
+
*.py[co]
|
|
24
|
+
*~
|
|
25
|
+
*Dockerfile
|
|
26
|
+
benchmark
|
|
27
|
+
cache
|
|
28
|
+
codex/static
|
|
29
|
+
codex/static_build
|
|
30
|
+
comics
|
|
31
|
+
config
|
|
32
|
+
dev*
|
|
33
|
+
docker-compose*
|
|
34
|
+
docker*
|
|
35
|
+
MANIFEST
|
|
36
|
+
monkeytype.sqlite3
|
|
37
|
+
NEWS
|
|
38
|
+
node_modules
|
|
39
|
+
test-results
|
|
40
|
+
TODO.md
|
|
41
|
+
update-builder-requirement.sh
|
|
42
|
+
version.sh
|