Commit Graph

143 Commits

Author SHA1 Message Date
Rob Watson ed964cb58f Add toHHMMSS helper 2022-01-15 10:13:52 +01:00
Rob Watson 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
Rob Watson 35b62f1e59 Fetch title, description and author from Youtube
continuous-integration/drone/push Build is passing Details
2022-01-13 20:05:09 +01:00
Rob Watson aabd0f3252 HudCanvas: add useCallbacks
continuous-integration/drone/push Build is passing Details
2022-01-13 07:59:48 +01:00
Rob Watson 5e27c3db9a Fix filename typo
continuous-integration/drone/push Build is passing Details
2022-01-10 21:51:17 +01:00
Rob Watson b0ccf17527 poc: legacy HTTP download for audio clips
continuous-integration/drone/push Build is passing Details
2022-01-10 21:35:31 +01:00
Rob Watson af0674eb11 Add POST /api/media_sets/:id/clip.
continuous-integration/drone Build is passing Details
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
Rob Watson 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
Rob Watson 8a26b75127 Revert "Disable directory listings in http.FileServer."
continuous-integration/drone/push Build is passing Details
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 2377477188.
2022-01-10 08:39:03 +01:00
Rob Watson 2377477188 Disable directory listings in http.FileServer.
continuous-integration/drone/push Build is passing Details
Closes #6
2022-01-08 12:16:30 +01:00
Rob Watson 8e9a4cf8c3 Fix linter error
continuous-integration/drone/push Build is passing Details
2022-01-07 19:54:56 +01:00
Rob Watson 04601bab2e frontend: Add Zoom buttons
continuous-integration/drone/push Build is failing Details
2022-01-07 19:51:53 +01:00
Rob Watson 06fce9af95 Refactor MediaSetService.GetPeaksForSegment.
continuous-integration/drone/push Build is failing Details
- 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
Rob Watson 5a4ee4e34f Add FFmpeg WorkerPool
continuous-integration/drone/push Build is passing Details
2022-01-05 19:49:47 +01:00
Rob Watson 33ee9645e7 Update backend dependencies
continuous-integration/drone/push Build is passing Details
2022-01-04 06:57:28 +01:00
Rob Watson 6cb462f769 Add test coverage for getVideoFromYoutube flow
continuous-integration/drone/push Build is passing Details
2022-01-04 06:51:25 +01:00
Rob Watson 932648a44b Add test coverage for getVideoFromFileStore flow
continuous-integration/drone/push Build is passing Details
2022-01-03 21:01:17 +01:00
Rob Watson 12e6e73976 Remove extraenous line
continuous-integration/drone/push Build is passing Details
2022-01-03 18:54:03 +01:00
Rob Watson 66c65694ae Add test coverage for getAudioFromYoutube flow
continuous-integration/drone/push Build is passing Details
2022-01-03 18:44:19 +01:00
Rob Watson 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 a063f85eca.
2022-01-03 13:32:39 +01:00
Rob Watson a063f85eca FileStore.PutObject: Accept io.ReadCloser
continuous-integration/drone/push Build is passing Details
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
Michael Evans 959f5f0a2d Update README to include testing information
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-01-01 17:30:48 -06:00
Michael Evans 335efb23e1 Remove redundant function declaration from App.tsx
continuous-integration/drone/push Build is passing Details
2022-01-01 17:26:10 -06:00
Michael Evans 22dd92f339 Extract millisFromDuration helper and add tests
continuous-integration/drone/push Build is passing Details
2022-01-01 17:23:58 -06:00
Rob Watson 9ef4cc5853 Fix flaky test
continuous-integration/drone/push Build is passing Details
2021-12-31 19:53:46 +01:00
Rob Watson 4e4201f7d2 Add test coverage for getPeaksFromFileStore flow
continuous-integration/drone/push Build is passing Details
2021-12-31 19:25:55 +01:00
Michael Evans 37552a150e Add frontend build step to CI
continuous-integration/drone/push Build is passing Details
2021-12-30 08:14:41 +00:00
Rob Watson 2b1a668c9d Add GetAudioSegment flow
continuous-integration/drone/push Build is passing Details
2021-12-29 16:41:43 +01:00
Rob Watson dd526b6916 Extract ModuloReader from service.go
continuous-integration/drone/push Build is passing Details
2021-12-17 17:52:59 +01:00
Rob Watson 2445ebc02f Rename gRPC endpoints and service methods.
- GetAudio > GetPeaks
- GetAudioSegment > GetPeaksForSegment
2021-12-17 17:30:53 +01:00
Rob Watson 57516c738e Add staticcheck to CI steps
continuous-integration/drone/push Build is passing Details
2021-12-13 21:30:37 +01:00
Rob Watson 4ef5dc4189 Add test coverage for filestore package
continuous-integration/drone/push Build is passing Details
2021-12-13 21:13:11 +01:00
Rob Watson 34681821e4 Improve waveform selection behaviour
continuous-integration/drone/push Build is passing Details
2021-12-13 05:10:07 +01:00
Rob Watson c8de6643e8 Remove S3 bucket columns from media_sets table
continuous-integration/drone/push Build is passing Details
Re: #5
2021-12-13 04:29:02 +01:00
Rob Watson 37a74e218f Rename migrations to use default time format 2021-12-13 04:29:02 +01:00
Rob Watson 640e0c8f04 README.md: Add Drone badge
continuous-integration/drone/push Build is passing Details
2021-12-12 19:03:51 +01:00
Rob Watson b2b5736e5e Add drone.yml
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2021-12-12 18:30:55 +01:00
Rob Watson 545ac72faa HudCanvas: handle select-nothing 2021-12-12 11:04:42 +01:00
Rob Watson 50e68f4792 Update frontend dependencies 2021-12-12 11:03:27 +01:00
Rob Watson 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
Rob Watson 65cc365717 Add debug view to App component 2021-12-11 17:25:30 +01:00
Rob Watson fb3a497119 Add base URL to serve file system store objects over HTTP 2021-12-09 04:05:34 +01:00
Rob Watson 13224f75ea Rename HTTP base path to HTTP root 2021-12-09 03:38:38 +01:00
Rob Watson 4168cb150c Add FileSystemStore file store 2021-12-08 20:58:13 +01:00
Rob Watson f2d7af0860 Extract S3 code to S3FileStore
Re: #5
2021-12-07 20:58:11 +01:00
Rob Watson c849b8d2e6 Extract reusable HudCanvas component 2021-12-06 23:52:24 +01:00
Rob Watson 468ddf4e9a Add benchmark for MediaService.GetAudioSegment 2021-12-06 18:40:02 +01:00
Rob Watson 6d8b1beba7 Add test coverage for MediaService.GetAudioSegment 2021-12-05 20:05:58 +01:00
Rob Watson 935c2add2a Add generated code to Git 2021-12-05 11:56:33 +01:00
Rob Watson 75e09c05cf Update README.md and gitignore 2021-12-05 11:56:33 +01:00