diff options
Diffstat (limited to 'server/controllers/feeds')
-rw-r--r-- | server/controllers/feeds/shared/common-feed-utils.ts | 10 | ||||
-rw-r--r-- | server/controllers/feeds/video-podcast-feeds.ts | 20 |
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 @@ | |||
1 | import express from 'express' | 1 | import express from 'express' |
2 | import { maxBy } from 'lodash' | ||
2 | import { Feed } from '@peertube/feed' | 3 | import { Feed } from '@peertube/feed' |
3 | import { CustomTag, CustomXMLNS, Person } from '@peertube/feed/lib/typings' | 4 | import { CustomTag, CustomXMLNS, Person } from '@peertube/feed/lib/typings' |
4 | import { mdToOneLinePlainText } from '@server/helpers/markdown' | 5 | import { 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 @@ | |||
1 | import express from 'express' | 1 | import express from 'express' |
2 | import { maxBy } from 'lodash' | ||
2 | import { extname } from 'path' | 3 | import { extname } from 'path' |
3 | import { Feed } from '@peertube/feed' | 4 | import { Feed } from '@peertube/feed' |
4 | import { CustomTag, CustomXMLNS, LiveItemStatus } from '@peertube/feed/lib/typings' | 5 | import { 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 | ||