Roland
bf5b787fb3
Unifying Files tab appearance for model pages.
CodeQL / Analyze (push) Has been cancelled
Controller Tests / controller-tests (push) Has been cancelled
Jest Tests / jest-tests (push) Has been cancelled
2026-03-28 14:19:09 -06:00
Roland
2943b2a9c8
Adding buttons to DocPage so that user can select which version of the same document to view, for example a PDF or EPUB of the same document.
2026-03-28 13:52:01 -06:00
Roland
53f4e29b64
Updating controller hotspot and bluetooth toggle commands with real paths for RPi.
2026-03-28 10:35:07 -06:00
Roland
1c55745884
Adding bluetooth radio toggle to Controller. Writing controller.yaml to media drive on startup, if it doesn't exist.
2026-03-28 10:09:58 -06:00
Roland
9e80683b9a
Adding model dimensions to STL preview.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-27 17:59:58 -06:00
Roland
81f1456fed
Adding fullscreen keyboard shortcut.
2026-03-27 17:59:36 -06:00
Roland
c67e3ff490
Fixing bug where searching zims did not show results.
2026-03-22 13:30:33 -06:00
Roland
755b133fa4
Fixing bug where configs could be overwritten with empty configs on first refresh. Fixing bug where configs were displayed as JSON in admin settings.
2026-03-22 12:56:37 -06:00
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
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
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
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
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
ae7ab1981f
Adding toggle to prevent downloads from starting when cookies are locked.
2026-03-14 12:08:23 -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
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
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
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
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
Roland
1913755db5
Adding tags filter input on tags selector, adding frequently used tags to suggest tags that are used together.
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 10:47:18 -07:00
Roland
b73685c6f4
Removing duplicate unlock modal.
2026-03-06 15:15:36 -07:00
Roland
20ae3a9963
Grouping hotspot settings in a segment.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-03-05 19:00:36 -07:00
Roland
36d5401ebd
Reducing margin on load statistics so that they show on one line on mobile.
2026-03-05 19:00:20 -07:00
Roland
0ffbc05e91
Unifying video download settings so that global/channel/rss/video
...
download settings have inheritance. Allowing more granular control of
potentially failed downloads.
2026-03-05 17:40:17 -07:00
dependabot[bot]
71380e778b
Bump minimatch in /app
...
Bumps and [minimatch](https://github.com/isaacs/minimatch ). These dependencies needed to be updated together.
Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5 )
Updates `minimatch` from 5.1.6 to 5.1.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5 )
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 3.1.5
dependency-type: indirect
- dependency-name: minimatch
dependency-version: 5.1.9
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 08:43:14 -07:00
dependabot[bot]
0979d82110
Bump rollup from 2.79.2 to 2.80.0 in /app
...
Bumps [rollup](https://github.com/rollup/rollup ) from 2.79.2 to 2.80.0.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/v2.80.0/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v2.79.2...v2.80.0 )
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 2.80.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 08:42:48 -07:00
Roland
bdc29dace1
Skipping recent file tracking for ignored directories, and video and archive pages.
2026-02-28 08:39:10 -07:00
Roland
ad0d93714a
Adding videos page hotkeys to help play and navigate videos. Adding f hotkey for all local search fields (channel/domain/etc). Focusing when opening cookie modals.
2026-02-23 17:29:09 -07:00
Roland
21c96d9501
Displaying cmd+k/ctrl+k global search keyboard shortcut suggestion.
2026-02-23 16:07:22 -07:00
Roland
50ead953d8
Using selected resolution defaults when editing video with no resolutions are selected.
2026-02-23 15:23:10 -07:00
Roland
7870c194f5
Changing default download sleep to 20 seconds. Moving video settings inputs to be more compact.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-02-21 14:24:22 -07:00
dependabot[bot]
1380ae0ff2
Bump ajv from 6.12.6 to 6.14.0 in /app
...
Bumps [ajv](https://github.com/ajv-validator/ajv ) from 6.12.6 to 6.14.0.
- [Release notes](https://github.com/ajv-validator/ajv/releases )
- [Commits](https://github.com/ajv-validator/ajv/compare/v6.12.6...v6.14.0 )
---
updated-dependencies:
- dependency-name: ajv
dependency-version: 6.14.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-21 14:09:37 -07:00
Roland
0c059865e2
Updating download process to prevent rate limiting.
...
* Added encrypted cookies feature for use with yt-dlp. Decrypted cookies never touch the disk.
* Adding sleep between all downloads to prevent rapid requests.
* Channels are fully refreshed before downloading.
* Removing superseded video browser profile.
2026-02-21 14:08:00 -07:00
Roland
ae17152e79
Expanding video browser profile selection to match archive feature. Adding toggle to disable downloading missing video comments.
2026-02-19 16:15:18 -07:00
Roland
298a67159a
Not showing files that will not be moved during collection reorganization preview. Adding button to mark collection as reorganized when no files need to be reorganized.
2026-02-19 15:27:15 -07:00
Roland
99a716aa13
Storing parent url for every child download, useful for knowing why WROLPi is downloading something. This is displayed on the Video and Archive download edit page. Updating Archive Download edit modal to use single url input.
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
2026-02-18 15:16:10 -07:00
Roland
8fc98741d0
Adding noreferrer to all external links.
2026-02-15 17:26:36 -07:00