Skip to content

Commit 7485d2b

Browse files
committed
fix: use same timelineHash when writing to db and fasttrack SOFIE-3420 SOFIE-3427
1 parent 4e11817 commit 7485d2b

File tree

4 files changed

+18
-15
lines changed

4 files changed

+18
-15
lines changed

packages/job-worker/src/playout/model/implementation/PlayoutModelImpl.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,10 @@ export class PlayoutModelImpl extends PlayoutModelReadonlyImpl implements Playou
667667
this.#playlistHasChanged = true
668668
}
669669

670-
setTimeline(timelineObjs: TimelineObjGeneric[], generationVersions: TimelineCompleteGenerationVersions): void {
670+
setTimeline(
671+
timelineObjs: TimelineObjGeneric[],
672+
generationVersions: TimelineCompleteGenerationVersions
673+
): ReadonlyDeep<TimelineComplete> {
671674
this.timelineImpl = {
672675
_id: this.context.studioId,
673676
timelineHash: getRandomId(), // randomized on every timeline change
@@ -676,6 +679,8 @@ export class PlayoutModelImpl extends PlayoutModelReadonlyImpl implements Playou
676679
generationVersions: generationVersions,
677680
}
678681
this.#timelineHasChanged = true
682+
683+
return this.timelineImpl
679684
}
680685

681686
setExpectedPackagesForStudioBaseline(packages: ExpectedPackageDBFromStudioBaselineObjects[]): void {

packages/job-worker/src/playout/timeline/generate.ts

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import {
1111
import {
1212
deserializeTimelineBlob,
1313
OnGenerateTimelineObjExt,
14-
serializeTimelineBlob,
15-
TimelineComplete,
1614
TimelineCompleteGenerationVersions,
1715
TimelineEnableExt,
1816
TimelineObjGeneric,
@@ -21,7 +19,7 @@ import {
2119
} from '@sofie-automation/corelib/dist/dataModel/Timeline'
2220
import { RundownBaselineObj } from '@sofie-automation/corelib/dist/dataModel/RundownBaselineObj'
2321
import { DBPartInstance } from '@sofie-automation/corelib/dist/dataModel/PartInstance'
24-
import { applyToArray, clone, getRandomId, literal, normalizeArray, omit } from '@sofie-automation/corelib/dist/lib'
22+
import { applyToArray, clone, literal, normalizeArray, omit } from '@sofie-automation/corelib/dist/lib'
2523
import { PlayoutModel } from '../model/PlayoutModel'
2624
import { logger } from '../../logging'
2725
import { getCurrentTime, getSystemVersion } from '../../lib'
@@ -238,15 +236,7 @@ export function saveTimeline(
238236
timelineObjs: TimelineObjGeneric[],
239237
generationVersions: TimelineCompleteGenerationVersions
240238
): void {
241-
const newTimeline: TimelineComplete = {
242-
_id: context.studio._id,
243-
timelineHash: getRandomId(), // randomized on every timeline change
244-
generated: getCurrentTime(),
245-
timelineBlob: serializeTimelineBlob(timelineObjs),
246-
generationVersions: generationVersions,
247-
}
248-
249-
studioPlayoutModel.setTimeline(timelineObjs, generationVersions)
239+
const newTimeline = studioPlayoutModel.setTimeline(timelineObjs, generationVersions)
250240

251241
// Also do a fast-track for the timeline to be published faster:
252242
context.hackPublishTimelineToFastTrack(newTimeline)

packages/job-worker/src/studio/model/StudioPlayoutModel.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ export interface StudioPlayoutModelBase extends StudioPlayoutModelBaseReadonly {
4545
* @param timelineObjs Timeline objects to be run in the Studio
4646
* @param generationVersions Details about the versions where these objects were generated
4747
*/
48-
setTimeline(timelineObjs: TimelineObjGeneric[], generationVersions: TimelineCompleteGenerationVersions): void
48+
setTimeline(
49+
timelineObjs: TimelineObjGeneric[],
50+
generationVersions: TimelineCompleteGenerationVersions
51+
): ReadonlyDeep<TimelineComplete>
4952
}
5053

5154
/**

packages/job-worker/src/studio/model/StudioPlayoutModelImpl.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ export class StudioPlayoutModelImpl implements StudioPlayoutModel {
8484
this.#baselineHelper.setExpectedPlayoutItems(playoutItems)
8585
}
8686

87-
setTimeline(timelineObjs: TimelineObjGeneric[], generationVersions: TimelineCompleteGenerationVersions): void {
87+
setTimeline(
88+
timelineObjs: TimelineObjGeneric[],
89+
generationVersions: TimelineCompleteGenerationVersions
90+
): ReadonlyDeep<TimelineComplete> {
8891
this.#timeline = {
8992
_id: this.context.studioId,
9093
timelineHash: getRandomId(),
@@ -93,6 +96,8 @@ export class StudioPlayoutModelImpl implements StudioPlayoutModel {
9396
generationVersions: generationVersions,
9497
}
9598
this.#timelineHasChanged = true
99+
100+
return this.#timeline
96101
}
97102

98103
/**

0 commit comments

Comments
 (0)