Skip to content

Commit 1b701f9

Browse files
authored
Merge pull request #1 from limulus/v1-webvtt-feature
Add WebVTT generation from samples
2 parents 94ea316 + 7751bfe commit 1b701f9

File tree

15 files changed

+1050
-300
lines changed

15 files changed

+1050
-300
lines changed

.github/workflows/cd.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10-
node: [ '22' ]
10+
node: ['20', '22']
1111
name: verify using node v${{ matrix.node }}
1212
steps:
1313
- uses: actions/checkout@v4
@@ -18,6 +18,7 @@ jobs:
1818
- run: npm ci
1919
env:
2020
NODE_AUTH_TOKEN: ${{ secrets.GPR_READ_TOKEN }}
21+
- run: npx playwright install --with-deps --only-shell chromium
2122
- run: npm run verify
2223
- uses: actions/upload-artifact@v4
2324
if: ${{ always() }}

CLAUDE.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
1-
# Create Project Helper Guide
1+
# tcx2webvtt Helper Guide
2+
3+
See `PLAN.md` to learn what the purpose and plan is for this project.
4+
5+
## Software Development Methodology
6+
7+
- Use Test Driven Development:
8+
- Write tests first
9+
- Ensure new tests fail
10+
- Write minimal production code to make tests pass
11+
- Consider refactoring production code
12+
- Ensure tests continue to pass
213

314
## Commands
415

PLAN.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# tcx2webvtt Todo List
2+
3+
The end goal for this project is for a CLI utility that takes a TCX (Garmin Training Center)
4+
XML file containing sensor/location data from a workout and generate a WebVTT file with the
5+
same data as JSON metadata. Optional arguments can be specified (for example, a Final Cut
6+
Pro XML export) to omit parts of the output and ensure synchronization with an edited video.
7+
8+
## Todos
9+
10+
- [x] Set up vitest browser testing that will enable testing of WebVTT output
11+
- [] Class to generate WebVTT file from array of `Sample`s
12+
- [] Parse timecode data from a Final Cut Pro XML export
13+
- [] Create a class that uses the timecode info from the FCP XML and creates a list of
14+
datetime intervals that the video project includes
15+
- [] Create a function or class that uses the time interval series to filter array of
16+
`Sample`s
17+
- [] Create a CLI Node.js executable that takes the XML files as arguments/options, probably
18+
an initial datetime to sync timecode with, and outputs WebVTT.
19+
- [] Create a JSON schema that WebVTT metadata will conform to, for consumers of WebVTT
20+
tracks to validate against and get TS types

0 commit comments

Comments
 (0)