Commit Graph
100 Commits
Author SHA1 Message Date
kontrollanten b0fc3643be pass ip address to requires-approval.result hook 2026-04-13 09:56:57 +02:00
kontrollantenandChocobozzz 5a9c09be7f add filter:api.user.signup.requires-approval.result (#7446)
* add filter:api.user.signup.requires-approval.result

closes #6691

* update test

* signup: dont mark /registrations/request as deprecated

* fix broken tests

* changes after review

* Add offensive test for video filename check

* PR fixes

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2026-03-24 16:25:38 +01:00
kontrollanten 4b1922aad9 add filter:feed.videos.list.result hook
closes #7341
2025-12-22 16:20:46 +01:00
kontrollanten f07112109b client: dont use rel=ugc for plugins markdown
closes #6959
2025-05-09 11:58:39 +02:00
kontrollantenandChocobozzz a7be820abc add user agent video stats (#6871)
* add user agent video stats

closes #6832

* Disable indexes, support start/end dates

* move ua parsing to client

* Openapi, inline body request, update tests

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-04-07 10:29:59 +02:00
kontrollantenandChocobozzz 75d7c2a9dc add filter:email.template-path.result / filter:email.subject.result (#6876)
* add filter:email.template-path.result / filter:email.subject.result

closes #3392

* Remove juice

* Kill mock server

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-04-02 15:16:29 +02:00
kontrollanten ad746cd945 server: hide meta duration when duration is 0 2025-02-17 11:27:18 +01:00
kontrollanten 98adb32185 client: hide email uppercase warning
related to #6570
2025-02-03 08:56:46 +01:00
kontrollantenandChocobozzz 74b5096a64 Plugin support for sophisticated spam handling (#6692)
* feat(plugins): add filter:admin-user-list.bulk-actions.create.result

* feat(plugins): add filter:admin-user-moderation.actions.create.result

* feat(plugins): add filter:admin-comment-list.actions.create.result

* feat(plugin): add filter:admin-comment-list.bulk-actions.create.result

* feat(plugin): add filter:admin-abuse-list.actions.create.result

* feat(plugins): add doAction increment/decrement loader

Support for plugins to show application loader.

* feat(plugins): add doAction admin-user-list:load-data

* feat(plugins): add doAction admin-video-comment-list:load-data

* feat(plugins): add doAction admin-abuse-list:load-data

* feat(plugins): add doAction video-watch-comment-list:load-data

* cleanup and bug fixes

* fix(abuse-list-table): cleanup plugin action

* fixes after review

* UserListComponent: remove shortCacheObservable

* fix lint issues

* rename to admin-users-list:load-data

In order keep consistency with filter:admin-users-list.bulk-actions.create.result

* update plugin documentation

* move plugin actions to client-action.model.ts

* Styling

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-01-28 14:44:47 +01:00
kontrollantenandChocobozzz a51fb3f35e feat(API): permissive email check in login, reset & verification (#6648)
* feat(API): permissive email check in reset & verification

In order to not force users to be case sensitive when asking for
password reset or resend email verification. When there's multiple
emails where the only difference in the local is the capitalized
letters, in those cases the users has to be case sensitive.

closes #6570

* feat(API/login): permissive email handling

Allow case insensitive email when there's no other candidate.

closes #6570

* code review changes

* Fix tests

* Add more duplicate email checks

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-01-28 14:16:43 +01:00
kontrollanten 372e15eb49 fix(plugins/hooks): call user delete upon delete me
closes #6859
2025-01-28 09:39:30 +01:00
kontrollantenandChocobozzz 85969c5a67 client: add plugin support for external links (#6784)
* client: add plugin support for external links

* Styling

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-01-14 11:18:07 +01:00
kontrollantenandChocobozzz 3f30458c37 feat: plugin support to filter email addresses (#6752)
* feat: plugin support to filter email addresses

Add support for plugins to filter user email addresses.

* Add missing `totalNotDeletedComments` doc

* Styling

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-01-14 11:02:12 +01:00
kontrollantenandChocobozzz 41c70a6b35 Sitemap: Hide empty accounts/channels and add video tags (#6633)
* feat(sitemap): remove empty accounts/channels

closes #6607

* feat(sitemap): add more video tags

https://developers.google.com/search/docs/crawling-indexing/sitemaps/video-sitemaps

closes #6606

* Chunk videos SQL query

* Optimize SQL query

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-10-23 07:17:02 +02:00
kontrollanten 3c9d1ff5e3 client: extend logging
In able to make it easier to debug issues.
2024-06-28 09:21:45 +02:00
kontrollanten ab22399da0 feat(plugins/filter): add req to api.video.get.result 2024-06-21 07:01:02 +02:00
kontrollantenandChocobozzz ca26687e1f feat: config option object_storage.max_request_attempts (#6418)
* feat: config option object_storage.max_attempts

Backblaze recommends to have a high amount of attempts since they've
designed their architecture so that it will return 5xx errors to
indicate that the client should do a new attempt.

https://www.backblaze.com/blog/b2-503-500-server-error/

closes #6415

* Rephrase comment

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-06-11 13:57:18 +02:00
kontrollanten eb51d65448 fix(client/plugins): getUser returns MyUser
Avoid exposing AuthUser as external API.
2024-05-17 10:50:52 +02:00
kontrollanten 8624325523 feat(client/plugins): add getUser to helpers
Let plugins access the user object.

closes #6355
2024-05-17 10:50:52 +02:00
kontrollanten 1eb8fc2c06 fix(server/plugins): avoid duplicate settings
Filter settings so that the name property is unique.

closes #6356
2024-05-17 10:43:47 +02:00
kontrollanten 5dfa07adb5 fix(server/geo-ip): throttle db download 2024-05-17 09:42:25 +02:00
kontrollanten 2177995056 feat(server): dont client cache HTML files
Tell the clients to not cache the HTML response.

closes #6393
2024-05-13 11:17:50 +02:00
kontrollanten 6f6abcabfb feat(plugins): add peertubeHelpers.loadByIdOrUUIDWithFiles (#6302) 2024-04-04 08:20:09 +02:00
kontrollantenandChocobozzz cd42491cf0 feat: add support for sub routes under /my-account (#6218)
* feat: add support for sub routes under /my-account

closes #6217

* feat(plugins/client-routes): page titles

Add support for adding custom page titles in client routes.

* fix(client/PluginPages): reload component upon URL change

* Styling

* docs(plugins): update registerClientRoute

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-04-04 08:17:59 +02:00
kontrollanten 1b323f4f65 feat(plugins): add req.rawBody for routes
Stripe webhooks endpoints requires to read the raw request body.
https://docs.stripe.com/webhooks#verify-webhook-signatures-with-official-libraries
2024-04-02 11:06:34 +02:00
kontrollanten aaa5acbb0c feat(plugins): add filter:api.user.me.get.result
relates to #6219
2024-03-27 13:32:53 +01:00
kontrollantenandChocobozzz 26de1467e2 fix(server/video-view): log invalid currentTime req (#6288)
* fix(server/video-view): log invalid currentTime req

relates to #6285

* Styling

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-03-26 17:08:15 +01:00
kontrollanten ae31e90c30 feat(server): log rate limit exceeded 2024-03-15 14:56:46 +01:00
kontrollanten 29873257e7 fix(server): cleanup db connections upon exit 2024-03-11 08:00:53 +01:00
kontrollantenandChocobozzz 674f8ddd41 feat(server): add redis sentinel support (#5593)
* feat(server): add redis sentinel support

closes #5141

* Styling

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2023-05-10 09:52:50 +02:00
kontrollanten 6f640ccb48 fix(object-storage-proxy): set content-range 2023-03-22 07:35:36 +01:00
kontrollanten e72ace5a50 Handle redis disconnection gracefully (#5599)
* feat(server/api/contact): handle redis disconnection

* feat(server/api/metrics): handle metrics disabled
2023-03-14 08:50:44 +01:00
kontrollanten 0e08a5e749 feat(player/playbackRate): set rate with url param 2022-12-29 08:38:18 +01:00
kontrollanten 1f3198444f Log HLS fatal error with error label (#5484)
* fix(client/p2p-media-loader): logg err upon fatal

* feat(client/p2p-media-loader): err log currentTime
2022-12-29 08:35:41 +01:00
kontrollanten 564b9b5597 refactor(server): redis > ioredis (#5371)
* refactor(server): redis > ioredis

* refactor(JobQueue): reuse redis connection builder

* fix(redisio)

* fix(redis): setValue

* feat(redis): showFriendlyErrorStack

* feat(redis): auto pipelining

https://github.com/luin/ioredis/blob/308017a6b9429c16b074e03e70f5524499476fa9/README.md#autopipelining

* dont use autopipelining for bullmq

* ioredis events
2022-11-14 16:26:20 +01:00
kontrollantenandChocobozzz 38a3ccc7f8 feat: show contained playlists under My videos (#5125)
* feat: show contained playlists under My videos

closes #4769

* refactor(server): remove unused types

* fixes after code review

* fix(client/video-miniature): add to playlist

* fix(server/user/me): shortUUID response

* Revert "fix(client/video-miniature): add to playlist"

This reverts commit f1a0412391.

* fix(client/PlaylistService): caching

* Revert "fix(server/user/me): shortUUID response"

This reverts commit e3f1ee4e33.

* Fix fetching playlists

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-10-24 14:48:03 +02:00
kontrollanten 9866921cbf feat(plugins): add p2p-media-loader options filter (#5318)
* feat(plugins): add p2p-media-loader options filter

closes #5317

* remove obsolete await
2022-10-11 08:37:14 +02:00
kontrollanten c43ed8e862 Expose PeerTube socket to plugins (#5239)
* server(pluginHelpers): add socket

* test(plugins): add socket cases

* fixes after review

* Update plugin-helpers.ts

* Update plugin-helpers.ts
2022-10-10 15:18:31 +02:00
kontrollantenandChocobozzz 6c5f0d3aeb server: serve files from storage/well-known (#5214)
* server: serve files from storage/well-known

closes #5206

* well-known: add tests

* test: try to skip new tests

* test: another try

* fix(config/prod): well_known path

* test: fix broken tests

* Update misc-endpoints.ts

* Use getDirectoryPath for tests

* Fix tests

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-10-04 10:53:00 +02:00
kontrollanten f2a16d93b4 Handle network issues in video player (#5138)
* feat(client/player): handle network offline

* feat(client/player): human friendly err msg

* feat(client/player): handle broken resolutions

When an error occurs for a resolution, remove the resolution and try
with another resolution.

* fix(client/player): prevent err handl when offline

* fix(client/player): localize offline text
2022-09-28 11:52:23 +02:00
kontrollanten c482d2b7a6 feat(client/PageNotFound): mascot margin 2022-07-08 10:58:04 +02:00
kontrollanten 9469783d43 feat: custom msg upon 401 response
closes #4768
2022-07-08 10:58:04 +02:00
kontrollantenandChocobozzz a28b0f696c fix(client/AbuseDetails): infinite update loop (#5109)
* fix(client/AbuseDetails): infinite update loop

* Abuse may not have predefined reasons

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-07-08 10:57:29 +02:00
kontrollantenandChocobozzz f8b4a71d42 hooks filter:api.my-lib.playlist-elems.get.* (#5098)
* hooks filter:api.my-lib.playlist-elems.get.*

closes #4776

* Introduce my-library plugin scope

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-07-08 10:50:10 +02:00
kontrollantenandChocobozzz 2e401e8575 store uploaded video filename (#4885)
* store uploaded video filename

closes #4731

* dont crash if videos channel exist

* migration: use raw query

* video source: fixes after code review

* cleanup

* bump migration

* updates after code review

* refactor: use checkUserCanManageVideo

* videoSource: add openapi doc

* test(check-params/video-source): fix timeout

* Styling

* Correctly set original filename as source

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-06-21 15:31:25 +02:00
kontrollantenandChocobozzz 156cdbac22 object-storage: @aws-sdk/lib-storage for multipart (#4903)
* object-storage: @aws-sdk/lib-storage for multipart

* gitignore: add .DS_Store

* test(object-storage): remove only

* test(object-storage/multipart): generate video

* fix lint issue

* test(obj-storage/video): ensure file size

* Styling

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-04-19 15:22:18 +02:00
kontrollantenandChocobozzz 72dd3a7c26 Fix titles on upload page (#4904)
* client/video-add: fix route titles

* client/video-add: show progress in page title

* Styling

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-04-08 11:14:12 +02:00
kontrollanten 60233e90d2 add client.videos.upload.maxChunkSize config (#4857)
* add client.videos.upload.maxChunkSize config

* updates after review

* remove maxChunkSize from custom-config
2022-03-16 10:57:36 +01:00
kontrollanten 2c102aac13 Display avatar in video miniatures (#4823)
* show avatar in video miniatures

closes #4040

* fix: videos for api, include avatars

* add config for display video miniature avatar

* Revert "fix: videos for api, include avatars"

This reverts commit 5520a3eda6.

* video-min: set display avatar to false as default

* remove empty line

* rename display_avatar > display_author_avatar

* fix renaming displayAvatar > displayAuthorAvatar
2022-03-08 13:39:27 +01:00
kontrollanten 8d07888728 Possibility to set custom RTMP/RTMPS hostname (#4811)
* live: set custom RTMP/RTMPS hostname

closes #4786

* dont use webserver.hostname as default

* check that rtmp/s.hostname is set
2022-03-01 13:37:34 +01:00
kontrollanten c5ca7e1e0c add filter:api.video-playlist.videos.list.* hooks
closes #4775
2022-02-28 10:56:37 +01:00
kontrollantenandChocobozzz d0800f7661 Implement avatar miniatures (#4639)
* client: remove unused file

* refactor(client/my-actor-avatar): size from input

Read size from component input instead of scss, to make it possible to
use smaller avatar images when implemented.

* implement avatar miniatures

close #4560

* fix(test): max file size

* fix(search-index): normalize res acc to avatarMini

* refactor avatars to an array

* client/search: resize channel avatar to 120

* refactor(client/videos): remove unused function

* client(actor-avatar): set default size

* fix tests and avatars full result

When findOne is used only an array containting one avatar is returned.

* update migration version and version notations

* server/search: harmonize normalizing

* Cleanup avatar miniature PR

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-02-28 08:34:43 +01:00
kontrollanten af6b45e5d9 client: show private badge in playlists
closes #2601
2022-02-07 11:24:35 +01:00
kontrollanten 692a231026 video-playlist: show date and views count
closes #4396
2022-02-03 10:38:47 +01:00
kontrollantenandChocobozzz 038e1f3de5 Add refresh button to admin > video list (#4753)
* feat(client/video-list): add refresh btn

* CSS styling

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-02-01 14:47:36 +01:00
kontrollanten c333ec098d menu: hide undefined icons
Hide my-global-icon when custom menu items are added without icon property.
2022-01-15 09:34:58 +01:00
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