aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'server/controllers')
-rw-r--r--server/controllers/feeds/shared/common-feed-utils.ts10
-rw-r--r--server/controllers/feeds/video-podcast-feeds.ts20
2 files changed, 23 insertions, 7 deletions
diff --git a/server/controllers/feeds/shared/common-feed-utils.ts b/server/controllers/feeds/shared/common-feed-utils.ts
index 375c2814b..8f35a8b35 100644
--- a/server/controllers/feeds/shared/common-feed-utils.ts
+++ b/server/controllers/feeds/shared/common-feed-utils.ts
@@ -1,4 +1,5 @@
1import express from 'express' 1import express from 'express'
2import { maxBy } from 'lodash'
2import { Feed } from '@peertube/feed' 3import { Feed } from '@peertube/feed'
3import { CustomTag, CustomXMLNS, Person } from '@peertube/feed/lib/typings' 4import { CustomTag, CustomXMLNS, Person } from '@peertube/feed/lib/typings'
4import { mdToOneLinePlainText } from '@server/helpers/markdown' 5import { mdToOneLinePlainText } from '@server/helpers/markdown'
@@ -104,11 +105,13 @@ export async function buildFeedMetadata (options: {
104 accountLink = videoChannel.Account.getClientUrl() 105 accountLink = videoChannel.Account.getClientUrl()
105 106
106 if (videoChannel.Actor.hasImage(ActorImageType.AVATAR)) { 107 if (videoChannel.Actor.hasImage(ActorImageType.AVATAR)) {
107 imageUrl = WEBSERVER.URL + videoChannel.Actor.Avatars[0].getStaticPath() 108 const videoChannelAvatar = maxBy(videoChannel.Actor.Avatars, 'width')
109 imageUrl = WEBSERVER.URL + videoChannelAvatar.getStaticPath()
108 } 110 }
109 111
110 if (videoChannel.Account.Actor.hasImage(ActorImageType.AVATAR)) { 112 if (videoChannel.Account.Actor.hasImage(ActorImageType.AVATAR)) {
111 accountImageUrl = WEBSERVER.URL + videoChannel.Account.Actor.Avatars[0].getStaticPath() 113 const accountAvatar = maxBy(videoChannel.Account.Actor.Avatars, 'width')
114 accountImageUrl = WEBSERVER.URL + accountAvatar.getStaticPath()
112 } 115 }
113 116
114 user = await UserModel.loadById(videoChannel.Account.userId) 117 user = await UserModel.loadById(videoChannel.Account.userId)
@@ -120,7 +123,8 @@ export async function buildFeedMetadata (options: {
120 accountLink = link 123 accountLink = link
121 124
122 if (account.Actor.hasImage(ActorImageType.AVATAR)) { 125 if (account.Actor.hasImage(ActorImageType.AVATAR)) {
123 imageUrl = WEBSERVER.URL + account.Actor.Avatars[0].getStaticPath() 126 const accountAvatar = maxBy(account.Actor.Avatars, 'width')
127 imageUrl = WEBSERVER.URL + accountAvatar?.getStaticPath()
124 accountImageUrl = imageUrl 128 accountImageUrl = imageUrl
125 } 129 }
126 130
diff --git a/server/controllers/feeds/video-podcast-feeds.ts b/server/controllers/feeds/video-podcast-feeds.ts
index 45d31c781..f63f6ee63 100644
--- a/server/controllers/feeds/video-podcast-feeds.ts
+++ b/server/controllers/feeds/video-podcast-feeds.ts
@@ -1,4 +1,5 @@
1import express from 'express' 1import express from 'express'
2import { maxBy } from 'lodash'
2import { extname } from 'path' 3import { extname } from 'path'
3import { Feed } from '@peertube/feed' 4import { Feed } from '@peertube/feed'
4import { CustomTag, CustomXMLNS, LiveItemStatus } from '@peertube/feed/lib/typings' 5import { CustomTag, CustomXMLNS, LiveItemStatus } from '@peertube/feed/lib/typings'
@@ -141,8 +142,21 @@ async function generatePodcastItem (options: {
141 href: account.getClientUrl() 142 href: account.getClientUrl()
142 } 143 }
143 144
145 const commonAttributes = getCommonVideoFeedAttributes(video)
146 const guid = liveItem
147 ? `${video.uuid}_${video.publishedAt.toISOString()}`
148 : commonAttributes.link
149
150 let personImage: string
151
152 if (account.Actor.hasImage(ActorImageType.AVATAR)) {
153 const avatar = maxBy(account.Actor.Avatars, 'width')
154 personImage = WEBSERVER.URL + avatar.getStaticPath()
155 }
156
144 return { 157 return {
145 ...getCommonVideoFeedAttributes(video), 158 guid,
159 ...commonAttributes,
146 160
147 trackers: video.getTrackerUrls(), 161 trackers: video.getTrackerUrls(),
148 162
@@ -151,9 +165,7 @@ async function generatePodcastItem (options: {
151 { 165 {
152 ...author, 166 ...author,
153 167
154 img: account.Actor.hasImage(ActorImageType.AVATAR) 168 img: personImage
155 ? WEBSERVER.URL + account.Actor.Avatars[0].getStaticPath()
156 : undefined
157 } 169 }
158 ], 170 ],
159 171