Commit Graph

212 Commits (0cbcaccb8380f93980661d358b6db5d671a1577f)

Author SHA1 Message Date
Chocobozzz 05ded92ed1 Update to angular 12 2021-05-27 16:00:13 +02:00
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 c0ab041c2c
Upgrade client dependencies 2021-03-24 18:18:41 +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 a0194a187f
Upgrade ng select to fix accessibility issues 2020-12-29 16:39:15 +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 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 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 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
Rigel Kent 81fe3c67c5 fix duplicate id in svg, empty alt in base email 2020-06-04 09:05:44 +02:00
Chocobozzz 399b3bc9a6
Update translations 2020-05-11 13:39:06 +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 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 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 3aea8eb2e7
Try new worflow with french 2019-11-07 09:45:14 +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 b82df0a399
Cleanup HLS redundancy manager in client
With the new p2p-media-loader release
2019-09-05 17:21:44 +02:00
Chocobozzz f3ea7ecee1
Update angular cli 2019-08-23 10:28:21 +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 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 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 c7ca4c8be7 Fix client with google bot 2019-02-11 09:13:02 +01:00
Chocobozzz 0920929696 Add hls support on server 2019-02-11 09:13:02 +01:00
Chocobozzz 3b6f205c34 Correctly implement p2p-media-loader 2019-02-11 09:13:02 +01:00
Chocobozzz 2adfc7ea9a Refractor videojs player
Add fake p2p-media-loader plugin
2019-02-11 09:13:02 +01:00
Chocobozzz 457bb213b2
Refactor how we use icons
Inject them in an angular component so we can easily change their color
2019-01-17 10:38:18 +01:00
Chocobozzz 2f1548fda3 Add notifications in the client 2019-01-09 11:15:15 +01:00
Chocobozzz f8b2c1b4f5
Refractor notification service
Shorter name and use primeng component
2018-12-19 17:26:52 +01:00
Chocobozzz 06471769fc
Upgrade client dependencies 2018-12-04 10:29:28 +01:00
Chocobozzz 79f068dfd5
Upgrade client dependencies 2018-11-15 10:25:33 +01:00
Chocobozzz 2fbe7f1933
Fix new Angular 7 issues 2018-11-15 09:25:32 +01:00
Chocobozzz c199c427d4
Better typings 2018-10-18 14:35:31 +02:00
Chocobozzz f2659ae0b0
Upgrade tslint rules 2018-09-21 09:26:53 +02:00
Chocobozzz ae04a0ce12
Upgrade client dependencies 2018-09-21 09:26:52 +02:00
Rigel Kent e78980ebd1 use focus-visible polyfill to improve keyboard navigation
Only the homepage is concerned, but it should have decent keyboard
navigation support now.
2018-09-11 10:58:48 +02:00
Jorropo b0c36821d1 Add video recomandation by tags (#1001)
* Recommendation by tags (thx bradsk88)

Thx bradsk88 for the help.

* Prefer jest-preset-angular to skip need for babel config

* Fix jest
2018-09-04 11:01:54 +02:00
Rigel Kent 2d9fea161f
watch view visual tweaks and search/comment placeholder dismiss on focus (#983)
- make the placeholder disappear on focus in the search bar
- make the placeholder disappear on focus in the comment textarea
- make the texarea resize automagically
- refactor the watch view to use bootstrap 4's flexgrid
- move action buttons of the watch view to the right of the video info
- responsive tweaks and margin adjustments in the watch view
2018-08-30 11:15:22 +02:00
Rigel Kent ee1fc23a87 keyboard shortcuts and key map view (#974) 2018-08-28 09:32:03 +02:00
Chocobozzz 52831c6fef
Upgrade client dependencies 2018-08-27 11:45:58 +02:00
Chocobozzz 63347a0ff9
Migrate to bootstrap 4 and ng-bootstrap 2018-08-09 14:55:06 +02:00
Chocobozzz b34a444e29
Upgrade to bootstrap 4 first step 2018-08-09 09:22:10 +02:00
Chocobozzz e80687c458
Upgrade client dependencies 2018-07-31 19:47:14 +02:00
Chocobozzz f771466891
Fix captions freeze on production 2018-07-27 12:03:27 +02:00
Chocobozzz 8ea021ef48
Upgrade mp4-box-encoding 2018-07-18 10:09:01 +02:00
Chocobozzz 20e6c7c941
Upgrade client dependencies 2018-07-17 10:25:09 +02:00
DeeJayBro 4503cb2a89 QR Code (#802)
Adding QR-Code to the Share modal.

fixes #683
2018-07-12 19:43:42 +02:00
Chocobozzz 3aa5cea8fe
Upgrade dependencies 2018-06-19 10:45:33 +02:00
Chocobozzz 4d089429fe
Remove uneeded rxjs-compat 2018-06-18 11:02:24 +02:00
Chocobozzz bbe0f0645c
Add ability to schedule video publication 2018-06-15 18:20:56 +02:00
Chocobozzz 989e526abf
Prepare i18n files 2018-06-05 08:43:01 +02:00
Chocobozzz 960a11e89d
Add context menu to player 2018-05-30 17:10:00 +02:00