Commit Graph

399 Commits

Author SHA1 Message Date
kontrollanten f6d6e7f861
Resumable video uploads (#3933)
* WIP: resumable video uploads

relates to #324

* fix review comments

* video upload: error handling

* fix audio upload

* fixes after self review

* Update server/controllers/api/videos/index.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* Update server/middlewares/validators/videos/videos.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* Update server/controllers/api/videos/index.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* update after code review

* refactor upload route

- restore multipart upload route
- move resumable to dedicated upload-resumable route
- move checks to middleware
- do not leak internal fs structure in response

* fix yarn.lock upon rebase

* factorize addVideo for reuse in both endpoints

* add resumable upload API to openapi spec

* add initial test and test helper for resumable upload

* typings for videoAddResumable middleware

* avoid including aws and google packages via node-uploadx, by only including uploadx/core

* rename ex-isAudioBg to more explicit name mentioning it is a preview file for audio

* add video-upload-tmp-folder-cleaner job

* stronger typing of video upload middleware

* reduce dependency to @uploadx/core

* add audio upload test

* refactor resumable uploads cleanup from job to scheduler

* refactor resumable uploads scheduler to compare to last execution time

* make resumable upload validator to always cleanup on failure

* move legacy upload request building outside of uploadVideo test helper

* filter upload-resumable middlewares down to POST, PUT, DELETE

also begin to type metadata

* merge add duration functions

* stronger typings and documentation for uploadx behaviour, move init validator up

* refactor(client/video-edit): options > uploadxOptions

* refactor(client/video-edit): remove obsolete else

* scheduler/remove-dangling-resum: rename tag

* refactor(server/video): add UploadVideoFiles type

* refactor(mw/validators): restructure eslint disable

* refactor(mw/validators/videos): rename import

* refactor(client/vid-upload): rename html elem id

* refactor(sched/remove-dangl): move fn to method

* refactor(mw/async): add method typing

* refactor(mw/vali/video): double quote > single

* refactor(server/upload-resum): express use > all

* proper http methud enum server/middlewares/async.ts

* properly type http methods

* factorize common video upload validation steps

* add check for maximum partially uploaded file size

* fix audioBg use

* fix extname(filename) in addVideo

* document parameters for uploadx's resumable protocol

* clear META files in scheduler

* last audio refactor before cramming preview in the initial POST form data

* refactor as mulitpart/form-data initial post request

this allows preview/thumbnail uploads alongside the initial request,
and cleans up the upload form

* Add more tests for resumable uploads

* Refactor remove dangling resumable uploads

* Prepare changelog

* Add more resumable upload tests

* Remove user quota check for resumable uploads

* Fix upload error handler

* Update nginx template for upload-resumable

* Cleanup comment

* Remove unused express methods

* Prefer to use got instead of raw http

* Don't retry on error 500

Co-authored-by: Rigel Kent <par@rigelk.eu>
Co-authored-by: Rigel Kent <sendmemail@rigelk.eu>
Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-05-10 11:13:41 +02:00
Chocobozzz 931d343018
Move to stylelint 2021-04-28 17:53:57 +02:00
Chocobozzz f135bfda77
Revert sass loader upgrade
It only supports webpack 4
2021-04-12 17:18:11 +02:00
Chocobozzz 8bf8e56e01
Upgrade main client dependencies 2021-04-12 16:51:09 +02:00
Rigel Kent a472cf0330 add loop toggle to the player contextmenu 2021-04-12 10:50:22 +02:00
Chocobozzz d007175238
Bumped to version v3.1.0 2021-03-24 18:18:40 +01:00
Chocobozzz 4468e1e4f7
Bumped to version v3.1.0-rc.1 2021-03-04 10:54:29 +01:00
Chocobozzz 56b0a516f2
Update client dependencies 2021-02-25 09:55:06 +01:00
Chocobozzz 72aa835e17
Upgrade client dependencies 2021-02-03 11:44:43 +01:00
Chocobozzz 22845214bf
Update angular 2021-02-03 09:55:44 +01:00
Chocobozzz 26171379d0 Use source sans 3 font 2021-01-13 09:05:22 +01:00
Chocobozzz 69e0e678be
Bumped to version v3.0.1 2021-01-12 08:25:29 +01:00
Chocobozzz e33f385dd5
Bumped to version v3.0.0 2021-01-07 08:26:11 +01:00
Chocobozzz a0194a187f
Upgrade ng select to fix accessibility issues 2020-12-29 16:39:15 +01:00
Chocobozzz 505816fa10
Bumped to version v3.0.0-rc.1 2020-12-16 09:46:27 +01:00
Chocobozzz c4f7fe09cd
Use sass instead of deprecated node sass 2020-11-19 15:57:52 +01:00
Chocobozzz 4f926722ea
Upgrade client dependencies
Migrate removed primeng theme to custom CSS
2020-11-19 15:25:41 +01:00
Chocobozzz 374e419738
Update my email 2020-11-12 16:29:32 +01:00
Chocobozzz 6d61da4e32
HLS player fallback for non https context 2020-11-10 10:36:50 +01:00
Chocobozzz 3bc68dfd61 Fix audio sync after saving replay
hls.js seems to not correctly handle audio gaps with fragmented mp4
(but can with a ts playlist)
2020-11-09 15:33:04 +01:00
Kimsible 98b9464312
render html/markdown for new comment notification email (#3255)
Co-authored-by: kimsible <kimsible@users.noreply.github.com>
Co-authored-by: Rigel Kent <sendmemail@rigelk.eu>
2020-11-07 22:59:58 +01:00
Chocobozzz b43d19cf44
Bumped to version v2.4.0 2020-09-08 11:12:05 +02:00
Chocobozzz 5520f6658e
Bumped to version v2.4.0-rc.1 2020-08-27 08:46:36 +02:00
Chocobozzz b405d663b4
Upgrade client dep' 2020-08-25 14:01:29 +02:00
Chocobozzz ed78004086
Update angular to fix localize extraction bug 2020-08-25 10:48:35 +02:00
kimsible e548a7c9b0 Remove unused markdown-it-emoji types dependency 2020-08-14 15:03:38 +02:00
kimsible 0672dc769b Add unicode emoji to markdown 2020-08-14 15:03:38 +02:00
Chocobozzz 66357162f8
Migrate to $localize
* Remove i18n polyfill to translate things in components
 * Reduce bundle sizes
 * Improve runtime perf
 * Reduce a lot the time to make a full client build
 * Reduce client build complexity
 * We don't need a service to translate things anymore (so we will be able to translate title pages etc)

Unfortunately we may loose some translations in the migration process.
I'll put a message on weblate to notify translators
2020-08-14 10:28:30 +02:00
Chocobozzz 94676e631c
Remove angular pipes module 2020-08-11 16:50:00 +02:00
Rigel Kent 02c01341f4 add ng-select for templatable select options
- create select-tags component to replace ngx-chips
- create select-options to factorize option selection in forms
- create select-channel to simplify channel selection
- refactor tags validation
2020-08-11 09:03:39 +02:00
Chocobozzz 583eb04b54 Upgrade to angular 10 2020-08-07 08:28:14 +02:00
Chocobozzz 7a09c3007a
Fix player hotkeys part 2 2020-08-03 08:56:32 +02:00
Chocobozzz 97aaeadad5
Bumped to version v2.3.0 2020-07-21 10:03:58 +02:00
Chocobozzz 27647da17f
Bumped to version v2.3.0-rc.1 2020-07-06 11:09:12 +02:00
Chocobozzz 275350614f
Upgrade videojs hotkeys lib 2020-06-23 16:57:02 +02:00
Chocobozzz f11bc56602
Update client dependencies 2020-06-17 11:57:13 +02:00
Chocobozzz 0f32d49915
Cleanup client dependencies 2020-06-09 14:52:55 +02:00
Chocobozzz 27da4884ed
Use tslib in client 2020-06-09 14:52:55 +02:00
Chocobozzz 520745bfe8
Add ar-001 locale 2020-06-04 10:35:08 +02:00
Chocobozzz a55c98031b
Bumped to version v2.2.0 2020-06-02 10:04:05 +02:00
Chocobozzz d9cb522780
Bumped to version v2.2.0-rc.1 2020-05-18 08:13:34 +02:00
Chocobozzz d170c5c580
Update client dependencies 2020-05-06 14:48:49 +02:00
Chocobozzz 1f41ca6566
Revert partially "Update client angular"
This reverts commit 7a9f9c4626.

Breaks canDeactivate on child route
2020-04-20 11:02:32 +02:00
Chocobozzz 7a9f9c4626
Update client angular 2020-04-20 08:49:12 +02:00
Chocobozzz 5def04e17f
Update angular 2020-04-14 09:55:48 +02:00
Chocobozzz 9cdeb80650
Fix videojs subtitles 2020-04-08 09:36:51 +02:00
Chocobozzz a96f4b738e
Upgrade client dep' to fix primeng bug 2020-04-02 14:13:10 +02:00
Chocobozzz 4adebd513e
Client dependencies upgrade 2020-04-01 14:06:46 +02:00
Rigel Kent 3d527ba173 Use inner join and document code for viewr stats for channels 2020-03-31 10:29:24 +02:00
Chocobozzz 850ea77864
Update hls.js
Seems to fix a bug when we manually update resolution
2020-02-28 13:45:42 +01:00
Chocobozzz 93468b0889
Bumped to version v2.1.1 2020-02-28 13:45:42 +01:00
Chocobozzz 7024e9120b
Merge branch 'release/2.1.0' into develop 2020-02-11 09:44:59 +01:00
Chocobozzz 6b7e246ac7
Bumped to version v2.1.0 2020-02-11 08:35:39 +01:00
Chocobozzz 25f659632b Remove unused modules 2020-02-10 16:39:28 +01:00
Chocobozzz 7811819b1a Use angular 9 clipboard cdk 2020-02-10 16:39:28 +01:00
Chocobozzz 361dcebc75 Support i18n build 2020-02-10 16:39:28 +01:00
Chocobozzz f77eb73b5e Fix angular 9 build 2020-02-10 16:39:28 +01:00
Chocobozzz a247950351 Add @angular/localize 2020-02-10 16:39:28 +01:00
Chocobozzz 2cf81751f0 Upgrade angular libraries 2020-02-10 16:39:28 +01:00
Chocobozzz 2f5d2ec5ea Update to angular 9 2020-02-10 16:39:28 +01:00
Chocobozzz 6c5bc93a3a Upgrade angular to latest 8 2020-02-10 16:39:28 +01:00
Chocobozzz 83fcadac86
Move streamroot plugin in core project
To avoid an already bundled HLS.js library, and adapt some parts of the
code
2020-01-31 14:13:00 +01:00
Chocobozzz 14aa85562c
Cleanup some client FIXME 2020-01-29 16:00:28 +01:00
Chocobozzz f5fcd9f725
Correctly type videojs player 2020-01-29 11:48:15 +01:00
Chocobozzz b764380ac2 Add ability to list redundancies 2020-01-28 11:35:26 +01:00
Chocobozzz 5aafc6f373
Bumped to version v2.1.0-rc.1 2020-01-27 08:44:04 +01:00
Chocobozzz a3705089fa
Remove husky 2020-01-21 14:28:28 +01:00
Chocobozzz 51b34a11b2
Share playlists state 2020-01-06 13:34:08 +01:00
Chocobozzz 478924a044
Add package.json for embed api 2019-12-18 10:14:24 +01:00
Chocobozzz a42294c5ed
Merge branch 'weblate' into develop 2019-11-13 10:05:27 +01:00
Chocobozzz e8e09e27ff
Bumped to version v2.0.0 2019-11-12 08:04:15 +01:00
Chocobozzz 3aea8eb2e7
Try new worflow with french 2019-11-07 09:45:14 +01:00
Chocobozzz 16fd7c4b86
Bumped to version v2.0.0-rc.1 2019-10-29 08:26:43 +01:00
Julien Maulny 0c695c5c96 Add a drag&drop delay on playlist videos to allow user scroll on small screens (#2154)
* Add delay on playlist element reordering to fix user scroll on mobile

Signed-off-by: Julien Maulny <julien.maulny@protonmail.com>

* Upgrade @angular/cdk to include bugfix about drag&drop

Signed-off-by: Julien Maulny <julien.maulny@protonmail.com>

* add delay on playlist drag&drop on all touch screens

Signed-off-by: Julien Maulny <julien.maulny@protonmail.com>
2019-10-23 18:12:22 +02:00
Chocobozzz 1f7bc0dd61
Don't use beta angular qrcode package 2019-10-21 17:26:34 +02:00
Chocobozzz 576ddf645f
Update client dependencies 2019-10-21 16:53:46 +02:00
Chocobozzz 8c559fad1e
Merge branch 'release/1.4.0' into develop 2019-09-11 11:09:18 +02:00
Chocobozzz 22af8aac79
Bumped to version v1.4.1 2019-09-09 08:15:24 +02:00
Chocobozzz b82df0a399
Cleanup HLS redundancy manager in client
With the new p2p-media-loader release
2019-09-05 17:21:44 +02:00
Chocobozzz 076d3ace1e
Bumped to version v1.4.0 2019-08-26 11:56:10 +02:00
Chocobozzz f01dc977ae
Bumped to version v1.4.0 2019-08-26 08:49:46 +02:00
Chocobozzz f3ea7ecee1
Update angular cli 2019-08-23 10:28:21 +02:00
Chocobozzz 69752cd458
Update angular cli 2019-08-23 10:27:59 +02:00
Chocobozzz 54beb819f0
Bumped to version v1.4.0-rc.1 2019-08-13 15:34:39 +02:00
Chocobozzz 16b5525950
Update Angular -> 8.2.0 2019-08-01 11:38:47 +02:00
Chocobozzz 85394ba22a
Fix webtorrent player 2019-07-30 10:54:14 +02:00
Chocobozzz 41b15c8921
Update client dependencies 2019-07-25 11:00:45 +02:00
Chocobozzz f36da21e40
Update angular 2019-07-25 11:00:43 +02:00
Chocobozzz 0109c4921c
Bumped to version v1.3.1 2019-06-17 08:38:32 +02:00
Chocobozzz 88ebb43310
Bumped to version v1.3.0 2019-06-03 08:47:25 +02:00
Chocobozzz ea0877b405
Bumped to version v1.3.0-rc.2 2019-05-22 08:22:14 +02:00
Chocobozzz 3fbbadabea
Bumped to version v1.3.0-rc.1 2019-05-14 14:00:03 +02:00
Chocobozzz c47106315a
tslint update 2019-04-02 18:30:26 +02:00
Chocobozzz f421fa06ad
Update client dep 2019-04-02 17:39:21 +02:00
Chocobozzz d0e1e32589 Remove jest tests
I don't have time to maintain them
2019-03-18 11:17:59 +01:00
Chocobozzz 15e9d5ca39 Playlist reorder support 2019-03-18 11:17:59 +01:00
Chocobozzz 41d713446c
Lazy import some modules 2019-02-15 15:52:18 +01:00
Chocobozzz 301fc49c17
Bumped to version v1.2.1 2019-02-15 09:43:39 +01:00
Chocobozzz b426edd485
Cleanup reset user password by admin
And add some tests
2019-02-11 10:37:27 +01:00
Rigel Kent a3342ce250
remove isAdministration 2019-02-11 09:26:38 +01:00