Skip to content

Commit d8f1a9a

Browse files
authored
v1.9.21 (#537)
* update deps * fix opds v1 pagination, bump version and news * add opds v2 alternate link into opds v1 * update deps, ignore ty thing * accept readium.progression type for progression parser * fix bookmark update crash * fix serializing opds v2 progression postion field * bump version and news * update deps * reduce opds v1 links complexity * lint README. talk about OIDC * trim spaces from opds v1 index template * fix schema generation crash * fix full text search barfing on sigle quoted term * User django lookups where possible for field search. Keep complex like search * advance djangotypes version' * debug log admin task submissions * make shutdown message for scribed a proper tuple * allow order by in GroupConcat aggregate * refactor use of GroupConcat in search sync * Bearer token only * update deps. vue router 5 * update bump version * bump news * bump news * use raw string for regex * dynamically generate TextChoices from enums, maps and strings * fix drf-spectacular warnings * opds order by filename * do basic and token auth before session auth for opds to present 401 and auth json * update deps, format * update deps * fix universe fts population * update deps * Centralize user_agent_name property in OPDSFeed base view. Type a lot. * fix href validation is num pages is 0 * allow subtitles in links * bump version and news * only include mtime in opds v2 feed if it exists * fix opds v2 start page feed modified date * update deps * remove cruft * update deps * refactor opds utility functions into different files * add NoContent API Exception. add all opds query params to exceptions * use regular exception handler for opds v2 progress endpoint * consolidate param copying in custom redirect view * bump version and news * bump comicbox * Adjust OPDS v2 progression position field to be 1 based, while Codex page is 0 based. * update deps * fix opds v2 progression crash * fix progress annotation math * fix metadata progress header math * fix broken reader close button * update deps * format * finally standardize view layout for opensearch and opds authentication * opds exception handling optimiziations * cast TextChoices metaclass into TextChoices * update deps * lint, mostly inline if elses into ors * update deps * update deps * no v-if needed in auth-token dialog, handled by parent * fix extra slot tag in clipboard. fix required subtitle in clipboard component * change some whites to textPrimary that aren't hovers * format makefile * format Dockerfiles * use numeric inputs for Poll Every * remove seconds from pollevery * update deps * lint dockerfiles with dockerfmt * more explict djangoDuration to integer fields back and forth * update deps * disable unsafe regex warning * remove errant console.log * Squashed commit of the following: commit 813a0229fc3f0564fe3c7791e306be2189fe2632 Author: AJ Slater <aj@slater.net> Date: Tue Feb 10 13:40:08 2026 -0800 add eslint plugin html commit 3a7171584da74e95c4ec3e28aa08d83cb2ca97d0 Author: AJ Slater <aj@slater.net> Date: Tue Feb 10 02:41:58 2026 -0800 eslint Math plugin commit 9814461b1a7d0f09b8eed4d73aa3a3a064fe4313 Author: AJ Slater <aj@slater.net> Date: Tue Feb 10 01:24:11 2026 -0800 alphabetize plugins commit 359983ed0fbcafa78f03a2f1355b9b2ce364b309 Author: AJ Slater <aj@slater.net> Date: Tue Feb 10 01:16:37 2026 -0800 clean up unecessacy eslint plugin declarations commit a4ca60fb8cd253b66fb0b9bb10e2660031fdebf8 Author: AJ Slater <aj@slater.net> Date: Tue Feb 10 01:10:15 2026 -0800 add de-morgan eslint plugin * add mbake * update deps * update deps * update deps * advance vuetify eslint plugin * Squashed commit of the following: commit d5f5f22c1339014b2c715e8671320eb6f9dc8883 Author: AJ Slater <aj@slater.net> Date: Fri Feb 13 21:16:12 2026 -0800 type infer types. Tasks all now inherit from LibraryTask commit fa09de3a15c72f516c47fe70d2e2cc64daef1ebc Author: AJ Slater <aj@slater.net> Date: Fri Feb 13 18:11:05 2026 -0800 update deps * update deps * update deps * Squashed commit of the following: commit 3ee9d5a7e4634be1bbbfaef658b54754b2f2673a Author: AJ Slater <aj@slater.net> Date: Sun Feb 15 14:26:41 2026 -0800 update devenv commit 09a87be542c7b949316d12e9f0ee27a9696af1ad Author: AJ Slater <aj@slater.net> Date: Sun Feb 15 12:54:44 2026 -0800 fix test function names to not start with test commit e9706dc71d64b7aa28b385a613d0c7dfbe7cfd80 Author: AJ Slater <aj@slater.net> Date: Sun Feb 15 12:54:21 2026 -0800 update devenv commit d89dc988706ec994a828b94ed7a2b2627fc89311 Author: AJ Slater <aj@slater.net> Date: Sun Feb 15 12:46:26 2026 -0800 switch to devenv * update devenv * update devenv * fix import to not bridge files * update deps * update deps * update comicbox. work with to_pixmap change to pdf_format * update deps and devenv * minimum vuetify 3.12 * use img-class prop on covers * Fix search indexing the universes tag. * add an item to news' * fix version-codex-dist-builder script for new fs layout * fix build for devenv * use build group for linting * add pathspec to lint group for roman script * run roman.py with uv * update devenv. use uv to run mbake * fix django makefile for codex build * fix ci build. make collectstatic and django-check in backend-test * bump news and version * remove non news item * update deven prettierignore * update devenv and deps * format * Vuetify 4 (#533) * vuetify 4. few bugs * update deps * update #item templates for vuetify 4 * use plus icon for admin create buttons * format * capitalize close book button * no if show needed in auth-token dialog, handled by parent. * fix clipboard bugs * fix h3 & h4 spacing issues with vuetify 4 * fix admin h3 h4 spacing for vuetify 4 * fix sidebar footer not falling to bottom * fix link colors for vuetify 4 * change some whites to textPrimary that aren't hovers * format makefile * format Dockerfiles * replace highlight-table with vuetify v-table striped * use numeric inputs for Poll Every * remove seconds from pollevery * move settingsSubHeader css into settings-drawer.vue * format * advance vuetify beta * fix vuetify dep * tweak font title sizes * modernize book cover v-img * remove cruft * update deps * update devenv * update news and version and deps * update deps * update devenv & deps * fix comic name when volume_to is null * Fix OPDS v2 folder as collection naming. * Provide volume name in comic title for OPDS v2 as there's no volume view available. * update comicbox version. bump news * credits now link to filtered views * update deps * credits and subjects opdsv2 filtered links * add other filters to subtitle kind of * show selected filters alway as active, on submenu with check icon. and move none item computation into api vuetify-items * update deps * finally resolve filter choices arguments vuetify null code issues. * reduce opds v2 complexity * reduce complecity of librarian and janitor task delagation * return (None) to None * fix isinstance bug with libarry task delegation refactor * fix filtering on credits when clicking on metadata chips * convert frontend to devenv * fix manifest crash * fix makefiles * bump news and version
1 parent faec18a commit d8f1a9a

26 files changed

+966
-192
lines changed

NEWS.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ width: 128px;
66
border-radius: 128px;
77
" />
88

9+
## v1.9.21
10+
11+
- Fixes
12+
- Fix OPDS v2 manifest crash
13+
914
## v1.9.20
1015

1116
- Features

codex/views/opds/v2/manifest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ def _publication_metadata(self, obj, zero_pad) -> dict:
203203
md = super()._publication_metadata(obj, zero_pad)
204204

205205
# Direct attribute to key mappings
206-
for md_key, attr in _PUBLICATION_FIELD_MAP:
206+
for md_key, attr in _PUBLICATION_FIELD_MAP.items():
207207
if value := getattr(obj, attr, None):
208208
md[md_key] = value
209209

frontend/.devenv.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
source: ../../devenv
2+
features:
3+
- common
4+
# - docs
5+
# - docker
6+
# - ci
7+
# - python
8+
# - frontend
9+
# - django

frontend/.gitignore

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
__pycache__/
2+
__pypackages__/
3+
__snapshots__
4+
.*cache
5+
.coverage*
6+
.dmypy.json
7+
.docker-token
8+
.DS_Store
9+
.eggs/
10+
.env
11+
.env-*
12+
.eslintcache
13+
.hypothesis/
14+
.installed.cfg
15+
.ipynb_checkpoints
16+
.mypy_cache/
17+
.nox/
18+
.npm
19+
.pypi-token
20+
.pypirc
21+
.pyre/
22+
.pytest_cache/
23+
.Python
24+
.python-version
25+
.ropeproject
26+
.ruff_cache/
27+
.scrapy
28+
.spyderproject
29+
.spyproject
30+
.tox/
31+
.venv*
32+
.webassets-cache
33+
*.cover
34+
*.egg
35+
*.egg-info/
36+
*.log
37+
*.manifest
38+
*.mo
39+
*.pot
40+
*.py,cover
41+
*.py[cod]
42+
*.sage.py
43+
*.so
44+
*.spec
45+
*~
46+
*$py.class
47+
build
48+
build/
49+
celerybeat-schedule
50+
celerybeat.pid
51+
coverage.xml
52+
develop-eggs/
53+
dist
54+
dist/
55+
dmypy.json
56+
docs/_build/
57+
downloads/
58+
eggs/
59+
env.bak/
60+
env/
61+
ENV/
62+
htmlcov/
63+
instance/
64+
ipython_config.py
65+
jspm_packages/
66+
lib/
67+
lib64/
68+
local_settings.py
69+
MANIFEST
70+
monkeytype.sqlite3
71+
node_modules
72+
node_modules/
73+
nosetests.xml
74+
parts/
75+
pip-delete-this-directory.txt
76+
pip-log.txt
77+
pip-wheel-metadata/
78+
profile_default/
79+
sdist/
80+
share/python-wheels/
81+
target/
82+
test-results
83+
TODO.md
84+
var/
85+
venv.bak/
86+
venv/
87+
wheels/

frontend/.prettierignore

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1-
coverage
1+
__pycache__
2+
.*cache/
3+
.circleci
4+
.git
5+
.venv
6+
*Dockerfile
27
components.d.ts
8+
coverage
39
dist
4-
public
510
node_modules
11+
package-lock.json
12+
public
613
src/choices
14+
test-results
15+
tests/**/*.json
16+
tests/**/*.xml
17+
tests/**/*.yaml
18+
tests/**/*.yml
19+
uv.lock
720
webpack-stats.json

frontend/.remarkignore

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
__pycache__/
2+
__pypackages__/
3+
__snapshots__
4+
.*cache
5+
.coverage*
6+
.dmypy.json
7+
.docker-token
8+
.DS_Store
9+
.eggs/
10+
.env
11+
.env-*
12+
.eslintcache
13+
.hypothesis/
14+
.installed.cfg
15+
.ipynb_checkpoints
16+
.mypy_cache/
17+
.nox/
18+
.npm
19+
.pypi-token
20+
.pypirc
21+
.pyre/
22+
.pytest_cache/
23+
.Python
24+
.python-version
25+
.ropeproject
26+
.ruff_cache/
27+
.scrapy
28+
.spyderproject
29+
.spyproject
30+
.tox/
31+
.venv*
32+
.webassets-cache
33+
*.cover
34+
*.egg
35+
*.egg-info/
36+
*.log
37+
*.manifest
38+
*.mo
39+
*.pot
40+
*.py,cover
41+
*.py[cod]
42+
*.sage.py
43+
*.so
44+
*.spec
45+
*~
46+
*$py.class
47+
build
48+
build/
49+
celerybeat-schedule
50+
celerybeat.pid
51+
coverage.xml
52+
develop-eggs/
53+
dist
54+
dist/
55+
dmypy.json
56+
docs/_build/
57+
downloads/
58+
eggs/
59+
env.bak/
60+
env/
61+
ENV/
62+
htmlcov/
63+
instance/
64+
ipython_config.py
65+
jspm_packages/
66+
lib/
67+
lib64/
68+
local_settings.py
69+
MANIFEST
70+
monkeytype.sqlite3
71+
node_modules
72+
node_modules/
73+
nosetests.xml
74+
parts/
75+
pip-delete-this-directory.txt
76+
pip-log.txt
77+
pip-wheel-metadata/
78+
profile_default/
79+
sdist/
80+
share/python-wheels/
81+
target/
82+
test-results
83+
TODO.md
84+
var/
85+
venv.bak/
86+
venv/
87+
wheels/

frontend/.shellcheckrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
external-sources=true

frontend/Makefile

Lines changed: 11 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,14 @@
11
SHELL := /usr/bin/env bash
2-
include ../cfg/help.mk
3-
4-
.PHONY: clean
5-
## Remove static_build contents
6-
## @category build
7-
clean:
8-
rm -rf ../codex/static_build/*
9-
10-
.PHONY: install
11-
## Install npm
12-
## @category Install
13-
install:
14-
npm install
15-
16-
.PHONY: update
17-
## Update npm
18-
## @category Update
19-
update:
20-
../bin/update-deps-npm.sh
21-
22-
.PHONY: dev-server
23-
## Run Dev Frontend Server
24-
## @category Run
25-
dev-server:
26-
./bin/dev-server.sh
27-
28-
.PHONY: fix
29-
## Fix only frontend lint errors
30-
## @category Lint
31-
fix:
32-
./bin/fix-lint.sh
33-
34-
.PHONY: lint
35-
## Lint front and back end
36-
## @category Lint
37-
lint:
38-
./bin/lint.sh
39-
40-
.PHONY: test
41-
## Run All Tests
42-
## @category Test
43-
test:
44-
./bin/test.sh
45-
46-
.PHONY: build
47-
## Build package
48-
## @category build
49-
build: clean
50-
npm run build
2+
DEVENV_SRC ?= ../../devenv
3+
4+
include cfg/codex-frontend.mk
5+
# include cfg/django.mk
6+
# include cfg/frontend.mk
7+
# include cfg/python.mk
8+
# include cfg/ci.mk
9+
# include cfg/docker.mk
10+
# include cfg/docs.mk
11+
include cfg/common.mk
12+
include cfg/help.mk
5113

5214
.PHONY: all

frontend/bin/fix-lint.sh

Lines changed: 0 additions & 5 deletions
This file was deleted.

frontend/bin/fix.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/usr/bin/env bash
2+
# Fix common linting errors
3+
set -euxo pipefail
4+
5+
#####################
6+
###### Makefile #####
7+
#####################
8+
uv run mbake format Makefile cfg/*.mk
9+
10+
################
11+
# Ignore files #
12+
################
13+
bin/sort-ignore.sh
14+
15+
############################################
16+
##### Javascript, JSON, Markdown, YAML #####
17+
############################################
18+
npm run fix
19+
20+
###################
21+
###### Shell ######
22+
###################
23+
shellharden --replace ./**/*.sh

0 commit comments

Comments
 (0)