aboutsummaryrefslogtreecommitdiffhomepage
path: root/support
diff options
context:
space:
mode:
authorkontrollanten <6680299+kontrollanten@users.noreply.github.com>2022-02-28 08:34:43 +0100
committerGitHub <noreply@github.com>2022-02-28 08:34:43 +0100
commitd0800f7661f13fabe7bb6f4aa0ea50764f106405 (patch)
treed43e6b0b6f4a5a32e03487e6464edbcaf288be2a /support
parent5cad2ca9db9b9d138f8a33058d10b94a9fd50c69 (diff)
downloadPeerTube-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.yaml131
-rw-r--r--support/nginx/peertube2
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;