94 Commits

Author SHA1 Message Date
Rob Watson
af0674eb11 Add POST /api/media_sets/:id/clip.
All checks were successful
continuous-integration/drone Build is passing
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."
All checks were successful
continuous-integration/drone/push Build is passing
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
Rob Watson
2377477188 Disable directory listings in http.FileServer.
All checks were successful
continuous-integration/drone/push Build is passing
Closes #6
2022-01-08 12:16:30 +01:00
Rob Watson
8e9a4cf8c3 Fix linter error
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-07 19:54:56 +01:00
Rob Watson
06fce9af95 Refactor MediaSetService.GetPeaksForSegment.
Some checks failed
continuous-integration/drone/push Build is failing
- 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
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-05 19:49:47 +01:00
Rob Watson
33ee9645e7 Update backend dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-04 06:57:28 +01:00
Rob Watson
6cb462f769 Add test coverage for getVideoFromYoutube flow
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-04 06:51:25 +01:00
Rob Watson
932648a44b Add test coverage for getVideoFromFileStore flow
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-03 21:01:17 +01:00
Rob Watson
12e6e73976 Remove extraenous line
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-03 18:54:03 +01:00
Rob Watson
66c65694ae Add test coverage for getAudioFromYoutube flow
All checks were successful
continuous-integration/drone/push Build is passing
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 a063f85eca5dd3f983bc9b790fd68108820cc730.
2022-01-03 13:32:39 +01:00
Rob Watson
a063f85eca FileStore.PutObject: Accept io.ReadCloser
All checks were successful
continuous-integration/drone/push Build is passing
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
Rob Watson
9ef4cc5853 Fix flaky test
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-31 19:53:46 +01:00
Rob Watson
4e4201f7d2 Add test coverage for getPeaksFromFileStore flow
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-31 19:25:55 +01:00
Rob Watson
2b1a668c9d Add GetAudioSegment flow
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-29 16:41:43 +01:00
Rob Watson
dd526b6916 Extract ModuloReader from service.go
All checks were successful
continuous-integration/drone/push Build is passing
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
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-13 21:30:37 +01:00
Rob Watson
4ef5dc4189 Add test coverage for filestore package
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-13 21:13:11 +01:00
Rob Watson
c8de6643e8 Remove S3 bucket columns from media_sets table
All checks were successful
continuous-integration/drone/push Build is passing
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
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
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
896e524363 Add README and LICENSE files 2021-12-04 06:26:30 +01:00
Rob Watson
0cc1fd8272 Frontend fixes 2021-12-02 15:55:14 +01:00
Rob Watson
b3bc63621a Add types.go, small refactor and tidy 2021-11-29 16:06:43 +01:00
Rob Watson
1552fc19a1 Send presigned encoded audio URL to the frontend 2021-11-29 15:55:11 +01:00
Rob Watson
be42d452d6 Update database with encoded audio metadata 2021-11-29 14:59:05 +01:00
Rob Watson
c3da27ca49 Refactor audio fetching logic 2021-11-29 12:46:33 +01:00
Rob Watson
817a10d269 Move TLS config to Server struct 2021-11-26 20:01:34 +01:00
Rob Watson
abf5398d24 Allow configuration of BindAddr and TLS certs 2021-11-26 17:22:25 +01:00
Rob Watson
4c999cd5a2 Configure backend to serve assets over HTTP 2021-11-26 05:11:49 +01:00
Rob Watson
0d2fcfc9ff Update error type for pgx package 2021-11-25 20:35:51 +01:00
Rob Watson
2d9f2d80b2 pgx: Configure pgxpool 2021-11-23 16:16:00 +01:00
Rob Watson
4580915c3c Migrate libpq > pgx 2021-11-23 13:20:56 +01:00
Rob Watson
be39f151c7 Fix typo in config.go 2021-11-22 21:39:23 +01:00
Rob Watson
61171b00af Replace log package with zap.Logger 2021-11-22 21:35:51 +01:00
Rob Watson
b643ea2824 Add config package 2021-11-22 19:26:51 +01:00
Rob Watson
e7c76d0c6b Delete obsolete file 2021-11-22 19:21:43 +01:00
Rob Watson
7eef0b6e25 Fixes uploaded to sort completedParts before completing the upload 2021-11-22 18:54:31 +01:00
Rob Watson
f91a84b7eb Update go.mod 2021-11-21 21:17:36 +01:00
Rob Watson
2f7aae1d6e Add video thumbnail support 2021-11-21 20:43:40 +01:00
Rob Watson
4afec11074 Get video from Youtube, send progress via gRPC 2021-11-21 16:09:30 +01:00