Commit Graph
49 Commits
Author SHA1 Message Date
kontrollantenandChocobozzz a37e9e74ff Give moderators access to edit channels (#4608)
* give admins access to edit all channels

closes #4598

* test(channels): +admin update another users channel

* Fix tests

* fix(server): delete another users channel

Since the channel owner isn't necessary the auth user we need to check
the right account whether it's the last video or not.

* REMOVE_ANY_VIDEO_CHANNEL > MANAGE_ANY_VIDEO_CHANNEL

Merge REMOVE_ANY_VIDEO_CHANNEL and MANY_VIDEO_CHANNELS to
MANAGE_ANY_VIDEO_CHANNEL.

* user-right: moderator can't manage admins channel

* client: MyVideoChannelCreateComponent > VideoChannelCreateComponent

* client: MyVideoChannelEdit > VideoChannelEdit

* Revert "user-right: moderator can't manage admins channel"

This reverts commit 2c627c154e.

* server: clean dupl validator functionality

* fix ensureUserCanManageChannel usage

It's not async anymore.

* server: merge channel validator middleares

ensureAuthUserOwnsChannelValidator & ensureUserCanManageChannel gets
merged into one middleware.

* client(VideoChannelEdit): redirect to prev route

* fix(VideoChannels): handle anon users

* client: new routes for create/update channel

* Refactor channel validators

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-12-13 15:29:13 +01:00
kontrollanten 875c402bab scripts/test: make MacOS compatible
man xargs:
     -r      Compatibility with GNU xargs.  The GNU version of xargs runs the utility argument at least once, even if xargs input is empty, and it supports a -r option to inhibit this
             behavior.  The FreeBSD version of xargs does not run the utility argument on empty input, but it supports the -r option for command-line compatibility with GNU xargs, but the
             -r option does nothing in the FreeBSD version of xargs.
2021-12-08 08:38:22 +01:00
kontrollantenandChocobozzz 28c6556789 add plugin selector to about/menu elements (#4597)
* add plugin selector to about/menu elements

closes #4586

* Update plugin selector names

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-12-03 10:47:47 +01:00
kontrollanten 5fc44b57f8 Add header Vary Accept-Language (#4588)
* nginx: add header Vary Accept-Language

solves #3647

* Revert "nginx: add header Vary Accept-Language"

This reverts commit 90dccf5324.

* add resp header Vary Accept-Language

solves #3647

* don't add vary header to embed page
2021-12-02 09:14:54 +01:00
kontrollanten 4e29f4fe23 video: add video stranscoding_failed state 2021-11-09 15:00:21 +01:00
kontrollantenandChocobozzz e1ab52d7ec Add migrate-to-object-storage script (#4481)
* add migrate-to-object-storage-script

closes #4467

* add migrate-to-unique-playlist-filenames script

* fix(migrate-to-unique-playlist-filenames): update master/segments256

run updateMasterHLSPlaylist and updateSha256VODSegments after
file rename.

* Improve move to object storage scripts

* PR remarks

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-11-09 11:05:35 +01:00
kontrollanten 7399a79f73 add option to always show channel display name (#4422)
* add option to always show channel display name

closes #4040

* show avatar in video miniatures

closes #4040

* Revert "show avatar in video miniatures"

This reverts commit 79b1a84140.

* channel display name: fix review comments
2021-10-12 14:23:44 +02:00
kontrollantenandChocobozzz c80e458afb extend client-overrides with default images (#4392)
* extend client-overrides with default images

Add:
* default-playlist.png
* default-avatar-account.png
* default-avatar-videochannel.png

solves #4108

* Rename to default-avatar-video-channel.png

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-10-12 13:50:40 +02:00
kontrollantenandChocobozzz c3bb04413e add ...playlist.elements.loaded hook (#4387)
* client: add ...playlist.elements.loaded hook

closes #4385

* fix linting error

* client: add playlist metadata to video-watch hooks

* Prefer using a filter for playlist elements hook

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-10-12 13:45:55 +02:00
kontrollanten 2a408c40a9 change audio label, 0p > Audio
Changes the audio label in the Download modal.
2021-07-12 15:34:32 +02:00
kontrollantenandChocobozzz e2e0b645cd Add video-playlist-element.created hook (#4196)
* add playlists.videos.list.params/results hooks

closes #4192

* Revert "add playlists.videos.list.params/results hooks"

This reverts commit ebd822ca0b.

* add video-playlist-element.created hook

closes #4192

* test: add playlist-element.created

* Fix tests

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-06-28 09:22:15 +02:00
kontrollanten 72f611ca15 add client hook filter:videojs.options
closes #4086
2021-06-14 13:35:48 +02:00
kontrollanten 732c95cc97 Show logo in mobile view (#4141)
* client: show logo in mobile view

* client(menu): add space between burger and logo
2021-05-31 16:39:07 +02:00
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
kontrollanten 66f77f6343 server: fix HLS playlist format
Remove prefixed comma when there's no video codec.
2021-05-06 08:47:43 +02:00
kontrollanten 0979075453 Use account initial as default avatar (#4002)
* client: use account initial as default avatar

* fix UI in user list

Avatars was cutted in the top and bottom
2021-04-27 16:08:10 +02:00
kontrollanten fbdcd4ec9f Add AccountAvatarComponent (#3965)
* refactor(client): create account-avatar component

* continue implement account-avatar

* fix review comments
2021-04-15 10:01:27 +02:00
kontrollanten ca87329289 Don't pause video upon modal open (#3909)
* client: dont pause video upon modal open

closes #3816

* client(video/watch): remove obsolete code

* gitignore: add vscode and vim swp files
2021-04-08 13:37:57 +02:00
kontrollanten 58b9ce3080 Resume videos for non-logged in users (#3885)
* client: resume videos for non-logged in users

closes #3866

* fix build for embeded

* Update client/src/app/app.component.ts

* fix review comments
2021-03-31 11:26:32 +02:00
kontrollantenandRigel Kent cf3c36247d show less information by default in download modal (#3890)
* client(video/download): collapse advanced informaton by default
* fix(client/video-dl): update metadata upon resolution change

closes #3810

Co-authored-by: Rigel Kent <par@rigelk.eu>
2021-03-29 13:51:33 +02:00
kontrollanten f076d49f37 script/upgrade: use db.name config value 2021-03-29 09:19:11 +02:00
kontrollanten 7bd455cb7f client(video/download): set direct dl as default 2021-03-24 18:18:41 +01:00
kontrollanten 6b1ef95699 Change copy icon (#3867)
* client: change copy icon to glypicon-duplicate

* client: add "copy" text to copy icons
2021-03-24 18:18:41 +01:00
kontrollanten 684cdacbbd client(hotkeys): remove seekstep VLC behavior
closes #2810
2021-02-16 10:37:01 +01:00
kontrollanten e0b5972167 client(hotkeys): tighten hotkey definitions 2021-02-16 10:37:01 +01:00
kontrollanten 68018040f2 localize decimal separator in video miniatures (#3643)
* fix(client): localize decimal separator

* fix(client/numpipe): handle Intl failure gently

* Revert "fix(client/numpipe): handle Intl failure gently"

This reverts commit e275049f1f.

* client: switch from Intl to ng formatNumber
2021-01-29 14:36:21 +01:00
kontrollanten 75dd1b641f chore: add manifest in light build 2021-01-13 09:10:52 +01:00
kontrollanten dfdd158a75 client: register service worker
closes #296
2021-01-13 09:10:52 +01:00
kontrollanten 0450fa8eb6 client: add iOS icon 2021-01-05 10:48:18 +01:00
kontrollanten 40c52969f7 emails: remove hardcoded PeerTube names 2020-12-14 15:37:29 +01:00
kontrollanten 2e4b8ae485 emailer: use instance name instead of hostname 2020-12-14 15:37:29 +01:00
kontrollanten 915e2bbb97 video embed: use instance name as html title 2020-12-14 15:25:51 +01:00
kontrollanten ecc69f6b9b video-embed: add standalone-video-embed CSS class
closes #3420
2020-12-14 15:25:51 +01:00
kontrollanten 2564d97e0d video-embed: inject custom CSS
closes #3420
2020-12-14 15:25:51 +01:00
kontrollanten b1771455af fix(notifier): notifyModeratorsOfNewAbuse
closes #3445
2020-12-14 09:34:47 +01:00
kontrollantenandRigel Kent fffc7c0864 add info about hostname change (#3434)
Co-authored-by: Rigel Kent <par@rigelk.eu>
2020-12-11 23:48:48 +01:00
kontrollanten e134eb03cb admin config: fix typo
https://www.grammarly.com/blog/know-your-latin-i-e-vs-e-g/
2020-12-11 10:38:15 +01:00
kontrollanten 2805cb7cb6 server/mw/oauth: res.loc.auth to true upon auth
Setting res.locals.authenticated explicity to
true makes it's more clear whether the req is
authenticated when using optionalAuthenticate
middlware.
2020-12-08 10:40:08 +01:00
kontrollanten f17faefb30 plugins: add optional authentication for routes 2020-12-08 10:40:08 +01:00
kontrollanten 1bfc07e4cc server accounts/videos: trigger filter hook 2020-12-08 10:33:23 +01:00
kontrollantenandRigel Kent 05e85b59c7 contributing documentation: add parallel as dependency (#3421)
Co-authored-by: Rigel Kent <par@rigelk.eu>
2020-12-07 21:27:25 +01:00
kontrollanten 77002f5291 wt-plugin: tighten sanity check 2020-12-07 16:52:35 +01:00
kontrollanten a325db1776 Revert "refactor(wt-plugin): create getVideoFile fn"
This reverts commit 9110f52c4f.
2020-12-07 16:52:35 +01:00
kontrollanten 8426a71144 Revert "refactor(wt-plugin): tighten TS definitions"
This reverts commit cdca521e15.
2020-12-07 16:52:35 +01:00
kontrollanten d94ca8d0b7 refactor(wt-plugin): tighten TS definitions 2020-12-07 16:52:35 +01:00
kontrollanten 46d992d208 refactor(wt-plugin): create getVideoFile fn 2020-12-07 16:52:35 +01:00
kontrollanten a5a69fc727 wt-plugin: clearify err msg 2020-12-07 16:52:35 +01:00
kontrollanten adc1f09c0d hls-plugin: destroy hls upon third err
According to hls.js docs `hls.destroy()` should be called
https://github.com/video-dev/hls.js/blob/master/docs/API.md#final-step-destroying-switching-between-streams
2020-12-07 08:59:08 +01:00
kontrollanten 09c55770bc register: hide channel step if upload quota is 0
fix #782
2020-12-03 09:54:41 +01:00