From 109e93c139d87fb73d7bd9597852ac5f856b8018 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 26 Feb 2024 14:33:22 +0100 Subject: [PATCH] Generate 600x600 and 1500x1500 avatars --- .../actor-avatar.component.ts | 2 +- .../src/server/config-command.ts | 10 ++++++++ .../fixtures/avatar-resized-1500x1500.png | Bin 0 -> 77070 bytes .../tests/fixtures/avatar-resized-600x600.png | Bin 0 -> 20543 bytes .../fixtures/avatar2-resized-1500x1500.png | Bin 0 -> 81852 bytes .../fixtures/avatar2-resized-600x600.png | Bin 0 -> 22159 bytes packages/tests/src/api/server/config.ts | 4 +-- packages/tests/src/api/users/index.ts | 2 +- packages/tests/src/api/users/user-export.ts | 4 +-- packages/tests/src/api/users/user-import.ts | 9 ++++--- packages/tests/src/api/users/users.ts | 12 ++++++--- .../tests/src/api/videos/multiple-servers.ts | 6 ++--- .../tests/src/api/videos/video-comments.ts | 6 ++--- packages/tests/src/cli/prune-storage.ts | 2 +- packages/tests/src/shared/checks.ts | 23 +++++++++++++----- packages/tests/src/shared/import-export.ts | 10 ++++++-- packages/tests/src/shared/notifications.ts | 2 +- server/core/helpers/image-utils.ts | 16 +++++++++--- server/core/initializers/constants.ts | 8 ++++++ 19 files changed, 83 insertions(+), 33 deletions(-) create mode 100644 packages/tests/fixtures/avatar-resized-1500x1500.png create mode 100644 packages/tests/fixtures/avatar-resized-600x600.png create mode 100644 packages/tests/fixtures/avatar2-resized-1500x1500.png create mode 100644 packages/tests/fixtures/avatar2-resized-600x600.png diff --git a/client/src/app/shared/shared-actor-image/actor-avatar.component.ts b/client/src/app/shared/shared-actor-image/actor-avatar.component.ts index e8e9b5018..4fd196ad6 100644 --- a/client/src/app/shared/shared-actor-image/actor-avatar.component.ts +++ b/client/src/app/shared/shared-actor-image/actor-avatar.component.ts @@ -21,7 +21,7 @@ export class ActorAvatarComponent implements OnInit, OnChanges { @Input() previewImage: string - @Input({ transform: numberAttribute }) size: number + @Input({ transform: numberAttribute }) size = 120 // Use an external link @Input() href: string diff --git a/packages/server-commands/src/server/config-command.ts b/packages/server-commands/src/server/config-command.ts index 3a550eb55..cd3fc6f44 100644 --- a/packages/server-commands/src/server/config-command.ts +++ b/packages/server-commands/src/server/config-command.ts @@ -30,6 +30,16 @@ export class ConfigCommand extends AbstractCommand { } } + static getDisableRatesLimitOverrideConfig () { + return { + rates_limit: { + api: { + max: 5000 + } + } + } + } + // --------------------------------------------------------------------------- enableSignup (requiresApproval: boolean, limit = -1) { diff --git a/packages/tests/fixtures/avatar-resized-1500x1500.png b/packages/tests/fixtures/avatar-resized-1500x1500.png new file mode 100644 index 0000000000000000000000000000000000000000..97135debd6dc24e6822871f8f83100af42220e8f GIT binary patch literal 77070 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 AYXATM literal 0 HcmV?d00001 diff --git a/packages/tests/fixtures/avatar-resized-600x600.png b/packages/tests/fixtures/avatar-resized-600x600.png new file mode 100644 index 0000000000000000000000000000000000000000..2e42135ee7febc8136cf496c1eda667f3a25cc62 GIT binary patch literal 20543 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 S_>Tb}@^D|I%bT|{;eP;!F>tB? literal 0 HcmV?d00001 diff --git a/packages/tests/fixtures/avatar2-resized-1500x1500.png b/packages/tests/fixtures/avatar2-resized-1500x1500.png new file mode 100644 index 0000000000000000000000000000000000000000..29ac06245f91d8ff8526d2f83c4bdff15a5ea547 GIT binary patch literal 81852 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 I`}_C*e~8~4asU7T literal 0 HcmV?d00001 diff --git a/packages/tests/fixtures/avatar2-resized-600x600.png b/packages/tests/fixtures/avatar2-resized-600x600.png new file mode 100644 index 0000000000000000000000000000000000000000..95ee56fa4c2ff0e2b8cbdd0e071a29a561e095b2 GIT binary patch literal 22159 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 a.url) @@ -627,7 +627,7 @@ function runTest (withObjectStorage: boolean) { // PeerTube format { const json = await parseZIPJSONFile(zip, 'peertube/account.json') - expect(json.avatars).to.have.lengthOf(2) + expect(json.avatars).to.have.lengthOf(4) for (const avatar of json.avatars) { await makeRawRequest({ url: avatar.url, expectedStatus: HttpStatusCode.OK_200 }) diff --git a/packages/tests/src/api/users/user-import.ts b/packages/tests/src/api/users/user-import.ts index aad6b2898..798d04220 100644 --- a/packages/tests/src/api/users/user-import.ts +++ b/packages/tests/src/api/users/user-import.ts @@ -21,7 +21,7 @@ import { areMockObjectStorageTestsDisabled } from '@peertube/peertube-node-utils import { writeFile } from 'fs/promises' import { join } from 'path' import { expect } from 'chai' -import { testImage, testImageSize } from '@tests/shared/checks.js' +import { testImage, testAvatarSize } from '@tests/shared/checks.js' import { completeVideoCheck } from '@tests/shared/videos.js' import { completeCheckHlsPlaylist } from '@tests/shared/streaming-playlists.js' @@ -84,7 +84,7 @@ function runTest (withObjectStorage: boolean) { } // Add avatars - await server.users.updateMyAvatar({ token: noahToken, fixture: 'avatar.gif' }) + await server.users.updateMyAvatar({ token: noahToken, fixture: 'avatar.png' }) // Add password protected video await server.videos.upload({ @@ -168,9 +168,10 @@ function runTest (withObjectStorage: boolean) { expect(me.account.displayName).to.equal('noah') expect(me.username).to.equal('noah_remote') expect(me.account.description).to.equal('super noah description') + expect(me.account.avatars).to.have.lengthOf(4) for (const avatar of me.account.avatars) { - await testImageSize(remoteServer.url, `avatar-resized-${avatar.width}x${avatar.width}`, avatar.path, '.gif') + await testAvatarSize({ url: remoteServer.url, avatar, imageName: `avatar-resized-${avatar.width}x${avatar.width}` }) } }) @@ -482,7 +483,7 @@ function runTest (withObjectStorage: boolean) { // My avatars { const me = await remoteServer.users.getMyInfo({ token: remoteNoahToken }) - expect(me.account.avatars).to.have.lengthOf(2) + expect(me.account.avatars).to.have.lengthOf(4) } // Channels diff --git a/packages/tests/src/api/users/users.ts b/packages/tests/src/api/users/users.ts index cf26f444c..af4f19340 100644 --- a/packages/tests/src/api/users/users.ts +++ b/packages/tests/src/api/users/users.ts @@ -1,9 +1,13 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ import { expect } from 'chai' -import { testImageSize } from '@tests/shared/checks.js' +import { testAvatarSize } from '@tests/shared/checks.js' import { AbuseState, HttpStatusCode, UserAdminFlag, UserRole, VideoPlaylistType } from '@peertube/peertube-models' -import { cleanupTests, createSingleServer, PeerTubeServer, setAccessTokensToServers } from '@peertube/peertube-server-commands' +import { + cleanupTests, + createSingleServer, PeerTubeServer, + setAccessTokensToServers +} from '@peertube/peertube-server-commands' describe('Test users', function () { let server: PeerTubeServer @@ -264,7 +268,7 @@ describe('Test users', function () { const user = await server.users.getMyInfo({ token: userToken }) for (const avatar of user.account.avatars) { - await testImageSize(server.url, `avatar-resized-${avatar.width}x${avatar.width}`, avatar.path, '.gif') + await testAvatarSize({ url: server.url, avatar, imageName: `avatar-resized-${avatar.width}x${avatar.width}` }) } }) @@ -276,7 +280,7 @@ describe('Test users', function () { const user = await server.users.getMyInfo({ token: userToken }) for (const avatar of user.account.avatars) { - await testImageSize(server.url, `avatar-resized-${avatar.width}x${avatar.width}`, avatar.path, extension) + await testAvatarSize({ url: server.url, avatar, imageName: `avatar-resized-${avatar.width}x${avatar.width}` }) } } }) diff --git a/packages/tests/src/api/videos/multiple-servers.ts b/packages/tests/src/api/videos/multiple-servers.ts index 5073e3129..6c62a1d95 100644 --- a/packages/tests/src/api/videos/multiple-servers.ts +++ b/packages/tests/src/api/videos/multiple-servers.ts @@ -131,13 +131,13 @@ describe('Test multiple servers', function () { await completeVideoCheck({ server, originServer: servers[0], videoUUID: video.uuid, attributes: checkAttributes }) publishedAt = video.publishedAt as string - expect(video.channel.avatars).to.have.lengthOf(2) - expect(video.account.avatars).to.have.lengthOf(2) + expect(video.channel.avatars).to.have.lengthOf(4) + expect(video.account.avatars).to.have.lengthOf(4) for (const image of [ ...video.channel.avatars, ...video.account.avatars ]) { expect(image.createdAt).to.exist expect(image.updatedAt).to.exist - expect(image.width).to.be.above(20).and.below(1000) + expect(image.width).to.be.above(20).and.below(2000) expect(image.path).to.exist await makeGetRequest({ diff --git a/packages/tests/src/api/videos/video-comments.ts b/packages/tests/src/api/videos/video-comments.ts index f17db9979..7b21287e4 100644 --- a/packages/tests/src/api/videos/video-comments.ts +++ b/packages/tests/src/api/videos/video-comments.ts @@ -257,7 +257,7 @@ describe('Test video comments', function () { expect(data[0].text).to.equal('my second answer to thread 4') expect(data[0].account.name).to.equal('root') expect(data[0].account.displayName).to.equal('root') - expect(data[0].account.avatars).to.have.lengthOf(2) + expect(data[0].account.avatars).to.have.lengthOf(4) } { @@ -266,8 +266,8 @@ describe('Test video comments', function () { expect(total).to.equal(7) expect(data).to.have.lengthOf(2) - expect(data[0].account.avatars).to.have.lengthOf(2) - expect(data[1].account.avatars).to.have.lengthOf(2) + expect(data[0].account.avatars).to.have.lengthOf(4) + expect(data[1].account.avatars).to.have.lengthOf(4) } }) diff --git a/packages/tests/src/cli/prune-storage.ts b/packages/tests/src/cli/prune-storage.ts index c07a2a975..f3d7d19f2 100644 --- a/packages/tests/src/cli/prune-storage.ts +++ b/packages/tests/src/cli/prune-storage.ts @@ -46,7 +46,7 @@ async function assertCountAreOkay (servers: PeerTubeServer[]) { expect(thumbnailsCount).to.equal(5) // 3 local videos, 1 local playlist, 2 remotes videos (lazy downloaded) and 1 remote playlist const avatarsCount = await server.servers.countFiles('avatars') - expect(avatarsCount).to.equal(4) + expect(avatarsCount).to.equal(8) const hlsRootCount = await server.servers.countFiles(join('streaming-playlists', 'hls')) expect(hlsRootCount).to.equal(3) // 2 videos + private directory diff --git a/packages/tests/src/shared/checks.ts b/packages/tests/src/shared/checks.ts index fea618a30..0f1d9d02e 100644 --- a/packages/tests/src/shared/checks.ts +++ b/packages/tests/src/shared/checks.ts @@ -3,7 +3,7 @@ import { expect } from 'chai' import { pathExists } from 'fs-extra/esm' import { readFile } from 'fs/promises' -import { join } from 'path' +import { join, parse } from 'path' import { HttpStatusCode } from '@peertube/peertube-models' import { buildAbsoluteFixturePath } from '@peertube/peertube-node-utils' import { makeGetRequest, PeerTubeServer } from '@peertube/peertube-server-commands' @@ -42,14 +42,25 @@ async function expectLogContain (server: PeerTubeServer, str: string) { expect(content.toString()).to.contain(str) } -async function testImageSize (url: string, imageName: string, imageHTTPPath: string, extension = '.jpg') { - const res = await makeGetRequest({ +async function testAvatarSize (options: { + url: string + imageName: string + avatar: { + width: number + path: string + } +}) { + const { url, imageName, avatar } = options + + const { body } = await makeGetRequest({ url, - path: imageHTTPPath, + path: avatar.path, expectedStatus: HttpStatusCode.OK_200 }) - const body = res.body + const extension = parse(avatar.path).ext + // We don't test big GIF avatars + if (extension === '.gif' && avatar.width > 150) return const data = await readFile(buildAbsoluteFixturePath(imageName + extension)) const minLength = data.length - ((40 * data.length) / 100) @@ -162,7 +173,7 @@ async function checkVideoDuration (server: PeerTubeServer, videoUUID: string, du export { dateIsValid, testImageGeneratedByFFmpeg, - testImageSize, + testAvatarSize, testImage, expectLogDoesNotContain, testFileExistsOrNot, diff --git a/packages/tests/src/shared/import-export.ts b/packages/tests/src/shared/import-export.ts index 2c42aa264..a620a7032 100644 --- a/packages/tests/src/shared/import-export.ts +++ b/packages/tests/src/shared/import-export.ts @@ -127,9 +127,15 @@ export async function prepareImportExportTests (options: { const emailPort = await MockSmtpServer.Instance.collectEmails(emails) + const overrideConfig = { + ...objectStorageConfig, + ...ConfigCommand.getEmailOverrideConfig(emailPort), + ...ConfigCommand.getDisableRatesLimitOverrideConfig() + } + const [ server, remoteServer, blockedServer ] = await Promise.all([ - createSingleServer(1, { ...objectStorageConfig, ...ConfigCommand.getEmailOverrideConfig(emailPort) }), - createSingleServer(2, { ...objectStorageConfig, ...ConfigCommand.getEmailOverrideConfig(emailPort) }), + createSingleServer(1, overrideConfig), + createSingleServer(2, overrideConfig), withBlockedServer ? createSingleServer(3) diff --git a/packages/tests/src/shared/notifications.ts b/packages/tests/src/shared/notifications.ts index be471163b..c3612f790 100644 --- a/packages/tests/src/shared/notifications.ts +++ b/packages/tests/src/shared/notifications.ts @@ -933,7 +933,7 @@ function checkActor (actor: any, options: { withAvatar?: boolean } = {}) { if (withAvatar) { expect(actor.avatars).to.be.an('array') - expect(actor.avatars).to.have.lengthOf(2) + expect(actor.avatars).to.have.lengthOf(4) expect(actor.avatars[0].path).to.exist.and.not.empty } } diff --git a/server/core/helpers/image-utils.ts b/server/core/helpers/image-utils.ts index e8c637e2a..9a99dffc9 100644 --- a/server/core/helpers/image-utils.ts +++ b/server/core/helpers/image-utils.ts @@ -31,7 +31,7 @@ export async function processImage (options: { if (extension === '.gif') { await processGIF({ path, destination, newSize }) } else { - await jimpProcessor(path, destination, newSize, extension) + await jimpProcessor({ path, destination, newSize, inputExt: extension }) } if (keepOriginal !== true) await remove(path) @@ -56,7 +56,17 @@ export async function getImageSize (path: string) { // Private // --------------------------------------------------------------------------- -async function jimpProcessor (path: string, destination: string, newSize: { width: number, height: number }, inputExt: string) { +async function jimpProcessor (options: { + path: string + destination: string + newSize: { + width: number + height: number + } + inputExt: string +}) { + const { path, destination, newSize, inputExt } = options + let sourceImage: Jimp const inputBuffer = await readFile(path) @@ -125,7 +135,7 @@ function skipProcessing (options: { const { width, height } = newSize if (hasExif(sourceImage)) return false - if (sourceImage.getWidth() > width || sourceImage.getHeight() > height) return false + if (sourceImage.getWidth() !== width || sourceImage.getHeight() !== height) return false if (inputExt !== outputExt) return false const kB = 1000 diff --git a/server/core/initializers/constants.ts b/server/core/initializers/constants.ts index 26d9bc115..0fb0710aa 100644 --- a/server/core/initializers/constants.ts +++ b/server/core/initializers/constants.ts @@ -882,6 +882,14 @@ const PREVIEWS_SIZE = { } const ACTOR_IMAGES_SIZE: { [key in ActorImageType_Type]: { width: number, height: number }[] } = { [ActorImageType.AVATAR]: [ + { + width: 1500, + height: 1500 + }, + { + width: 600, + height: 600 + }, { width: 120, height: 120