Releases: markbeep/vvzapi
Releases · markbeep/vvzapi
v1.11.0
1.11.0 (2026-02-27)
Features
- scraper: add "Last updated" indicator on unit page (d09b996)
- scraper: add logic for handling flagged (outdated) pages to force targeted refreshes of scraped and cached pages (d09b996)
- search: add llms.txt to help llms search for courses (8344c83)
Bug Fixes
- search: fix 'cannonical' typo to 'canonical' (ff7cf35)
- search: retain query when directly being redirected to a single unit after searching (2e16bd4)
Miscellaneous Chores
- scraper: deprecate unit changes and stop tracking changes in preparation for removing it completely (d09b996)
Code Refactoring
- scraper: refactor rescrape functionality to properly refresh a few (unit) details every now and then (d09b996)
- scraper: use sqlite for html cache instead of default scrapy file-based httpcache (d09b996)
Continuous Integration
v1.10.3
v1.10.2
1.10.2 (2026-02-21)
Bug Fixes
- search: fix search query not transferring over when visiting a unit (a568734)
Performance Improvements
- search: add fixi.js for lightweight DOM replacement when changing pages (b960a1d)
- search: aggressively preload next page and search queries (b960a1d)
- search: improve search query performance by splitting it into two concurrent queries (aaa40e0)
Miscellaneous Chores
v1.10.1
1.10.1 (2026-02-20)
Features
- api: add OpenTelemetry for more detailed traces (ab5d27e)
Bug Fixes
Performance Improvements
- api: replace database acceses with async connections (99d59bc)
- search: add async db access, resulting in over 4x req/s under heavy load (05eeee4)
- search: add db indices to improve performance on title/credits queries (9d404d6)
- search: add materialized tables for section paths and departments (05eeee4)
Miscellaneous Chores
- search: simplify plausible condition for analytics (c39b422)
Tests
- search: benchmark search queries with k6s (2535276)
v1.10.0
1.10.0 (2026-02-11)
Features
- scraper: scrape course review ratings (16a66bf)
- search: add coursereview operator to query by average rating (5151c8e)
- search: allow querying by lecturer by clicking on name on unit page (1ea359b)
Bug Fixes
- search: escape title/description in header (926800a)
Documentation
Miscellaneous Chores
v1.9.0
1.9.0 (2026-02-07)
Features
- search: add compact mode for viewing search results (b87c342)
- search: prefetch script on mousedown for anchor tags (a2112d5)
Bug Fixes
- scraper: allow for lecturers to not have a title (119fbba)
- search: allow searches to be scraped according to robots.txt (619df0d)
- search: fix tabbing index to skip stacked results in search page (29d1bc2)
Miscellaneous Chores
- search: adjust the title/description metadata tags to more updated keywords (915c510)
- search: make AND/OR operators lower-case in query information (29d1bc2)
- search: update favicon to blue lines (a4d4533)
Code Refactoring
- search: switch to jinjax for templating and fix a few typing (38395ff)
Continuous Integration
- fix missing ruff formatter (20194d3)
v1.8.0
1.8.0 (2026-02-05)
Features
- scraper: add lecturer title and department (30b591b)
- search: add animated search placeholders on root page (a765f14)
Bug Fixes
- fix ints being read out as strings from json array (ddfcacb)
- search: add cannonical link to unit pages leading to newest page (9491f1a)
Performance Improvements
- search: improve page load metrics (e5f1db7)
Miscellaneous Chores
- add example commands for how to solely scrape lecturers (1b6242a)
- install arm tools in devcontainer (30b591b)
Continuous Integration
- enable type/tests to run on pull requests (99fde66)
v1.7.0
1.7.0 (2026-02-01)
Features
- search: add notice when viewing out-of-date units (c7cfddc)
- search: match department on short acronym/name (e2718d2)
Bug Fixes
- search: add cache busting to site CSS to circumvent cloudflare (eb6df48)
- search: add reference to favicon in header (d2ff3bb)
- search: fix robots.txt not being returned (6c5fcf8)
- vacuum db into separate file to prevent file corruption (9d1fc6e)
Dependencies
Miscellaneous Chores
- add GPLv3 license (ff6c5b1)
- add jj to devcontainer (cc9483e)
- add justfile for local development (625f501)
- api: send more info to plausible (d810e07)
- set type checking mode to more strict "all" (757bf6e)
- test mise for local development (652525f)
Build System
- reduce scraper docker image size by removing uv from final step (b688a53)
v1.6.0
1.6.0 (2026-01-09)
Features
- api: data dump endpoint to download database. Closes #27 (cb62114)
- search: add link anchors to guide page (efa91cc)
- search: make external links more clear with an icon (42bc492)
- search: show last scraped_at time on unit details page (799c6f4)
Bug Fixes
- search: fix offered in typo (a38350d)
- search: fix order of operator parsing to correctly match >= and <= (4637d95)
- search: fix wrongly overflowing text about filter negation on guide page (41db41e)
Reverts
- "feat(search): show last scraped_at time on unit details page" (d59c37c)
Documentation
- update readme with model name explanation and details on how to contribute (cb62114)
Continuous Integration
- increase basedpyright typing from 'recommended' to 'strict' (af123b0)
v1.5.0
1.5.0 (2026-01-08)
Features
- search: add query time to results (c9378cf)
- search: OR operator and parentheses for more complex queries (45227ea)
- search: remove awkward '!:' operator and instead use prefixed minus operator for negation (3c76208)
Bug Fixes
- api: fix wrong path in guide for first example (80d6452)
- search: fix course numbers not being matched by regex (3c76208)
- search: fix query from becoming infinitely big and fix invalid offered in results page filters (231d929)
Miscellaneous Chores
- add back warnings for basedpyright (05906df)