LeoVasanko
d52b24372a
Remove CISTA_PIL and Pillow preview mode
2026-04-25 02:06:40 +00:00
LeoVasanko
742b3006c9
Adjust emoji log spacing
2026-04-25 01:59:14 +00:00
LeoVasanko
01a979c00a
Improve preview worker error propagation and logging
2026-04-25 01:51:49 +00:00
LeoVasanko
f1e16b7abe
Preview: add pdf+pyvips encode path and simplify timings
2026-04-25 00:20:19 +00:00
LeoVasanko
0ebff0ec17
Preview: simplify pyvips timing to single processing ms + req total.
2026-04-25 00:06:35 +00:00
LeoVasanko
c8ab06d864
Frontend: don't show img preview for video/audio/doc files
...
- MediaPreview.vue: only render <img> for non-video, non-audio items
(video/audio already have their own player containers)
- Document.ts: limit previewurl to previewable files (was checking only .complete)
2026-04-24 23:54:02 +00:00
LeoVasanko
d5ff7757c8
Preview: persistent worker pool, fast AVIF encode, access-log timing
...
- Add preview_worker.py: long-lived subprocess; JSONL request / framed binary
response protocol (BLAKE3 checksum + LE uint32 sizes + msgspec JSON + payload)
- Add _PreviewWorkerPool: asyncio queue-based pool; kill+replace workers on timeout,
checksum error, or protocol error; PREVIEW_TIMEOUT=3s, PREVIEW_WORKERS=cpu-scaled
- Use pyvips effort=0,strip=True for fast AVIF thumbnails; CISTA_PIL=1 env forces Pillow
- Report load/process/save ms in PreviewResponse; inject into access log via req.ctx._log_extra
- Wire start/shutdown_preview_workers into Sanic lifecycle hooks (app.py)
- Call configure_main_logging() after Sanic() to install emoji formatter
- Silence worker stderr (DEVNULL)
2026-04-24 23:53:23 +00:00
LeoVasanko
cd604eb10a
Logging: emoji formatter and access-log extra field
2026-04-24 23:52:34 +00:00
LeoVasanko
abcf5d9940
Use client IP (potentially proxied) in logs, handle [ipv6].
2026-04-24 20:13:11 +00:00
LeoVasanko
0190bda853
Avoid useless check.
2026-04-24 00:04:58 +00:00
LeoVasanko
fc48500412
Upload end of file first for large files (for preview to function).
2026-04-24 00:02:17 +00:00
LeoVasanko
d31ad0b525
Avoid showing previews while file upload is in progress or the file is incomplete. This avoids 500 errors on server trying to generate the preview.
2026-04-23 19:34:16 +00:00
LeoVasanko
da4bba95be
Handle missing preview files with silent 404
2026-04-23 19:02:54 +00:00
LeoVasanko
e07ab220cb
Add cleaner access logging for HTTP requests and WebSockets
2026-04-23 18:06:22 +00:00
LeoVasanko
3da2f6e6c3
Don't show broken media previews during uploads, instead show a spinner indicating completion.
2026-04-23 17:40:03 +00:00
LeoVasanko
ded7ce65bc
Faster image previews by pyvips.
2026-04-23 17:19:24 +00:00
LeoVasanko
17550be698
Allow duplicate selected entries of the same name from different paths.
2026-04-23 17:01:03 +00:00
LeoVasanko
0b269aef7f
Set avif=1 flag for SVT-AV1 when encoding a single image, for increased efficiency and less memory usage.
2026-04-23 16:57:27 +00:00
LeoVasanko
497de296f2
Consistent forwarding of host/origin/ua over HTTP and WS to Paskia.
2026-02-10 23:56:42 +00:00
LeoVasanko
134b216f4c
Cleanup
2026-02-10 23:52:07 +00:00
LeoVasanko
06759b3c12
pytest deps, remove unused test group.
2026-02-10 23:46:44 +00:00
LeoVasanko
c51552ea29
Cleaner WebSocket/Paskia proxying.
2026-02-10 23:42:13 +00:00
LeoVasanko
00645fc8ff
Attempt to get allocated size on Windows which needs WINAPI. Fallback to file size if not possible.
2026-02-05 20:31:46 +00:00
LeoVasanko
760f7bc35d
Fix vite argument passing on deno (fastapi-vue-setup upstream).
2026-02-05 20:13:03 +00:00
LeoVasanko
8480a73839
Fix --listen docopt parsing (only -l was working).
2026-02-05 20:01:26 +00:00
LeoVasanko
302ed684e7
Remove invalid Sanic kwarg when binding to all interfaces (not needed anyway).
2026-02-05 19:56:54 +00:00
LeoVasanko
af35e0480a
Better proxy header processing, pass original user-agent without httpx overriding it.
2026-02-05 17:53:52 +00:00
LeoVasanko
5717486197
Intl support for search hotkey (where US keyboard has it).
2026-02-05 00:57:42 +00:00
LeoVasanko
0061fc54ae
Keyboard navigation fixes (still not perfect but better).
2026-02-05 00:54:15 +00:00
LeoVasanko
4eefe83072
Fix search bar losing focus under specific conditions, mainly that when the search takes more than 50ms, causing results to be emptied, with a file priorly focused, was causing breadcrumbs to get focused. (reactivity is hard)
2026-02-05 00:07:45 +00:00
LeoVasanko
f578a50007
Pass the new allocated field through search filtering. Fixes issue where 0 allocated was reported in search results.
2026-02-04 23:55:05 +00:00
LeoVasanko
f40d9c1abd
Cache previews in server RAM for much faster access (they are about 70kB each).
2026-02-04 20:56:16 +00:00
LeoVasanko
3d8845cf99
Brighter low free space colors.
2026-02-04 20:40:59 +00:00
LeoVasanko
87e1443e7d
Auth restricted endpoint is picky about the trailing slash, use it consistently.
2026-02-04 20:35:29 +00:00
LeoVasanko
f45c57e901
Auth mode indication on startupbox
2026-02-04 20:24:21 +00:00
LeoVasanko
41686d1dd1
Correctly handle customized server name in admin settings dialog.
2026-02-04 20:15:56 +00:00
LeoVasanko
cc351bb992
Space usage widget show full name if possible, allow longer names.
2026-02-04 20:12:49 +00:00
LeoVasanko
c3abbe0a3b
Rename HeaderSelected to SelectionToolbar.
2026-02-04 20:01:05 +00:00
LeoVasanko
127caeedea
Improved selection toolbar UX.
2026-02-04 19:57:31 +00:00
LeoVasanko
113bc56351
README
2026-02-04 19:23:48 +00:00
LeoVasanko
c7727c72d9
Make devserver script take --listen argument for vite, while forwarding other args correctly to backend
2026-02-04 19:23:34 +00:00
LeoVasanko
85b3aa6b81
Consistent header and footer sizing.
2026-02-04 19:19:41 +00:00
LeoVasanko
62b44ddb43
Fix free/used disk space handling. Implement file disk usage tracking. Display indicators on FileExplorer for incomplete files (sparse allocation, upload in progress).
2026-02-04 18:54:54 +00:00
LeoVasanko
60a53ef3d3
Implement server name config to override the default of using share folder name.
2026-02-04 18:00:21 +00:00
LeoVasanko
acd38c2235
Punch a hole in the pie to make a donut.
2026-02-04 17:27:56 +00:00
LeoVasanko
2f38f15afa
Unused imports
2026-02-04 17:09:14 +00:00
LeoVasanko
0fc28e56bb
Don't allow header scale larger with the window above 1000px, while the rest of the app keeps scaling by root font size.
2026-02-04 17:08:32 +00:00
LeoVasanko
22b0e503e0
Revisited diskspace widget animations and styling.
2026-02-04 17:01:22 +00:00
LeoVasanko
e3a4ecdcc2
More consistent and properly scaling header layout and positioning. Search keyboard tooltip hidden for mobile users.
2026-02-04 16:13:03 +00:00
LeoVasanko
9f363e3f66
New much prettier disk space widget.
2026-02-04 15:14:06 +00:00
LeoVasanko
8270dd0cc2
Refactor to make full file list completely non-reactive because pinia persistence was causing long delays especially while searching when there were a lot of files. Implement better ghosts that do not alter the file list.
2026-02-04 02:03:22 +00:00
LeoVasanko
1af6cd82fe
Prebuild lookup structures to reduce UI lag on very large file lists.
2026-02-04 00:18:28 +00:00
LeoVasanko
0bc2a12cfa
Make devserver script pass extra args to cista CLI.
2026-02-04 00:01:02 +00:00
LeoVasanko
9e07a3f40d
Require new fastapi-vue for unix socket compatibility.
2026-02-01 07:10:21 +00:00
LeoVasanko
2867b1075d
Disk space pie chart.
2026-02-01 06:59:15 +00:00
LeoVasanko
4fc8e29cc1
Implement a larger set of file menu options.
2026-02-01 06:33:34 +00:00
LeoVasanko
55f9117b3e
Remove refresh wwwroot support and static files serving, only using vite to serve frontend in dev mode (avoid accidentally using stale builds).
2026-02-01 06:14:35 +00:00
LeoVasanko
2b6746c55e
Change default port to 8989 like Droppy. Using 8999 for backend in dev mode.
2026-02-01 06:09:56 +00:00
LeoVasanko
1ed3779933
Use fastapi-vue parse_endpoint instead of our own logic.
2026-02-01 06:00:30 +00:00
LeoVasanko
a95cf7be94
Better UI feedback on search order changes.
2026-02-01 05:48:15 +00:00
LeoVasanko
d18501f633
Fix a search caching issue.
2026-02-01 05:38:48 +00:00
LeoVasanko
ed697db871
New header/footer layout and styles. Use cursorTooltip in more places, make it prettier. Fix tooltip still sometimes activating with touch (now only with mouse).
2026-02-01 05:19:42 +00:00
LeoVasanko
856e8c4cc8
Remove download to folder, just download zip or single file. The folder download is still accessible by Alt+Click on the download button (in the few browsers that support it).
2026-02-01 03:47:14 +00:00
LeoVasanko
f8a6eacb06
Automatically navigate into newly uploaded folders.
2026-02-01 03:27:13 +00:00
LeoVasanko
e9a82e84ad
Implement ghost items reflecting pending changes from frontend (e.g. files being uploaded) until the server acknowledges them. This gives immediate UI feedback and is clearer in cases.
2026-02-01 03:23:43 +00:00
LeoVasanko
ccd05b53f4
Remove dead code.
2026-02-01 02:49:50 +00:00
LeoVasanko
032ad13b97
Unified watcher that *may* receive events from inotify and other sources. Added change notify messages from control and upload WebSockets. Cleanup debug printouts.
2026-02-01 02:44:52 +00:00
LeoVasanko
4eae75c84b
New inotify watcher with efficient algorithms.
2026-01-31 23:46:43 +00:00
LeoVasanko
252b31a293
Performance profile file change watching.
2026-01-31 22:53:17 +00:00
LeoVasanko
feff202161
Debouncing to avoid UI flicker while typing in search.
2026-01-31 22:42:16 +00:00
LeoVasanko
d15bfc86c4
Search optimizations and fixes. Prevent re-renders on hash change (redux). Clear previous search results at the start of a new search.
2026-01-31 22:37:47 +00:00
LeoVasanko
f94ccc01c6
Optimizing the search faster; don't trigger full re render by URL changes.
2026-01-31 22:17:05 +00:00
LeoVasanko
bc355d991d
Simplified startup box unix socket formatting.
2026-01-31 22:09:57 +00:00
LeoVasanko
e7ebad3c36
Upgrade to docopt-ng because docopt is no longer maintained.
2026-01-31 22:06:03 +00:00
LeoVasanko
036c4342de
Better error logging on preview generation errors.
2026-01-31 22:00:26 +00:00
LeoVasanko
160f929e0c
Basic details in startup box.
2026-01-31 21:53:39 +00:00
LeoVasanko
1970d40d8a
Implement background worker to make search response faster and avoid hanging the UI when there are a lot of files. Implement better toast messages for transitional events that automatically disappear.
2026-01-31 21:02:16 +00:00
LeoVasanko
1a164e0a08
Smarter ZIP download naming.
2026-01-31 20:59:43 +00:00
LeoVasanko
46d222006a
More robust zip download processing; don't let aborted requests hang threads, use a larger threadpool separate of preview generation.
2026-01-31 19:43:23 +00:00
LeoVasanko
98949e6b30
Update README for Paskia SSO
2026-01-31 05:15:52 +00:00
LeoVasanko
8f76d770ee
Fixes for public mode authentication flows.
2026-01-31 04:48:44 +00:00
LeoVasanko
232fd92b22
Finalize Paskia integration and built-in authentication.
2026-01-31 00:47:04 +00:00
LeoVasanko
be69164c8f
Bundle icons into a single file.
2026-01-30 19:12:27 +00:00
LeoVasanko
4f39875786
TypeScript check and typing corrections.
2026-01-30 19:03:37 +00:00
LeoVasanko
21250a1a2d
Upgrade frontend packages, Pinia API changes.
2026-01-30 18:53:25 +00:00
LeoVasanko
849b1a6868
Update scripts with latest fastapi-vue-setup.
2026-01-30 18:40:26 +00:00
LeoVasanko
7be02e951d
Consistent dialog styling widgets and using Paskia's shared backdrop. Internal password auth mimics Paskia. API paths changed (/auth goes to internal or paskia depending on config). All API calls and previews get access checks.
2026-01-30 18:28:05 +00:00
LeoVasanko
bb38328c24
Improved tooltip display behavior; disabled for touch, less eager to activate on mouse, closer to cursor.
2026-01-22 18:08:50 +00:00
LeoVasanko
146497d731
Fix display of vertical images and videos such they fit in the gallery item.
2026-01-22 02:35:24 +00:00
LeoVasanko
442816a0ae
Fix video preview images that were displayed sideways for portrait video. The least bad approach loses HDR but shows in correct orientation. For 0 and 180 degrees we preserve HDR too.
2026-01-22 02:20:39 +00:00
LeoVasanko
d32afa6016
Display play button on video previews to indicate it is a video that can be played.
2026-01-22 01:43:50 +00:00
LeoVasanko
fa60c962c4
Attempt a better mobile layout, to fix sizing issues with Brave Android.
2026-01-22 00:57:30 +00:00
LeoVasanko
e55e11b399
Fix flickering tooltip when hovering modified in FileExplorer. Use the new, improved tooltip also in gallery to show full name, modified and size of an item.
2026-01-22 00:49:50 +00:00
LeoVasanko
b6c21152e7
Fix modified tooltip (exact timestamp) flickering on/off because of timestamp updates every second. Made the tooltip follow mouse cursor.
2026-01-22 00:39:26 +00:00
LeoVasanko
f354fc5c71
Less aggressive automatic gallery mode switching, only when folder changes. Fixes issues with focus being lost from search.
2026-01-22 00:32:18 +00:00
LeoVasanko
5bda809921
Cleaner folder headers in gallery mode search results. Multi folder results are always grouped by folder (FileExplorer and Gallery), but still otherwise respecting the chosen sort order. Overall this produces a much cleaner layout.
2026-01-22 00:23:23 +00:00
LeoVasanko
2cc92cd786
Deprecation, remove unused import.
2026-01-22 00:16:59 +00:00
LeoVasanko
ba6380e71e
Add a script to run devserver. Migrate to build and JS utils provided by fastapi-vue. Frontend directory renamed to frontend-build. Update Sanic, deprecations.
2026-01-21 23:32:04 +00:00
LeoVasanko
0d853032bf
Cleaner handling when preview generation fails. Using original file as fallback.
2026-01-21 23:29:51 +00:00
LeoVasanko
1cb512e65d
Remove overly eager Gallery automode. No longer switches to gallery when merely changing sort column.
2025-10-01 07:23:24 +00:00