Roland
dc531a1f42
Fixing flaky e2e tests.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-21 17:01:50 -06:00
Roland
282b0f63e8
Adding links next to video captions to allow scrubbing of video by the captions, adding filter to make finding quick.
2026-03-21 16:50:27 -06:00
Roland
2bae99c6ef
Updating cypress tests for new file group routes.
2026-03-21 16:26:08 -06:00
Roland
2dd834f2e9
Importing new download cache config on startup.
2026-03-21 11:47:49 -06:00
Roland
1c4f57226f
Adding skip_viewed to archive and video fetching endpoints.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-20 20:17:27 -06:00
Roland
00cfdc14c6
Trying to get existing channel using more variations of Youtube URLs.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-20 17:26:51 -06:00
Roland
14cfc87bce
Fixing bug where multiple words could not be used in docs search.
2026-03-20 16:26:04 -06:00
Roland
1c79c1c495
Refactoring docs to match new url scheme like videos and archives.
2026-03-20 15:53:21 -06:00
Roland
66a891c759
Refactoring videos and archives UI paths for consistent scheme.
2026-03-20 15:38:32 -06:00
Roland
aefc7b1def
Add Docs module for searching and organizing PDFs and EPUBs
...
Create a new Docs module that consolidates PDF and eBook handling into a
unified system with subjects and authors support. This replaces the
separate PDF/eBook modelers with a single Doc model backed by an
alembic migration (rename ebook to doc).
Key changes:
- New modules/docs package with models, API, extractors, and lib
- Subject and author metadata extraction with case-insensitive
normalization for cleaner PDF metadata
- Frontend Docs pages with AuthorsPage, SubjectsPage using
CollectionTable, and doc card deletion
- Global search integration for subjects and authors
- Generic collection item count support
- Frontend file card metadata adjusted to match collection sort
- Bump yt-dlp version
2026-03-20 14:17:06 -06:00
Roland
4a21499bdd
Include archive details in file search.
2026-03-20 14:16:56 -06:00
Roland
4918ea5ef6
Creating Zim search endpoint that searches all auto-search zim files.
2026-03-20 14:16:56 -06:00
Roland
e6aaab1016
Creating video duration cache to avoid requesting video duration between restarts.
2026-03-20 13:02:46 -06:00
Roland
3efdee017e
Bumping yt-dlp versions, using >= so the newest is always used.
2026-03-20 13:01:40 -06:00
Roland
ebcb7b0e5d
Fixing bug where refreshing a video would download a copy, instead of just the metadata.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-19 15:02:32 -06:00
Roland
1109dd3933
Restarting Controller as quickly as possible during upgrade to make upgrade monitoring smoother.
2026-03-19 15:02:12 -06:00
Roland
97006f7f12
Showing preview of zip file contents, allowing user to download individual files without full extraction.
CodeQL / Analyze (push) Has been cancelled
Controller Tests / controller-tests (push) Has been cancelled
Jest Tests / jest-tests (push) Has been cancelled
2026-03-15 12:58:40 -06:00
Roland
d4ef9cf12f
Validating git commit against my gpg signing key during upgrade. Upgrade will not take place unless the git commit is correctly signed.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-14 16:39:04 -06:00
Roland
795d5340c7
Bumping version.
2026-03-14 16:28:34 -06:00
Roland
07f601e77f
Add controller onboarding flow for primary drive setup
...
Introduce an onboarding system in the Controller that guides users
through selecting and mounting their primary media drive. This is
the fallback UI flow used when the main React app is unavailable.
Key changes:
- Add onboarding API endpoints and schemas (controller/api/onboarding.py)
- Add onboarding logic to detect drives, handle already-mounted drives
(needed for RPi which auto-mounts), and save primary drive selection
to the controller config when no mounts are configured
- Extend the Controller's index.html template with the onboarding UI
- Skip root cert creation until onboarding is complete
- Update first_startup.sh to support the onboarding/repair flow
- Add comprehensive tests for onboarding logic and API
2026-03-14 16:08:40 -06:00
Roland
f146b332a8
When opening config preview modal, displaying the contents instead of using preview modal which tries to download it.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-14 13:29:03 -06:00
Roland
8455955e69
Fixing bug where similarly named files could not be deleted.
2026-03-14 13:18:07 -06:00
Roland
79a210bb6c
Bumping yt-dlp version.
2026-03-14 12:22:57 -06:00
Roland
ae7ab1981f
Adding toggle to prevent downloads from starting when cookies are locked.
2026-03-14 12:08:23 -06:00
Roland
9b3a03012e
Controller logs when it takes actions.
2026-03-14 10:03:11 -06:00
Roland
ccc6cf78d3
Setting system timezone using Controller.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-13 15:56:21 -06:00
Roland
b1db71f04a
Handling when skip_urls is a None. Logging a warning (and ignoring) when duplicate json files are in a Video FileGroup.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-13 15:27:43 -06:00
Roland
c2c5d237d7
Adding timezone to WROLPi config to schedule download window.
2026-03-13 15:03:13 -06:00
Roland
c2bab03f42
Checking local time for download window.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-13 07:08:35 -06:00
Roland
35994bd363
Adding download window which can prevent downloads from running at unwanted times.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-12 20:36:57 -06:00
Roland
4579562be5
Displaying download progress (speed, eta) for file and video downloads.
2026-03-12 19:31:35 -06:00
Roland
fa97b25831
Adding HelpHeader to display a modal with the relevant Help document.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-11 15:47:01 -06:00
Roland
f94fc0fc5a
Handling when CDN provides FileDownloader with a UUID instead of the file name to download.
2026-03-11 15:04:02 -06:00
Roland
2e1cb4bfaf
Fixing bug in file refreshing where old file locations were not removed from the DB because they shared a their original stem.
2026-03-11 15:03:30 -06:00
Roland
1e37f0d4dd
Skipping Caddy tests on CICD.
CodeQL / Analyze (push) Has been cancelled
Controller Tests / controller-tests (push) Has been cancelled
Jest Tests / jest-tests (push) Has been cancelled
2026-03-10 20:30:46 -06:00
Roland
b8eaac8ec1
Using slower loader for old configs.
2026-03-10 20:30:46 -06:00
Roland
da6e62ee45
Backup configs can be restored in the UI. User can choose between Merge or Overwrite, the UI displays a comparison. Configs are compared when user opens the restore modal, configs which won't cause changes are marked.
2026-03-10 20:30:46 -06:00
Roland
1cf402821c
Renaming VTT files on video download if there are extra characters in the name.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-09 15:00:24 -06:00
Roland
ef32e8b42d
Checking readiness of main app in Controller instead of javascript requests, which break with CORS.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-08 16:05:56 -06:00
Roland
8c294dad39
Downloading only the first video when the VideoDownloader gets a playlist by accident.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-08 11:55:59 -06:00
Roland
b2185ad7c3
Failing all downloads of a domain if cookies errors are received.
2026-03-08 11:08:08 -06:00
Roland
da8a9bb923
Caddy must serve files inline on /media and download on /download.
2026-03-08 09:54:00 -06:00
Roland
19a0e7e1c5
Diplaying video poster on lock screen.
2026-03-08 09:22:50 -06:00
Roland
c89b16f623
Handling controller redirects in docker/non-docker and http/https situations.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-07 19:40:35 -07:00
Roland
8261df5bef
Redirecting to Controller when main react app is down.
2026-03-07 19:17:38 -07:00
Roland
08982647ac
Bumping version for Caddy changes.
2026-03-07 18:50:20 -07:00
Roland
fbb71e012d
Replace nginx with Caddy for TLS termination and reverse proxying.
...
- Replace nginx with Caddy as the web server for both Docker and native
(RPi/Debian) deployments. Caddy handles HTTPS termination, reverse
proxying to all services (API, React app, Controller, Kiwix, Help, Map),
and serves the media/download file browsers.
- Generate a Root CA and signed leaf certificates for HTTPS. The Root CA
uses Name Constraints to restrict signing to local addresses only
(.local, localhost, and RFC 1918 private IP ranges), mitigating MITM
risk if the CA key is compromised.
- Add an HTTP landing page that guides users through one-time CA
certificate installation on iOS, Android, macOS, Windows, Linux, and
Firefox, with auto-redirect when the cert is already trusted.
- Add trailing-slash redirects for /controller, /docs, /media, and
/download so bare paths don't fall through to the React catch-all.
- Add a Root CA download link on the Settings page under Configs.
- Update help.sh diagnostics for IPv6 listener detection and HTTP/2
status codes.
- Remove all nginx config files and the https_proxy Docker container.
- Bump wrolpi-help submodule with certificate documentation.
2026-03-07 18:48:44 -07:00
Roland
dd270b37dc
Not clearing settings when frontend fails to fetch, this caused the navbar color and such to be forgotten.
2026-03-07 16:24:20 -07:00
Roland
f59a4198d9
Renaming all co-occurring to overlapping, easier to spell. Filtering by only overlapping tags when searching by a tag, this is because any non-overlapping will not produce results anyways.
2026-03-07 15:55:04 -07:00
Roland
3d74b4bcfc
Always fetching frequent tags. Not showing the most recent tags if there are no results. Handling quoted URL for tag names.
2026-03-07 12:25:41 -07:00