diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c070d44f..e9236e46b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## v4.2.1 + +### IMPORTANT NOTES + + * If you upgrade from PeerTube **< 4.2.0**, please follow 4.2.0 IMPORTANT NOTES + +### Bug fixes + + * Fix live ending job that breaks new live session + * Fix search filters counter + * Fix upload banner icon margin + * Fix button icon margin + * Fix my import expander icon that should only be displayed on import error + * Fix select components styling inconsistency + * Increase max watch section to avoid too much warnings in server + * Optimize broadcast job creation + * Optimize `View` activities delivery using a dedicated broadcast job queue that can be run in parallel + * Fix video selection buttons placement + * Fix searching into account blocklist + * Fix incorrect instance stats + * Fix broken player on ICE error + * Relax views federation + + ## v4.2.0 ### IMPORTANT NOTES diff --git a/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss b/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss index b8e6136fb..fd8cd7ffc 100644 --- a/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss +++ b/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss @@ -15,6 +15,8 @@ my-actor-avatar { } .actor-info-display-name { + @include peertube-word-wrap; + font-size: 20px; font-weight: $font-bold; diff --git a/client/src/app/shared/shared-video-miniature/videos-selection.component.scss b/client/src/app/shared/shared-video-miniature/videos-selection.component.scss index 3bb375980..1827f25ef 100644 --- a/client/src/app/shared/shared-video-miniature/videos-selection.component.scss +++ b/client/src/app/shared/shared-video-miniature/videos-selection.component.scss @@ -9,6 +9,7 @@ .action-selection-mode-child { position: fixed; + display: flex; .action-button { @include margin-left(55px); diff --git a/client/src/standalone/videos/embed.html b/client/src/standalone/videos/embed.html index f30dda96b..eab6f81a6 100644 --- a/client/src/standalone/videos/embed.html +++ b/client/src/standalone/videos/embed.html @@ -67,7 +67,12 @@ if (placeholderPreview) placeholderPreview.style.display = 'none' } - window.onerror = function () { + window.onerror = function (msg) { + if (typeof msg === 'string' && msg.toLowerCase().includes(' ice ')) { + console.warn(msg) + return + } + window.displayIncompatibleBrowser() } diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 52007d212..f54ce9506 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -370,7 +370,7 @@ const CONSTRAINTS_FIELDS = { const VIEW_LIFETIME = { VIEW: CONFIG.VIEWS.VIDEOS.IP_VIEW_EXPIRATION, - VIEWER_COUNTER: 60000 * 1, // 1 minute + VIEWER_COUNTER: 60000 * 2, // 2 minutes VIEWER_STATS: 60000 * 60 // 1 hour } diff --git a/server/lib/views/shared/video-viewer-counters.ts b/server/lib/views/shared/video-viewer-counters.ts index 587621320..cf3fa5882 100644 --- a/server/lib/views/shared/video-viewer-counters.ts +++ b/server/lib/views/shared/video-viewer-counters.ts @@ -165,7 +165,7 @@ export class VideoViewerCounters { private async federateViewerIfNeeded (video: MVideoImmutable, viewer: Viewer) { // Federate the viewer if it's been a "long" time we did not const now = new Date().getTime() - const federationLimit = now - (VIEW_LIFETIME.VIEWER_COUNTER / 2) + const federationLimit = now - (VIEW_LIFETIME.VIEWER_COUNTER * 0.75) if (viewer.lastFederation && viewer.lastFederation > federationLimit) return diff --git a/server/models/account/account-blocklist.ts b/server/models/account/account-blocklist.ts index a7b8db076..377249b38 100644 --- a/server/models/account/account-blocklist.ts +++ b/server/models/account/account-blocklist.ts @@ -132,6 +132,20 @@ export class AccountBlocklistModel extends Model>> { } } - return UserModel.count(query) + return UserModel.unscoped().count(query) } - const totalUsers = await UserModel.count() + const totalUsers = await UserModel.unscoped().count() const totalDailyActiveUsers = await getActiveUsers(1) const totalWeeklyActiveUsers = await getActiveUsers(7) const totalMonthlyActiveUsers = await getActiveUsers(30) diff --git a/server/models/video/video-comment.ts b/server/models/video/video-comment.ts index 2d60c6a30..1d3178164 100644 --- a/server/models/video/video-comment.ts +++ b/server/models/video/video-comment.ts @@ -683,11 +683,11 @@ export class VideoCommentModel extends Model (options: ListBlocklistOptions, path: string) { - const { start, count, sort = '-createdAt' } = options + const { start, count, search, sort = '-createdAt' } = options return this.getRequestBody>({ ...options, path, - query: { start, count, sort }, + query: { start, count, sort, search }, implicitToken: true, defaultExpectedStatus: HttpStatusCode.OK_200 })