diff options
Diffstat (limited to 'server/models/video')
-rw-r--r-- | server/models/video/formatter/video-format-utils.ts | 9 | ||||
-rw-r--r-- | server/models/video/video.ts | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/server/models/video/formatter/video-format-utils.ts b/server/models/video/formatter/video-format-utils.ts index 6222107d7..fd02f8c64 100644 --- a/server/models/video/formatter/video-format-utils.ts +++ b/server/models/video/formatter/video-format-utils.ts | |||
@@ -1,5 +1,6 @@ | |||
1 | import { generateMagnetUri } from '@server/helpers/webtorrent' | 1 | import { generateMagnetUri } from '@server/helpers/webtorrent' |
2 | import { getActivityStreamDuration } from '@server/lib/activitypub/activity' | 2 | import { getActivityStreamDuration } from '@server/lib/activitypub/activity' |
3 | import { tracer } from '@server/lib/opentelemetry/tracing' | ||
3 | import { getLocalVideoFileMetadataUrl } from '@server/lib/video-urls' | 4 | import { getLocalVideoFileMetadataUrl } from '@server/lib/video-urls' |
4 | import { VideoViewsManager } from '@server/lib/views/video-views-manager' | 5 | import { VideoViewsManager } from '@server/lib/views/video-views-manager' |
5 | import { uuidToShort } from '@shared/extra-utils' | 6 | import { uuidToShort } from '@shared/extra-utils' |
@@ -71,6 +72,8 @@ function guessAdditionalAttributesFromQuery (query: VideosCommonQueryAfterSaniti | |||
71 | } | 72 | } |
72 | 73 | ||
73 | function videoModelToFormattedJSON (video: MVideoFormattable, options: VideoFormattingJSONOptions = {}): Video { | 74 | function videoModelToFormattedJSON (video: MVideoFormattable, options: VideoFormattingJSONOptions = {}): Video { |
75 | const span = tracer.startSpan('peertube.VideoModel.toFormattedJSON') | ||
76 | |||
74 | const userHistory = isArray(video.UserVideoHistories) ? video.UserVideoHistories[0] : undefined | 77 | const userHistory = isArray(video.UserVideoHistories) ? video.UserVideoHistories[0] : undefined |
75 | 78 | ||
76 | const videoObject: Video = { | 79 | const videoObject: Video = { |
@@ -168,10 +171,14 @@ function videoModelToFormattedJSON (video: MVideoFormattable, options: VideoForm | |||
168 | videoObject.files = videoFilesModelToFormattedJSON(video, video.VideoFiles) | 171 | videoObject.files = videoFilesModelToFormattedJSON(video, video.VideoFiles) |
169 | } | 172 | } |
170 | 173 | ||
174 | span.end() | ||
175 | |||
171 | return videoObject | 176 | return videoObject |
172 | } | 177 | } |
173 | 178 | ||
174 | function videoModelToFormattedDetailsJSON (video: MVideoFormattableDetails): VideoDetails { | 179 | function videoModelToFormattedDetailsJSON (video: MVideoFormattableDetails): VideoDetails { |
180 | const span = tracer.startSpan('peertube.VideoModel.toFormattedDetailsJSON') | ||
181 | |||
175 | const videoJSON = video.toFormattedJSON({ | 182 | const videoJSON = video.toFormattedJSON({ |
176 | additionalAttributes: { | 183 | additionalAttributes: { |
177 | scheduledUpdate: true, | 184 | scheduledUpdate: true, |
@@ -199,6 +206,8 @@ function videoModelToFormattedDetailsJSON (video: MVideoFormattableDetails): Vid | |||
199 | trackerUrls: video.getTrackerUrls() | 206 | trackerUrls: video.getTrackerUrls() |
200 | } | 207 | } |
201 | 208 | ||
209 | span.end() | ||
210 | |||
202 | return Object.assign(videoJSON, detailsJSON) | 211 | return Object.assign(videoJSON, detailsJSON) |
203 | } | 212 | } |
204 | 213 | ||
diff --git a/server/models/video/video.ts b/server/models/video/video.ts index 924f12a5e..7e9bb4db4 100644 --- a/server/models/video/video.ts +++ b/server/models/video/video.ts | |||
@@ -27,6 +27,7 @@ import { | |||
27 | import { getPrivaciesForFederation, isPrivacyForFederation, isStateForFederation } from '@server/helpers/video' | 27 | import { getPrivaciesForFederation, isPrivacyForFederation, isStateForFederation } from '@server/helpers/video' |
28 | import { LiveManager } from '@server/lib/live/live-manager' | 28 | import { LiveManager } from '@server/lib/live/live-manager' |
29 | import { removeHLSFileObjectStorage, removeHLSObjectStorage, removeWebTorrentObjectStorage } from '@server/lib/object-storage' | 29 | import { removeHLSFileObjectStorage, removeHLSObjectStorage, removeWebTorrentObjectStorage } from '@server/lib/object-storage' |
30 | import { tracer } from '@server/lib/opentelemetry/tracing' | ||
30 | import { getHLSDirectory, getHLSRedundancyDirectory } from '@server/lib/paths' | 31 | import { getHLSDirectory, getHLSRedundancyDirectory } from '@server/lib/paths' |
31 | import { VideoPathManager } from '@server/lib/video-path-manager' | 32 | import { VideoPathManager } from '@server/lib/video-path-manager' |
32 | import { getServerActor } from '@server/models/application/application' | 33 | import { getServerActor } from '@server/models/application/application' |
@@ -1535,6 +1536,8 @@ export class VideoModel extends Model<Partial<AttributesOnly<VideoModel>>> { | |||
1535 | options: BuildVideosListQueryOptions, | 1536 | options: BuildVideosListQueryOptions, |
1536 | countVideos = true | 1537 | countVideos = true |
1537 | ): Promise<ResultList<VideoModel>> { | 1538 | ): Promise<ResultList<VideoModel>> { |
1539 | const span = tracer.startSpan('peertube.VideoModel.getAvailableForApi') | ||
1540 | |||
1538 | function getCount () { | 1541 | function getCount () { |
1539 | if (countVideos !== true) return Promise.resolve(undefined) | 1542 | if (countVideos !== true) return Promise.resolve(undefined) |
1540 | 1543 | ||
@@ -1554,6 +1557,8 @@ export class VideoModel extends Model<Partial<AttributesOnly<VideoModel>>> { | |||
1554 | 1557 | ||
1555 | const [ count, rows ] = await Promise.all([ getCount(), getModels() ]) | 1558 | const [ count, rows ] = await Promise.all([ getCount(), getModels() ]) |
1556 | 1559 | ||
1560 | span.end() | ||
1561 | |||
1557 | return { | 1562 | return { |
1558 | data: rows, | 1563 | data: rows, |
1559 | total: count | 1564 | total: count |