mirror of
https://github.com/sunknudsen/privacy-guides.git
synced 2025-02-23 09:13:56 +00:00
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
"use strict"
|
|
|
|
import readdirp from "readdirp"
|
|
import fsExtra from "fs-extra"
|
|
import { parse, join } from "path"
|
|
import execa from "execa"
|
|
|
|
const { readFile, writeFile, remove } = fsExtra
|
|
|
|
const playerRegExp = /\[\!\[.*?\]\((.*?\.png)\)\]\((.*?) ".*?"\)/
|
|
|
|
;(async () => {
|
|
try {
|
|
console.info("Updating YouTube players…")
|
|
const options = {
|
|
fileFilter: "*.md",
|
|
directoryFilter: "!node_modules",
|
|
}
|
|
for await (const file of readdirp(process.cwd(), options)) {
|
|
const content = await readFile(file.fullPath, "utf8")
|
|
const lines = content.split("\n")
|
|
let updatedContent = ""
|
|
for (const [index, line] of lines.entries()) {
|
|
let lineBreak = "\n"
|
|
if (index === lines.length - 1) {
|
|
lineBreak = ""
|
|
}
|
|
let match
|
|
if ((match = line.match(playerRegExp))) {
|
|
const dir = parse(file.fullPath).dir
|
|
const imagePath = match[1]
|
|
const youtubeWatchUrl = match[2]
|
|
console.info(`Processing ${file.path}…`)
|
|
await remove(join(dir, imagePath))
|
|
const { stdout } = await execa("node", [
|
|
"node_modules/youtube-player-screenshot/bin/youtube-player-screenshot.js",
|
|
"--url",
|
|
youtubeWatchUrl,
|
|
"--type",
|
|
"jpeg",
|
|
"--output",
|
|
dir,
|
|
"--privacy",
|
|
"--stdout",
|
|
])
|
|
updatedContent += `${stdout}${lineBreak}`
|
|
} else {
|
|
updatedContent += `${line}${lineBreak}`
|
|
}
|
|
}
|
|
await writeFile(file.fullPath, updatedContent)
|
|
}
|
|
console.info("Done")
|
|
} catch (error) {
|
|
console.error(error.message)
|
|
}
|
|
})()
|