Sort Unsorted's destination picker still listed a course whose real video content sat two levels deep inside its own "display name" folder (a common release-bundle extraction shape), alongside empty leftover folders from the extraction that neither of the two earlier exclusion checks could safely rule out - an empty folder is indistinguishable from a legitimate freshly-created category. Detect this case by comparing token similarity between a folder's own name and its single course child's name: high overlap means they're naming the same thing (a redundant wrapper), not a deliberate category holding one course. Also bake the build's git commit + build time into the Docker image (git rev-parse at build time, .git deleted again immediately after) so a push's effect on the running container is actually visible - shown on the Settings page and in /health - instead of having to guess whether a webhook rebuild picked up the latest commit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
42 lines
1002 B
Plaintext
42 lines
1002 B
Plaintext
# Version control
|
|
# .git is intentionally NOT excluded - the Dockerfile reads it at build
|
|
# time (git rev-parse) to bake the running commit into the image as
|
|
# /app/BUILD_VERSION, then deletes .git itself in that same build step so
|
|
# it never ends up in the final image.
|
|
.gitignore
|
|
.github
|
|
|
|
# Ignore Docker-related files (not needed in the image)
|
|
Dockerfile
|
|
.dockerignore
|
|
|
|
# Ignore cache and temporary files. Logs for future use.
|
|
**/__pycache__/
|
|
*.pyc
|
|
*.pyo
|
|
*.pyd
|
|
*.log
|
|
|
|
# Ignore virtual environments (if using venv)
|
|
**/python_env/
|
|
**/.venv/
|
|
**/venv/
|
|
**/env/
|
|
**/ENV/
|
|
|
|
# OfflineU specific
|
|
.offlineu_progress.json
|
|
data/
|
|
courses/
|
|
|
|
# Auto-generated templates (created at runtime if missing)
|
|
# Leave commented if you modify templates
|
|
# templates/
|
|
|
|
# Harmless, but reduce image size. In the future, it may make more sense to put
|
|
# everything needed by the image in e.g., /app and modify the Dockerfile to copy from
|
|
# /app as opposed to blacklisting files in the repo one-by-one
|
|
LICENSE
|
|
README.md
|
|
images/
|