screentinker/server
ScreenTinker 1483500458 Probe video durations during migration and v1 import
Migration (database.js): switched from sync execFileSync to async execFile
with promise wrapper, matching the pattern in playlists.js. Probes each
video content item, backfills content.duration_sec, and uses the real
duration in playlist_items. Falls back to the assignment's original
duration_sec if the probe fails or content isn't a video.

V1 import (status.js): moved assignment-to-playlist conversion out of the
synchronous db.transaction() so async ffprobe can run. Content files are
already on disk from the transaction, so probing works. Same fallback logic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 22:24:56 -05:00
..
db Probe video durations during migration and v1 import 2026-04-11 22:24:56 -05:00
middleware Initial open source release 2026-04-08 12:14:53 -05:00
player Fix widget assignments, designer scaling, and cache strategy 2026-04-08 16:25:05 -05:00
routes Probe video durations during migration and v1 import 2026-04-11 22:24:56 -05:00
services Phase 2: schedules accept playlist_id, scheduler overrides device playlist 2026-04-11 22:07:36 -05:00
ws Phase 2: buildPlaylistPayload reads from playlist_items via device.playlist_id 2026-04-11 22:04:26 -05:00
config.js Initial open source release 2026-04-08 12:14:53 -05:00
package-lock.json Initial open source release 2026-04-08 12:14:53 -05:00
package.json Initial open source release 2026-04-08 12:14:53 -05:00
server.js Register playlist routes in server.js 2026-04-11 21:10:24 -05:00