Commit graph

1884 commits

Author SHA1 Message Date
Roland
bf5b787fb3
Unifying Files tab appearance for model pages.
Some checks failed
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
3ca6bc97ab
Bumping version for bluetooth toggle. 2026-03-28 11:05:37 -06:00
Roland
de25242d61
Waiting for wifi device to become ready before creating hotspot. 2026-03-28 10:48:34 -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
83b4a62f8f
Checking that services go down during upgrade before redirecting back to main UI. 2026-03-28 10:16:55 -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.
Some checks are pending
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
d9fef1bfa2
Bumping version for download fix.
Some checks failed
CodeQL / Analyze (push) Has been cancelled
Controller Tests / controller-tests (push) Has been cancelled
Jest Tests / jest-tests (push) Has been cancelled
2026-03-25 16:44:33 -06:00
Roland
dd9906ee04
Fixing bug where next download would be calculated before download was marked as complete, causing infinite retries. 2026-03-25 16:41:26 -06:00
Roland
d61b9d2ef9
Bumping version to include updated docs.
Some checks failed
CodeQL / Analyze (push) Has been cancelled
Controller Tests / controller-tests (push) Has been cancelled
Jest Tests / jest-tests (push) Has been cancelled
2026-03-22 19:49:53 -06:00
Roland
c67e3ff490
Fixing bug where searching zims did not show results. 2026-03-22 13:30:33 -06:00
Roland
63eff3f006
Generating temporary certificate on first startup so Caddy can redirect user to Controller for onboarding flow. 2026-03-22 13:19:57 -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
83ad253d6f
Moving script banner to the top so users will see it. 2026-03-22 12:53:10 -06:00
Roland
dc531a1f42
Fixing flaky e2e tests.
Some checks are pending
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.
Some checks are pending
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.
Some checks are pending
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.
Some checks are pending
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.
Some checks failed
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.
Some checks are pending
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.
Some checks are pending
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.
Some checks are pending
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.
Some checks are pending
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.
Some checks are pending
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.
Some checks are pending
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.
Some checks are pending
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