diff options
author | kontrollanten <6680299+kontrollanten@users.noreply.github.com> | 2022-02-28 08:34:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-28 08:34:43 +0100 |
commit | d0800f7661f13fabe7bb6f4aa0ea50764f106405 (patch) | |
tree | d43e6b0b6f4a5a32e03487e6464edbcaf288be2a /support | |
parent | 5cad2ca9db9b9d138f8a33058d10b94a9fd50c69 (diff) | |
download | PeerTube-d0800f7661f13fabe7bb6f4aa0ea50764f106405.tar.gz PeerTube-d0800f7661f13fabe7bb6f4aa0ea50764f106405.tar.zst PeerTube-d0800f7661f13fabe7bb6f4aa0ea50764f106405.zip |
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>
Diffstat (limited to 'support')
-rw-r--r-- | support/doc/api/openapi.yaml | 131 | ||||
-rw-r--r-- | support/nginx/peertube | 2 |
2 files changed, 69 insertions, 64 deletions
diff --git a/support/doc/api/openapi.yaml b/support/doc/api/openapi.yaml index 396074225..70f2d97f5 100644 --- a/support/doc/api/openapi.yaml +++ b/support/doc/api/openapi.yaml | |||
@@ -1556,8 +1556,10 @@ paths: | |||
1556 | schema: | 1556 | schema: |
1557 | type: object | 1557 | type: object |
1558 | properties: | 1558 | properties: |
1559 | avatar: | 1559 | avatars: |
1560 | $ref: '#/components/schemas/ActorImage' | 1560 | type: array |
1561 | items: | ||
1562 | $ref: '#/components/schemas/ActorImage' | ||
1561 | '413': | 1563 | '413': |
1562 | description: image file too large | 1564 | description: image file too large |
1563 | headers: | 1565 | headers: |
@@ -2878,7 +2880,7 @@ paths: | |||
2878 | type: object | 2880 | type: object |
2879 | properties: | 2881 | properties: |
2880 | id: | 2882 | id: |
2881 | $ref: '#/components/schemas/VideoChannel/properties/id' | 2883 | $ref: '#/components/schemas/id' |
2882 | requestBody: | 2884 | requestBody: |
2883 | content: | 2885 | content: |
2884 | application/json: | 2886 | application/json: |
@@ -3010,8 +3012,10 @@ paths: | |||
3010 | schema: | 3012 | schema: |
3011 | type: object | 3013 | type: object |
3012 | properties: | 3014 | properties: |
3013 | avatar: | 3015 | avatars: |
3014 | $ref: '#/components/schemas/ActorImage' | 3016 | type: array |
3017 | items: | ||
3018 | $ref: '#/components/schemas/ActorImage' | ||
3015 | '413': | 3019 | '413': |
3016 | description: image file too large | 3020 | description: image file too large |
3017 | headers: | 3021 | headers: |
@@ -3064,8 +3068,10 @@ paths: | |||
3064 | schema: | 3068 | schema: |
3065 | type: object | 3069 | type: object |
3066 | properties: | 3070 | properties: |
3067 | banner: | 3071 | banners: |
3068 | $ref: '#/components/schemas/ActorImage' | 3072 | type: array |
3073 | items: | ||
3074 | $ref: '#/components/schemas/ActorImage' | ||
3069 | '413': | 3075 | '413': |
3070 | description: image file too large | 3076 | description: image file too large |
3071 | headers: | 3077 | headers: |
@@ -5364,10 +5370,10 @@ components: | |||
5364 | host: | 5370 | host: |
5365 | type: string | 5371 | type: string |
5366 | format: hostname | 5372 | format: hostname |
5367 | avatar: | 5373 | avatars: |
5368 | nullable: true | 5374 | type: array |
5369 | allOf: | 5375 | items: |
5370 | - $ref: '#/components/schemas/ActorImage' | 5376 | $ref: '#/components/schemas/ActorImage' |
5371 | VideoChannelSummary: | 5377 | VideoChannelSummary: |
5372 | properties: | 5378 | properties: |
5373 | id: | 5379 | id: |
@@ -5382,10 +5388,10 @@ components: | |||
5382 | host: | 5388 | host: |
5383 | type: string | 5389 | type: string |
5384 | format: hostname | 5390 | format: hostname |
5385 | avatar: | 5391 | avatars: |
5386 | nullable: true | 5392 | type: array |
5387 | allOf: | 5393 | items: |
5388 | - $ref: '#/components/schemas/ActorImage' | 5394 | $ref: '#/components/schemas/ActorImage' |
5389 | PlaylistElement: | 5395 | PlaylistElement: |
5390 | properties: | 5396 | properties: |
5391 | position: | 5397 | position: |
@@ -5969,6 +5975,8 @@ components: | |||
5969 | properties: | 5975 | properties: |
5970 | path: | 5976 | path: |
5971 | type: string | 5977 | type: string |
5978 | width: | ||
5979 | type: integer | ||
5972 | createdAt: | 5980 | createdAt: |
5973 | type: string | 5981 | type: string |
5974 | format: date-time | 5982 | format: date-time |
@@ -5986,12 +5994,10 @@ components: | |||
5986 | host: | 5994 | host: |
5987 | type: string | 5995 | type: string |
5988 | format: hostname | 5996 | format: hostname |
5989 | avatar: | 5997 | avatars: |
5990 | nullable: true | 5998 | type: array |
5991 | type: object | 5999 | items: |
5992 | properties: | 6000 | $ref: '#/components/schemas/ActorImage' |
5993 | path: | ||
5994 | type: string | ||
5995 | Actor: | 6001 | Actor: |
5996 | properties: | 6002 | properties: |
5997 | id: | 6003 | id: |
@@ -6024,8 +6030,6 @@ components: | |||
6024 | updatedAt: | 6030 | updatedAt: |
6025 | type: string | 6031 | type: string |
6026 | format: date-time | 6032 | format: date-time |
6027 | avatar: | ||
6028 | $ref: '#/components/schemas/ActorImage' | ||
6029 | Account: | 6033 | Account: |
6030 | allOf: | 6034 | allOf: |
6031 | - $ref: '#/components/schemas/Actor' | 6035 | - $ref: '#/components/schemas/Actor' |
@@ -6934,7 +6938,7 @@ components: | |||
6934 | name: | 6938 | name: |
6935 | $ref: '#/components/schemas/usernameChannel' | 6939 | $ref: '#/components/schemas/usernameChannel' |
6936 | displayName: | 6940 | displayName: |
6937 | $ref: '#/components/schemas/VideoChannel/properties/displayName' | 6941 | type: string |
6938 | required: | 6942 | required: |
6939 | - username | 6943 | - username |
6940 | - password | 6944 | - password |
@@ -6996,46 +7000,47 @@ components: | |||
6996 | - refresh_token | 7000 | - refresh_token |
6997 | 7001 | ||
6998 | VideoChannel: | 7002 | VideoChannel: |
6999 | properties: | 7003 | allOf: |
7000 | # GET/POST/PUT properties | 7004 | - $ref: '#/components/schemas/Actor' |
7001 | displayName: | 7005 | - type: object |
7002 | type: string | ||
7003 | description: editable name of the channel, displayed in its representations | ||
7004 | example: Videos of Framasoft | ||
7005 | minLength: 1 | ||
7006 | maxLength: 120 | ||
7007 | description: | ||
7008 | type: string | ||
7009 | example: Videos made with <3 by Framasoft | ||
7010 | minLength: 3 | ||
7011 | maxLength: 1000 | ||
7012 | support: | ||
7013 | type: string | ||
7014 | description: text shown by default on all videos of this channel, to tell the audience how to support it | ||
7015 | example: Please support our work on https://soutenir.framasoft.org/en/ <3 | ||
7016 | minLength: 3 | ||
7017 | maxLength: 1000 | ||
7018 | # GET-only properties | ||
7019 | id: | ||
7020 | readOnly: true | ||
7021 | allOf: | ||
7022 | - $ref: '#/components/schemas/id' | ||
7023 | isLocal: | ||
7024 | readOnly: true | ||
7025 | type: boolean | ||
7026 | updatedAt: | ||
7027 | readOnly: true | ||
7028 | type: string | ||
7029 | format: date-time | ||
7030 | ownerAccount: | ||
7031 | readOnly: true | ||
7032 | nullable: true | ||
7033 | type: object | ||
7034 | properties: | 7006 | properties: |
7035 | id: | 7007 | displayName: |
7036 | type: integer | 7008 | type: string |
7037 | uuid: | 7009 | description: editable name of the channel, displayed in its representations |
7038 | $ref: '#/components/schemas/UUIDv4' | 7010 | example: Videos of Framasoft |
7011 | minLength: 1 | ||
7012 | maxLength: 120 | ||
7013 | description: | ||
7014 | type: string | ||
7015 | example: Videos made with <3 by Framasoft | ||
7016 | minLength: 3 | ||
7017 | maxLength: 1000 | ||
7018 | support: | ||
7019 | type: string | ||
7020 | description: text shown by default on all videos of this channel, to tell the audience how to support it | ||
7021 | example: Please support our work on https://soutenir.framasoft.org/en/ <3 | ||
7022 | minLength: 3 | ||
7023 | maxLength: 1000 | ||
7024 | isLocal: | ||
7025 | readOnly: true | ||
7026 | type: boolean | ||
7027 | updatedAt: | ||
7028 | readOnly: true | ||
7029 | type: string | ||
7030 | format: date-time | ||
7031 | banners: | ||
7032 | type: array | ||
7033 | items: | ||
7034 | $ref: '#/components/schemas/ActorImage' | ||
7035 | ownerAccount: | ||
7036 | readOnly: true | ||
7037 | nullable: true | ||
7038 | type: object | ||
7039 | properties: | ||
7040 | id: | ||
7041 | type: integer | ||
7042 | uuid: | ||
7043 | $ref: '#/components/schemas/UUIDv4' | ||
7039 | VideoChannelCreate: | 7044 | VideoChannelCreate: |
7040 | allOf: | 7045 | allOf: |
7041 | - $ref: '#/components/schemas/VideoChannel' | 7046 | - $ref: '#/components/schemas/VideoChannel' |
diff --git a/support/nginx/peertube b/support/nginx/peertube index 2b1600d97..5d7b4f0f0 100644 --- a/support/nginx/peertube +++ b/support/nginx/peertube | |||
@@ -172,7 +172,7 @@ server { | |||
172 | 172 | ||
173 | # Bypass PeerTube for performance reasons. Optional. | 173 | # Bypass PeerTube for performance reasons. Optional. |
174 | # Should be consistent with client-overrides assets list in /server/controllers/client.ts | 174 | # Should be consistent with client-overrides assets list in /server/controllers/client.ts |
175 | location ~ ^/client/(assets/images/(icons/icon-36x36\.png|icons/icon-48x48\.png|icons/icon-72x72\.png|icons/icon-96x96\.png|icons/icon-144x144\.png|icons/icon-192x192\.png|icons/icon-512x512\.png|logo\.svg|favicon\.png|default-playlist\.jpg|default-avatar-account\.png|default-avatar-video-channel\.png))$ { | 175 | location ~ ^/client/(assets/images/(icons/icon-36x36\.png|icons/icon-48x48\.png|icons/icon-72x72\.png|icons/icon-96x96\.png|icons/icon-144x144\.png|icons/icon-192x192\.png|icons/icon-512x512\.png|logo\.svg|favicon\.png|default-playlist\.jpg|default-avatar-account\.png|default-avatar-account-48x48\.png|default-avatar-video-channel\.png|default-avatar-video-channel-48x48\.png))$ { |
176 | add_header Cache-Control "public, max-age=31536000, immutable"; # Cache 1 year | 176 | add_header Cache-Control "public, max-age=31536000, immutable"; # Cache 1 year |
177 | 177 | ||
178 | root /var/www/peertube; | 178 | root /var/www/peertube; |