indifferentketchup 9602801f5e chore: drop dead code, sync stale comments
- delete api/categorize.py: orphaned module, never imported. The live
  pzmm-types→category mapping is _types_to_category in mlos_sort.py.
- delete api/adapters.py:_autopick_ambiguous: 5-line wrapper around
  _apply_branch_rules with zero callers in current source.
- delete docs/backlog/polling-path-pz-build.md: described work that
  shipped — init/06_sort_jobs_pz_build.sql plus pz_build plumbing in
  jobs.create_job, app._route_to_job, and app._build_result_for_job.
- sync MAP_LINE convention comment in api/mlos_sort.py with the worker
  copy (Muldraugh, KY is appended at the end, not prepended at the
  front — see adapters.build_response:577).
- update init/04_required_wsids.sql header to reflect the authed-API
  fetch path (HTML scrape was retired in 3a34b71).
- soften the now-stale '~14 rows' count in app._strip_path_prefix's
  docstring.
2026-05-07 17:58:57 +00:00
2026-05-06 05:10:19 +00:00

sortof

Project Zomboid mod load-order sorter for dedicated servers. Paste workshop IDs or a collection URL; get back the WorkshopItems=, Mods=, and Map= lines for servertest.ini.

Stack

  • FastAPI + asyncpg, Python 3.12.
  • Postgres 16 (Docker).
  • DepotDownloader for fetching mod.info / map.info from each cached workshop item.
  • Vanilla JSX + index.html, no build step (Babel-standalone in-browser).

Setup

docker compose up -d sortof_db

python3.12 -m venv api/.venv
api/.venv/bin/pip install -r api/requirements.txt

python3.12 -m venv worker/.venv
worker/.venv/bin/pip install -r worker/requirements.txt

.env next to docker-compose.yml:

POSTGRES_USER=sortof
POSTGRES_PASSWORD=<random>
POSTGRES_DB=sortof
SORTOF_CORS_ORIGINS=http://127.0.0.1:8801

Set DD_PATH to the DepotDownloader binary, then:

api/.venv/bin/uvicorn app:app --host 127.0.0.1 --port 8801
worker/.venv/bin/python drain.py

Layout

api/      FastAPI service, sort engine, response adapters
worker/   drain worker (DepotDownloader + mod.info parser)
frontend/ index.html + JSX
init/     Postgres bootstrap migrations (run on first boot)
data/     checked-in JSON config (e.g., pz_versions.json)
docs/     specs, plans
Description
No description provided
Readme 1.4 MiB
Languages
Python 58.1%
JavaScript 28%
HTML 12.4%
PLpgSQL 1.5%