@@ -97,7 +97,17 @@ async function getSegmentsByVideoID(req: Request, videoID: VideoID, categories:
97
97
98
98
const canUseCache = requiredSegments . length === 0 ;
99
99
let processedSegments : Segment [ ] = ( await prepareCategorySegments ( req , videoID , service , segments , cache , canUseCache ) )
100
- . filter ( ( segment : Segment ) => categories . includes ( segment ?. category ) && ( actionTypes . includes ( segment ?. actionType ) ) ) ;
100
+ . filter ( ( segment : Segment ) => categories . includes ( segment ?. category ) && ( actionTypes . includes ( segment ?. actionType ) ) )
101
+ . map ( ( segment : Segment ) => ( {
102
+ category : segment . category ,
103
+ actionType : segment . actionType ,
104
+ segment : segment . segment ,
105
+ UUID : segment . UUID ,
106
+ videoDuration : segment . videoDuration ,
107
+ locked : segment . locked ,
108
+ votes : segment . votes ,
109
+ description : segment . description
110
+ } ) ) ;
101
111
102
112
if ( forcePoiAsSkip ) {
103
113
processedSegments = processedSegments . map ( ( segment ) => ( {
@@ -127,15 +137,14 @@ async function getSegmentsByHash(req: Request, hashedVideoIDPrefix: VideoIDHash,
127
137
}
128
138
129
139
try {
130
- type SegmentWithHashPerVideoID = SBRecord < VideoID , { hash : VideoIDHash , segments : DBSegment [ ] } > ;
140
+ type SegmentPerVideoID = SBRecord < VideoID , { segments : DBSegment [ ] } > ;
131
141
132
142
categories = categories . filter ( ( category ) => ! ( / [ ^ a - z | _ | - ] / . test ( category ) ) ) ;
133
143
if ( categories . length === 0 ) return null ;
134
144
135
- const segmentPerVideoID : SegmentWithHashPerVideoID = ( await getSegmentsFromDBByHash ( hashedVideoIDPrefix , service ) )
136
- . reduce ( ( acc : SegmentWithHashPerVideoID , segment : DBSegment ) => {
145
+ const segmentPerVideoID : SegmentPerVideoID = ( await getSegmentsFromDBByHash ( hashedVideoIDPrefix , service ) )
146
+ . reduce ( ( acc : SegmentPerVideoID , segment : DBSegment ) => {
137
147
acc [ segment . videoID ] = acc [ segment . videoID ] || {
138
- hash : segment . hashedVideoID ,
139
148
segments : [ ]
140
149
} ;
141
150
if ( filterRequiredSegments ( segment . UUID , requiredSegments ) ) segment . required = true ;
@@ -148,13 +157,22 @@ async function getSegmentsByHash(req: Request, hashedVideoIDPrefix: VideoIDHash,
148
157
149
158
await Promise . all ( Object . entries ( segmentPerVideoID ) . map ( async ( [ videoID , videoData ] ) => {
150
159
const data : VideoData = {
151
- hash : videoData . hash ,
152
160
segments : [ ] ,
153
161
} ;
154
162
155
163
const canUseCache = requiredSegments . length === 0 ;
156
164
data . segments = ( await prepareCategorySegments ( req , videoID as VideoID , service , videoData . segments , cache , canUseCache ) )
157
- . filter ( ( segment : Segment ) => categories . includes ( segment ?. category ) && actionTypes . includes ( segment ?. actionType ) ) ;
165
+ . filter ( ( segment : Segment ) => categories . includes ( segment ?. category ) && actionTypes . includes ( segment ?. actionType ) )
166
+ . map ( ( segment ) => ( {
167
+ category : segment . category ,
168
+ actionType : segment . actionType ,
169
+ segment : segment . segment ,
170
+ UUID : segment . UUID ,
171
+ videoDuration : segment . videoDuration ,
172
+ locked : segment . locked ,
173
+ votes : segment . votes ,
174
+ description : segment . description
175
+ } ) ) ;
158
176
159
177
if ( forcePoiAsSkip ) {
160
178
data . segments = data . segments . map ( ( segment ) => ( {
0 commit comments