151 Commits

Author SHA1 Message Date
a33057651d Update frontend with Tailwind.
- Replace inline CSS with Tailwind classes
- Improve page layout and scaling
- Add icons to ControlBar
- Small refactor of play/pause logic
- Add basic (not by any means final) colours
2022-01-18 18:23:00 +01:00
ec3ac8996d Add tailwindcss 2022-01-18 18:23:00 +01:00
d988a99f78 Update react-scripts -> 5.x 2022-01-18 18:23:00 +01:00
58bbc06e6f Update deployment configuration to enable prefixes 2022-01-18 17:56:37 +01:00
fbbb2e2fda config: Add prefix support and test coverage 2022-01-18 08:23:16 +01:00
d136e00c59 Refactor zoom in/out, add test coverage 2022-01-16 08:58:07 +01:00
aa4d235c0c frontend: reduce redraw rate to 20ms 2022-01-15 10:14:04 +01:00
d8173cdace Add framesToDuration helper 2022-01-15 10:13:57 +01:00
ed964cb58f Add toHHMMSS helper 2022-01-15 10:13:52 +01:00
f33fa149fc Remove most useCallback usages
It is unclear whether these are actually significantly improving
performance and they add non-trivial complexity to the codebase,
especially when under heavy frontend development. Removing most of them
for now until it can be shown they are actually worthwhile.
2022-01-14 12:24:59 +01:00
35b62f1e59 Fetch title, description and author from Youtube 2022-01-13 20:05:09 +01:00
aabd0f3252 HudCanvas: add useCallbacks 2022-01-13 07:59:48 +01:00
5e27c3db9a Fix filename typo 2022-01-10 21:51:17 +01:00
b0ccf17527 poc: legacy HTTP download for audio clips 2022-01-10 21:35:31 +01:00
af0674eb11 Add POST /api/media_sets/:id/clip.
This will allow for an HTTP/1.1 fallback for
MediaSetService.GetAudioSegment, enabling download of audio clips in
browsers that do not support the File System Access API.
2022-01-10 18:52:04 +01:00
c7d5541379 Refactor response handling.
- Add FileSystem implementation to handle HTTP index files but constrain
  directory listings
- Refactor server implementation into a dedicated handler struct
- Add test coverage
2022-01-10 18:45:10 +01:00
8a26b75127 Revert "Disable directory listings in http.FileServer."
The middleware approach breaks automatic handling of index files, which
in turn breaks assets serving. A custom file system will be required
instead.

This reverts commit 237747718870a43e47462c9b088681fb1cc1f817.
2022-01-10 08:39:03 +01:00
2377477188 Disable directory listings in http.FileServer.
Closes 
2022-01-08 12:16:30 +01:00
8e9a4cf8c3 Fix linter error 2022-01-07 19:54:56 +01:00
04601bab2e frontend: Add Zoom buttons 2022-01-07 19:51:53 +01:00
06fce9af95 Refactor MediaSetService.GetPeaksForSegment.
- Fix bug where the function would return empty high bins when
  framesPerBin was a low value (< ~10)
- Improve readability
- Add error test cases
2022-01-07 13:34:18 +01:00
5a4ee4e34f Add FFmpeg WorkerPool 2022-01-05 19:49:47 +01:00
33ee9645e7 Update backend dependencies 2022-01-04 06:57:28 +01:00
6cb462f769 Add test coverage for getVideoFromYoutube flow 2022-01-04 06:51:25 +01:00
932648a44b Add test coverage for getVideoFromFileStore flow 2022-01-03 21:01:17 +01:00
12e6e73976 Remove extraenous line 2022-01-03 18:54:03 +01:00
66c65694ae Add test coverage for getAudioFromYoutube flow 2022-01-03 18:44:19 +01:00
176a1cd8c1 Revert "FileStore.PutObject: Accept io.ReadCloser"
This turned out to actually make testing more difficult, as the
FileStore objects are generally mocked themselves and moving the Close()
call inside them introduced IO problems in the test suite.

This reverts commit a063f85eca5dd3f983bc9b790fd68108820cc730.
2022-01-03 13:32:39 +01:00
a063f85eca FileStore.PutObject: Accept io.ReadCloser
Accepting a ReadCloser in place of a Reader allows the FileSystem
implementation to handle closing the reader, which in turn simplifies
downstream code.
2022-01-03 09:57:49 +01:00
959f5f0a2d Update README to include testing information 2022-01-01 17:30:48 -06:00
335efb23e1 Remove redundant function declaration from App.tsx 2022-01-01 17:26:10 -06:00
22dd92f339 Extract millisFromDuration helper and add tests 2022-01-01 17:23:58 -06:00
9ef4cc5853 Fix flaky test 2021-12-31 19:53:46 +01:00
4e4201f7d2 Add test coverage for getPeaksFromFileStore flow 2021-12-31 19:25:55 +01:00
37552a150e Add frontend build step to CI 2021-12-30 08:14:41 +00:00
2b1a668c9d Add GetAudioSegment flow 2021-12-29 16:41:43 +01:00
dd526b6916 Extract ModuloReader from service.go 2021-12-17 17:52:59 +01:00
2445ebc02f Rename gRPC endpoints and service methods.
- GetAudio > GetPeaks
- GetAudioSegment > GetPeaksForSegment
2021-12-17 17:30:53 +01:00
57516c738e Add staticcheck to CI steps 2021-12-13 21:30:37 +01:00
4ef5dc4189 Add test coverage for filestore package 2021-12-13 21:13:11 +01:00
34681821e4 Improve waveform selection behaviour 2021-12-13 05:10:07 +01:00
c8de6643e8 Remove S3 bucket columns from media_sets table
Re: 
2021-12-13 04:29:02 +01:00
37a74e218f Rename migrations to use default time format 2021-12-13 04:29:02 +01:00
640e0c8f04 README.md: Add Drone badge 2021-12-12 19:03:51 +01:00
b2b5736e5e Add drone.yml 2021-12-12 18:30:55 +01:00
545ac72faa HudCanvas: handle select-nothing 2021-12-12 11:04:42 +01:00
50e68f4792 Update frontend dependencies 2021-12-12 11:03:27 +01:00
b876fb915a Update frontend
- Add HudCanvas component to Waveform
- Allow waveform to be selectable
- Fix selection rendering on viewport change
- Add spacebar handler
2021-12-11 17:29:31 +01:00
65cc365717 Add debug view to App component 2021-12-11 17:25:30 +01:00
fb3a497119 Add base URL to serve file system store objects over HTTP 2021-12-09 04:05:34 +01:00