add srt files
This commit is contained in:
35
.eleventy.js
35
.eleventy.js
@@ -3,6 +3,8 @@ const handlebars = require('handlebars');
|
||||
const sass = require("sass");
|
||||
const pluginRss = require("@11ty/eleventy-plugin-rss");
|
||||
const handlebarsHelpers = require('handlebars-helpers')
|
||||
const { parseSync } = require('subtitle')
|
||||
const path = require('path')
|
||||
|
||||
|
||||
const htmlmin = require("html-minifier");
|
||||
@@ -21,23 +23,36 @@ module.exports = function(eleventyConfig) {
|
||||
eleventyConfig.addPlugin(utilsPlugin, {immediate: true});
|
||||
eleventyConfig.addPlugin(handlebarsPlugin);
|
||||
eleventyConfig.addPlugin(pluginRss);
|
||||
|
||||
eleventyConfig.addTemplateFormats("srt");
|
||||
eleventyConfig.addExtension(
|
||||
"srt",
|
||||
{compile: (inputContent, inputPath)=>{
|
||||
const parsed = parseSync(inputContent.toString(), {type:'srt'})
|
||||
return async (data) => {
|
||||
data.transcript = parsed
|
||||
data.layout = "transcript"
|
||||
// data.tags = ['transcript']
|
||||
return JSON.stringify(parsed)
|
||||
}
|
||||
}})
|
||||
|
||||
|
||||
handlebarsHelpers({
|
||||
handlebars
|
||||
})
|
||||
|
||||
eleventyConfig.addTransform("htmlmin", (content, outputPath) => {
|
||||
if (outputPath.endsWith(".html")) {
|
||||
return htmlmin.minify(content, {
|
||||
collapseWhitespace: true,
|
||||
removeComments: true,
|
||||
useShortDoctype: true,
|
||||
});
|
||||
}
|
||||
// eleventyConfig.addTransform("htmlmin", (content, outputPath) => {
|
||||
// if (outputPath.endsWith(".html")) {
|
||||
// return htmlmin.minify(content, {
|
||||
// collapseWhitespace: true,
|
||||
// removeComments: true,
|
||||
// useShortDoctype: true,
|
||||
// });
|
||||
// }
|
||||
|
||||
return content;
|
||||
});
|
||||
// return content;
|
||||
// });
|
||||
|
||||
// Creates the extension for use
|
||||
eleventyConfig.addTemplateFormats("scss");
|
||||
|
||||
@@ -31,6 +31,8 @@ async function podcastData (data) {
|
||||
var file_stem
|
||||
if (data.season === 1) {
|
||||
file_stem = `ep${data.episode}`
|
||||
} if (data.season === 2) {
|
||||
file_stem = `${seasonEpisodeFormat(null, {...data, episodePrefix: "ep"}).toLowerCase()}`
|
||||
} else {
|
||||
file_stem = `${seasonEpisodeFormat(null, data).toLowerCase()}`
|
||||
}
|
||||
@@ -50,7 +52,18 @@ async function podcastData (data) {
|
||||
}
|
||||
}).catch((e)=>{return null})
|
||||
|
||||
const transcript_exists_promise = new Promise ((resolve, reject) => {
|
||||
const transcript_page_exists_promises = [
|
||||
`${data.page.filePathStem}`,
|
||||
`../../../transcripts/${file_stem}`
|
||||
].filter(file_path=>file_path).map((file_path)=>
|
||||
fs.access(path.resolve(data.page.inputPath, `${file_path}.srt`))
|
||||
.then(()=>path.resolve(data.page.filePathStem, file_path))
|
||||
.catch((e)=>{
|
||||
return null
|
||||
})
|
||||
)
|
||||
|
||||
transcript_file_exists_promise = new Promise ((resolve, reject) => {
|
||||
if (data.podcast.transcriptUrl) {
|
||||
resolve(data.podcast.transcriptUrl)
|
||||
} else {
|
||||
@@ -68,7 +81,8 @@ async function podcastData (data) {
|
||||
|
||||
const result = {
|
||||
"enclosureUrl": await mp3_exists_promise,
|
||||
"transcriptUrl": await transcript_exists_promise,
|
||||
"transcriptUrl": await transcript_file_exists_promise,
|
||||
"transcriptPage": (await Promise.all(transcript_page_exists_promises)).find(i=>i),
|
||||
"title": data.podcast.title || `${seasonEpisodeFormat(null, data)}: ${data.title || "Episode " + data.episode}`,
|
||||
"image" : data.podcast.image || data.image
|
||||
}
|
||||
|
||||
21644
content/transcripts/ep15.srt
Normal file
21644
content/transcripts/ep15.srt
Normal file
File diff suppressed because it is too large
Load Diff
5860
content/transcripts/ep16.srt
Normal file
5860
content/transcripts/ep16.srt
Normal file
File diff suppressed because it is too large
Load Diff
16916
content/transcripts/ep17.srt
Normal file
16916
content/transcripts/ep17.srt
Normal file
File diff suppressed because it is too large
Load Diff
18356
content/transcripts/ep18.srt
Normal file
18356
content/transcripts/ep18.srt
Normal file
File diff suppressed because it is too large
Load Diff
13868
content/transcripts/ep19.srt
Normal file
13868
content/transcripts/ep19.srt
Normal file
File diff suppressed because it is too large
Load Diff
14520
content/transcripts/ep20.srt
Normal file
14520
content/transcripts/ep20.srt
Normal file
File diff suppressed because it is too large
Load Diff
21224
content/transcripts/ep21.srt
Normal file
21224
content/transcripts/ep21.srt
Normal file
File diff suppressed because it is too large
Load Diff
4688
content/transcripts/ep22.srt
Normal file
4688
content/transcripts/ep22.srt
Normal file
File diff suppressed because it is too large
Load Diff
14896
content/transcripts/ep23.srt
Normal file
14896
content/transcripts/ep23.srt
Normal file
File diff suppressed because it is too large
Load Diff
11280
content/transcripts/ep24.srt
Normal file
11280
content/transcripts/ep24.srt
Normal file
File diff suppressed because it is too large
Load Diff
17964
content/transcripts/ep25.srt
Normal file
17964
content/transcripts/ep25.srt
Normal file
File diff suppressed because it is too large
Load Diff
4236
content/transcripts/ep26.srt
Normal file
4236
content/transcripts/ep26.srt
Normal file
File diff suppressed because it is too large
Load Diff
16344
content/transcripts/ep27.srt
Normal file
16344
content/transcripts/ep27.srt
Normal file
File diff suppressed because it is too large
Load Diff
8880
content/transcripts/ep28.srt
Normal file
8880
content/transcripts/ep28.srt
Normal file
File diff suppressed because it is too large
Load Diff
13256
content/transcripts/ep29.srt
Normal file
13256
content/transcripts/ep29.srt
Normal file
File diff suppressed because it is too large
Load Diff
19660
content/transcripts/ep30.srt
Normal file
19660
content/transcripts/ep30.srt
Normal file
File diff suppressed because it is too large
Load Diff
22708
content/transcripts/ep31.srt
Normal file
22708
content/transcripts/ep31.srt
Normal file
File diff suppressed because it is too large
Load Diff
1576
content/transcripts/ep32.1.srt
Normal file
1576
content/transcripts/ep32.1.srt
Normal file
File diff suppressed because it is too large
Load Diff
1292
content/transcripts/ep32.2.srt
Normal file
1292
content/transcripts/ep32.2.srt
Normal file
File diff suppressed because it is too large
Load Diff
13120
content/transcripts/ep32.srt
Normal file
13120
content/transcripts/ep32.srt
Normal file
File diff suppressed because it is too large
Load Diff
13324
content/transcripts/ep33.srt
Normal file
13324
content/transcripts/ep33.srt
Normal file
File diff suppressed because it is too large
Load Diff
14216
content/transcripts/ep34.srt
Normal file
14216
content/transcripts/ep34.srt
Normal file
File diff suppressed because it is too large
Load Diff
16560
content/transcripts/ep35.srt
Normal file
16560
content/transcripts/ep35.srt
Normal file
File diff suppressed because it is too large
Load Diff
14132
content/transcripts/ep36.srt
Normal file
14132
content/transcripts/ep36.srt
Normal file
File diff suppressed because it is too large
Load Diff
17880
content/transcripts/ep37.srt
Normal file
17880
content/transcripts/ep37.srt
Normal file
File diff suppressed because it is too large
Load Diff
9708
content/transcripts/ep38.srt
Normal file
9708
content/transcripts/ep38.srt
Normal file
File diff suppressed because it is too large
Load Diff
11744
content/transcripts/ep39.srt
Normal file
11744
content/transcripts/ep39.srt
Normal file
File diff suppressed because it is too large
Load Diff
10464
content/transcripts/ep40.srt
Normal file
10464
content/transcripts/ep40.srt
Normal file
File diff suppressed because it is too large
Load Diff
9612
content/transcripts/ep41.srt
Normal file
9612
content/transcripts/ep41.srt
Normal file
File diff suppressed because it is too large
Load Diff
8548
content/transcripts/ep42.srt
Normal file
8548
content/transcripts/ep42.srt
Normal file
File diff suppressed because it is too large
Load Diff
11428
content/transcripts/ep43.srt
Normal file
11428
content/transcripts/ep43.srt
Normal file
File diff suppressed because it is too large
Load Diff
12316
content/transcripts/ep44.srt
Normal file
12316
content/transcripts/ep44.srt
Normal file
File diff suppressed because it is too large
Load Diff
10372
content/transcripts/ep45.srt
Normal file
10372
content/transcripts/ep45.srt
Normal file
File diff suppressed because it is too large
Load Diff
30728
content/transcripts/ep46.srt
Normal file
30728
content/transcripts/ep46.srt
Normal file
File diff suppressed because it is too large
Load Diff
15
content/transcripts/index.hbs
Normal file
15
content/transcripts/index.hbs
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
eleventyExcludeFromCollections: ['transcript']
|
||||
layout: base
|
||||
---
|
||||
<div>
|
||||
{{#each (sort collections.transcript)}}
|
||||
<div class="card m-2">
|
||||
<div class="card-body">
|
||||
<div class="card-title">
|
||||
<h4><a href="{{this.url}}">{{this.url}}</a></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
9160
content/transcripts/s02ep01.srt
Normal file
9160
content/transcripts/s02ep01.srt
Normal file
File diff suppressed because it is too large
Load Diff
6044
content/transcripts/s02ep02.srt
Normal file
6044
content/transcripts/s02ep02.srt
Normal file
File diff suppressed because it is too large
Load Diff
15936
content/transcripts/s02ep03.srt
Normal file
15936
content/transcripts/s02ep03.srt
Normal file
File diff suppressed because it is too large
Load Diff
13236
content/transcripts/s02ep04.srt
Normal file
13236
content/transcripts/s02ep04.srt
Normal file
File diff suppressed because it is too large
Load Diff
7004
content/transcripts/s02ep05.srt
Normal file
7004
content/transcripts/s02ep05.srt
Normal file
File diff suppressed because it is too large
Load Diff
11716
content/transcripts/s02ep06.srt
Normal file
11716
content/transcripts/s02ep06.srt
Normal file
File diff suppressed because it is too large
Load Diff
12156
content/transcripts/s02ep07.srt
Normal file
12156
content/transcripts/s02ep07.srt
Normal file
File diff suppressed because it is too large
Load Diff
15636
content/transcripts/s02ep08.srt
Normal file
15636
content/transcripts/s02ep08.srt
Normal file
File diff suppressed because it is too large
Load Diff
7220
content/transcripts/s02ep09.srt
Normal file
7220
content/transcripts/s02ep09.srt
Normal file
File diff suppressed because it is too large
Load Diff
5708
content/transcripts/s02ep10.srt
Normal file
5708
content/transcripts/s02ep10.srt
Normal file
File diff suppressed because it is too large
Load Diff
6784
content/transcripts/s02ep11.srt
Normal file
6784
content/transcripts/s02ep11.srt
Normal file
File diff suppressed because it is too large
Load Diff
4568
content/transcripts/s03e01.srt
Normal file
4568
content/transcripts/s03e01.srt
Normal file
File diff suppressed because it is too large
Load Diff
17800
content/transcripts/s03e02.srt
Normal file
17800
content/transcripts/s03e02.srt
Normal file
File diff suppressed because it is too large
Load Diff
11384
content/transcripts/s03e03.srt
Normal file
11384
content/transcripts/s03e03.srt
Normal file
File diff suppressed because it is too large
Load Diff
20212
content/transcripts/s03e04.srt
Normal file
20212
content/transcripts/s03e04.srt
Normal file
File diff suppressed because it is too large
Load Diff
7532
content/transcripts/s03e05.srt
Normal file
7532
content/transcripts/s03e05.srt
Normal file
File diff suppressed because it is too large
Load Diff
9940
content/transcripts/s03e06.srt
Normal file
9940
content/transcripts/s03e06.srt
Normal file
File diff suppressed because it is too large
Load Diff
16428
content/transcripts/s03e07.srt
Normal file
16428
content/transcripts/s03e07.srt
Normal file
File diff suppressed because it is too large
Load Diff
16068
content/transcripts/s03e08.srt
Normal file
16068
content/transcripts/s03e08.srt
Normal file
File diff suppressed because it is too large
Load Diff
16044
content/transcripts/s03e09.srt
Normal file
16044
content/transcripts/s03e09.srt
Normal file
File diff suppressed because it is too large
Load Diff
11072
content/transcripts/s03e10.srt
Normal file
11072
content/transcripts/s03e10.srt
Normal file
File diff suppressed because it is too large
Load Diff
16116
content/transcripts/s03e11.srt
Normal file
16116
content/transcripts/s03e11.srt
Normal file
File diff suppressed because it is too large
Load Diff
14876
content/transcripts/s03e12.srt
Normal file
14876
content/transcripts/s03e12.srt
Normal file
File diff suppressed because it is too large
Load Diff
12568
content/transcripts/s03e13.srt
Normal file
12568
content/transcripts/s03e13.srt
Normal file
File diff suppressed because it is too large
Load Diff
11520
content/transcripts/s03e14.srt
Normal file
11520
content/transcripts/s03e14.srt
Normal file
File diff suppressed because it is too large
Load Diff
19524
content/transcripts/s03e15.srt
Normal file
19524
content/transcripts/s03e15.srt
Normal file
File diff suppressed because it is too large
Load Diff
13512
content/transcripts/s03e16.srt
Normal file
13512
content/transcripts/s03e16.srt
Normal file
File diff suppressed because it is too large
Load Diff
10668
content/transcripts/s03e17.srt
Normal file
10668
content/transcripts/s03e17.srt
Normal file
File diff suppressed because it is too large
Load Diff
19620
content/transcripts/s03e18.srt
Normal file
19620
content/transcripts/s03e18.srt
Normal file
File diff suppressed because it is too large
Load Diff
12412
content/transcripts/s03e19.srt
Normal file
12412
content/transcripts/s03e19.srt
Normal file
File diff suppressed because it is too large
Load Diff
15988
content/transcripts/s03e20.srt
Normal file
15988
content/transcripts/s03e20.srt
Normal file
File diff suppressed because it is too large
Load Diff
29264
content/transcripts/s04e47.srt
Normal file
29264
content/transcripts/s04e47.srt
Normal file
File diff suppressed because it is too large
Load Diff
23604
content/transcripts/s04e48.srt
Normal file
23604
content/transcripts/s04e48.srt
Normal file
File diff suppressed because it is too large
Load Diff
19224
content/transcripts/s04e49.srt
Normal file
19224
content/transcripts/s04e49.srt
Normal file
File diff suppressed because it is too large
Load Diff
22596
content/transcripts/s04e50.srt
Normal file
22596
content/transcripts/s04e50.srt
Normal file
File diff suppressed because it is too large
Load Diff
19268
content/transcripts/s04e51.srt
Normal file
19268
content/transcripts/s04e51.srt
Normal file
File diff suppressed because it is too large
Load Diff
16372
content/transcripts/s04e52.srt
Normal file
16372
content/transcripts/s04e52.srt
Normal file
File diff suppressed because it is too large
Load Diff
17676
content/transcripts/s04e53.srt
Normal file
17676
content/transcripts/s04e53.srt
Normal file
File diff suppressed because it is too large
Load Diff
28872
content/transcripts/s04e54.srt
Normal file
28872
content/transcripts/s04e54.srt
Normal file
File diff suppressed because it is too large
Load Diff
13792
content/transcripts/s04e55.srt
Normal file
13792
content/transcripts/s04e55.srt
Normal file
File diff suppressed because it is too large
Load Diff
28332
content/transcripts/s04e56.srt
Normal file
28332
content/transcripts/s04e56.srt
Normal file
File diff suppressed because it is too large
Load Diff
38192
content/transcripts/s04e57.srt
Normal file
38192
content/transcripts/s04e57.srt
Normal file
File diff suppressed because it is too large
Load Diff
11560
content/transcripts/s05e21.srt
Normal file
11560
content/transcripts/s05e21.srt
Normal file
File diff suppressed because it is too large
Load Diff
9420
content/transcripts/s05e22.srt
Normal file
9420
content/transcripts/s05e22.srt
Normal file
File diff suppressed because it is too large
Load Diff
11360
content/transcripts/s05e23.srt
Normal file
11360
content/transcripts/s05e23.srt
Normal file
File diff suppressed because it is too large
Load Diff
12760
content/transcripts/s05e24.srt
Normal file
12760
content/transcripts/s05e24.srt
Normal file
File diff suppressed because it is too large
Load Diff
11408
content/transcripts/s05e25.srt
Normal file
11408
content/transcripts/s05e25.srt
Normal file
File diff suppressed because it is too large
Load Diff
9192
content/transcripts/s05e26.srt
Executable file
9192
content/transcripts/s05e26.srt
Executable file
File diff suppressed because it is too large
Load Diff
7760
content/transcripts/s05e27.srt
Executable file
7760
content/transcripts/s05e27.srt
Executable file
File diff suppressed because it is too large
Load Diff
14832
content/transcripts/s05e28.srt
Executable file
14832
content/transcripts/s05e28.srt
Executable file
File diff suppressed because it is too large
Load Diff
7712
content/transcripts/s05e29.srt
Normal file
7712
content/transcripts/s05e29.srt
Normal file
File diff suppressed because it is too large
Load Diff
4304
content/transcripts/s05e30.srt
Normal file
4304
content/transcripts/s05e30.srt
Normal file
File diff suppressed because it is too large
Load Diff
3
content/transcripts/transcripts.json
Normal file
3
content/transcripts/transcripts.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"tags":["transcript"]
|
||||
}
|
||||
@@ -12,7 +12,7 @@ eleventyComputed:
|
||||
<date>{{formatDate this.date "MMMM d, yyyy"}}</date><br>
|
||||
{{#if podcast}}
|
||||
<a href="{{{podcast.enclosureUrl}}}">Download</a>
|
||||
{{#if podcast.transcriptUrl}}| <a href="{{{podcast.transcriptUrl}}}">Transcript</a>{{/if}}
|
||||
{{#if podcast.transcriptPage}}| <a href="{{{podcast.transcriptPage}}}">Transcript</a>{{/if}}
|
||||
|
||||
<div>
|
||||
<audio controls>
|
||||
|
||||
11
layouts/transcript.hbs
Normal file
11
layouts/transcript.hbs
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
layout: base
|
||||
---
|
||||
<script>
|
||||
{{{content}}}
|
||||
</script>
|
||||
{{#each transcript}}
|
||||
<div>
|
||||
{{formatDuration this.data.start "hh:mm:ss"}}: {{this.data.text}}
|
||||
</div>
|
||||
{{/each}}
|
||||
102
package-lock.json
generated
102
package-lock.json
generated
@@ -27,7 +27,8 @@
|
||||
"music-metadata": "^10.5.1",
|
||||
"npx": "^10.2.2",
|
||||
"podcast": "^2.0.1",
|
||||
"sass": "^1.80.3"
|
||||
"sass": "^1.80.3",
|
||||
"subtitle": "^4.2.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@11ty/eleventy-fetch": {
|
||||
@@ -468,6 +469,24 @@
|
||||
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
|
||||
"integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="
|
||||
},
|
||||
"node_modules/@types/multipipe": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/multipipe/-/multipipe-3.0.5.tgz",
|
||||
"integrity": "sha512-mHBbV67bsmUtLtio0gj/GPzGsjv+Y6K1ff/48iR6YAfFfLkBtRIR0M5lZPbkMCyHGrCZM9p3VNnfY1QCws4t4w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "22.10.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz",
|
||||
"integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~6.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-bgblack": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-bgblack/-/ansi-bgblack-0.1.1.tgz",
|
||||
@@ -1494,6 +1513,15 @@
|
||||
"url": "https://dotenvx.com"
|
||||
}
|
||||
},
|
||||
"node_modules/duplexer2": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
|
||||
"integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"readable-stream": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/ent": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ent/-/ent-2.2.1.tgz",
|
||||
@@ -2962,6 +2990,16 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
||||
},
|
||||
"node_modules/multipipe": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-4.0.0.tgz",
|
||||
"integrity": "sha512-jzcEAzFXoWwWwUbvHCNPwBlTz3WCWe/jPcXSmTfbo/VjRwRTfvLZ/bdvtiTdqCe8d4otCSsPCbhGYcX+eggpKQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"duplexer2": "^0.1.2",
|
||||
"object-assign": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/music-metadata": {
|
||||
"version": "10.5.1",
|
||||
"resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-10.5.1.tgz",
|
||||
@@ -7639,6 +7677,15 @@
|
||||
"url": "https://github.com/fb55/nth-check?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/object-assign": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/object-copy": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
|
||||
@@ -8486,6 +8533,29 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/split2": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
|
||||
"integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"readable-stream": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/split2/node_modules/readable-stream": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
||||
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/sprintf-js": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
||||
@@ -8539,6 +8609,15 @@
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-bom": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
|
||||
"integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/striptags": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz",
|
||||
@@ -8561,6 +8640,21 @@
|
||||
"url": "https://github.com/sponsors/Borewit"
|
||||
}
|
||||
},
|
||||
"node_modules/subtitle": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/subtitle/-/subtitle-4.2.1.tgz",
|
||||
"integrity": "sha512-ohV7DcQAYjoO8SDTZHaD912g6K+JktbLERlkZyuoNWSXboOOdIvuriF4fZC0T6lbVeiqLfR8mmw3CxIJ5+UTuw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/multipipe": "^3.0.0",
|
||||
"multipipe": "^4.0.0",
|
||||
"split2": "^3.2.2",
|
||||
"strip-bom": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/success-symbol": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz",
|
||||
@@ -8753,6 +8847,12 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "6.20.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
|
||||
"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/union-value": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
"music-metadata": "^10.5.1",
|
||||
"npx": "^10.2.2",
|
||||
"podcast": "^2.0.1",
|
||||
"sass": "^1.80.3"
|
||||
"sass": "^1.80.3",
|
||||
"subtitle": "^4.2.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const { DateTime } = require("luxon");
|
||||
const { DateTime, Duration } = require("luxon");
|
||||
|
||||
module.exports = {
|
||||
seasonEpisodeFormat: (_, {
|
||||
@@ -61,6 +61,9 @@ module.exports = {
|
||||
formatDate: (date, format = "MMMM d, yyyy") => {
|
||||
return DateTime.fromJSDate(new Date(date)).toFormat(format);
|
||||
},
|
||||
formatDuration: (milliseconds, format = "hh:mm:ss") => {
|
||||
return Duration.fromMillis(milliseconds).toFormat(format);
|
||||
},
|
||||
episodeNumber: (s, episode) => {
|
||||
return episode ? Number(episode) : Number(s.replace(/[^0-9]/,''))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user