-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
25 changed files
with
284 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
inputHash: '0536f51fa72c2e4e368ea0e901aadfc1', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/splash-screen_fhd.jpg', | ||
outputHash: 'b15f3a3f1ccc459cbca12cb828b78d16', | ||
width: 1920, | ||
height: 1080, | ||
background: '#242424', | ||
}, | ||
{ | ||
outputFilePath: 'src/images/splash-screen_hd.jpg', | ||
outputHash: '25e9c4220f8a42101d6333e548e33aa8', | ||
width: 1280, | ||
height: 720, | ||
background: '#242424', | ||
}, | ||
{ | ||
outputFilePath: 'src/images/splash-screen_sd.jpg', | ||
outputHash: 'c54a2f7fa65f443263806962450f2c04', | ||
width: 720, | ||
height: 480, | ||
background: '#242424', | ||
}, | ||
], | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
{ | ||
inputHash: "d61131ccc714d8df0b4514ca76883494", | ||
outputs: [], | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
inputHash: '3452c6ea1c84f59aedf5530bf86a7a51', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/channel-poster_fhd.png', | ||
outputHash: 'd644a0db84deed0bcc41a41d08a4ef75', | ||
width: 540, | ||
height: 405, | ||
background: '#FFFFFF', | ||
}, | ||
{ | ||
outputFilePath: 'src/images/channel-poster_hd.png', | ||
outputHash: 'd07a4ffaa021b55528bee91710f4e9d2', | ||
width: 290, | ||
height: 218, | ||
background: '#FFFFFF', | ||
}, | ||
{ | ||
outputFilePath: 'src/images/channel-poster_sd.png', | ||
outputHash: '66a311c639f89ff009e4624468282b2f', | ||
width: 246, | ||
height: 140, | ||
background: '#FFFFFF', | ||
}, | ||
], | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
inputHash: 'b88a05052cd01cb7a89bd6802418d79e', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/icons/filters-black.png', | ||
outputHash: 'f0a7539ae840c00a2d91292f993bb75e', | ||
width: 64, | ||
height: 64, | ||
}, | ||
], | ||
} |
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
inputHash: 'df7918a3b43642f707cc0d9fcfd2d9ee', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/icons/filters-white.png', | ||
outputHash: '914e2c8da9772c23c24bebbd39c918f2', | ||
width: 64, | ||
height: 64, | ||
}, | ||
], | ||
} |
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
inputHash: '788d5e9ddc5a26953392afa17a85a05c', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/icons/home.png', | ||
outputHash: '3da3ed864137ace837ef2f96a4e5e13d', | ||
width: 64, | ||
height: 64, | ||
}, | ||
], | ||
} |
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
inputHash: '92a5720049ca36c38c695969534c2bb5', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/icons/info.png', | ||
outputHash: '31b5c5c342ded1bc99b3466c2fbaaf09', | ||
width: 64, | ||
height: 64, | ||
}, | ||
], | ||
} |
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
inputHash: 'e6318f56ce4c0cc637cf0cc3180a2013', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/icons/phone.png', | ||
outputHash: '2d7ece94b64fa5a725adeea5a313cbcf', | ||
width: 64, | ||
height: 64, | ||
}, | ||
], | ||
} |
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
inputHash: 'dede98d4bf3c835836c82c485600108c', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/icons/search.png', | ||
outputHash: '5b5fb4128202a1e074b04ee570bbcf69', | ||
width: 64, | ||
height: 64, | ||
}, | ||
], | ||
} |
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
inputHash: '11d4a0bfa1ae239216088d825851ec4a', | ||
outputs: [ | ||
{ | ||
outputFilePath: 'src/images/icons/settings.png', | ||
outputHash: '1b6d024df95af8b002e469453e29a632', | ||
width: 64, | ||
height: 64, | ||
}, | ||
], | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
// This plugin converts svg files to png/jpeg files | ||
|
||
import { | ||
CompilerPlugin, ProgramBuilder, | ||
} from 'brighterscript'; | ||
import { readFileSync, renameSync, rmSync, writeFileSync } from 'fs'; | ||
import { existsSync } from 'fs-extra'; | ||
import { globSync } from 'glob'; | ||
import md5 from 'crypto-js/md5'; | ||
import { join as joinPath, relative as relativePath } from 'path'; | ||
import json5 from 'json5'; | ||
const shell = require('shelljs'); | ||
|
||
const META_EXT = '.meta.json5'; | ||
|
||
export class ImageGenPlugin implements CompilerPlugin { | ||
public name = 'ImageGenPlugin'; | ||
|
||
beforeProgramCreate(builder: ProgramBuilder) { | ||
const rootDir = builder.options.rootDir!; | ||
|
||
const svgFiles = globSync(`**/*.svg`, { cwd: rootDir }); | ||
|
||
svgFiles.forEach((svg) => { | ||
// Web app can use svg files, no need to convert | ||
if (svg.includes('www')) { | ||
return; | ||
} | ||
|
||
const svgFile = relativePath(process.cwd(), joinPath(rootDir, svg)); | ||
const metafile = `${svgFile}${META_EXT}`; | ||
if (!existsSync(metafile)) { | ||
this.createDefaultMetaFile(svgFile, metafile); | ||
} | ||
|
||
const meta = json5.parse(readFileSync(metafile, 'utf8')); | ||
|
||
this.generateImages(svgFile, meta, metafile); | ||
}); | ||
} | ||
|
||
createDefaultMetaFile(svgFile: string, metafile: string) { | ||
const meta = { | ||
inputHash: '', | ||
outputs: [{ | ||
outputFilePath: svgFile.replace('.svg', '.png'), | ||
outputHash: '', | ||
width: 64, | ||
height: 64, | ||
}] | ||
} | ||
|
||
writeFileSync(metafile, json5.stringify(meta, null, 2)); | ||
} | ||
|
||
generateImages(svgFile: string, meta: any, metafile: string) { | ||
let metaChanged = false; | ||
const inputHash = this.checkFileHash(svgFile, meta.inputHash); | ||
if (!inputHash.valid) { | ||
meta.inputHash = inputHash.hash; | ||
metaChanged = true; | ||
} | ||
|
||
for (var i in meta.outputs) { | ||
const output = meta.outputs[i]; | ||
|
||
let outputHash = this.checkFileHash(output.outputFilePath, output.outputHash); | ||
|
||
if (inputHash.valid && outputHash.valid) { | ||
continue; | ||
} | ||
|
||
this.generateImage(svgFile, output); | ||
outputHash = this.checkFileHash(output.outputFilePath, output.outputHash); | ||
|
||
output.outputHash = outputHash.hash; | ||
metaChanged = true; | ||
} | ||
|
||
if (metaChanged) { | ||
writeFileSync(metafile, json5.stringify(meta, null, 2)); | ||
} | ||
} | ||
|
||
generateImage(svgFile: string, output: any) { | ||
shell.exec(`node ../tools/convert-image.js --input "${svgFile}" --options '${JSON.stringify(output)}'`) | ||
} | ||
|
||
checkFileHash(file: string, hash: string) { | ||
if (!existsSync(file)) { | ||
return { | ||
valid: false, | ||
hash: '' | ||
} | ||
} | ||
|
||
const outputHash = md5(readFileSync(file, 'binary')).toString(); | ||
return { | ||
valid: outputHash === hash, | ||
hash: outputHash | ||
} | ||
} | ||
} | ||
|
||
export default () => { | ||
return new ImageGenPlugin(); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
// Description: Converts SVGs to PNGs and resizes them to the correct dimensions. | ||
|
||
const { ArgumentParser } = require('argparse') | ||
const { convertFile } = require('convert-svg-to-png'); | ||
|
||
(async () => { | ||
const parser = new ArgumentParser({ | ||
description: 'Sync Youtube profile with Invidious' | ||
}); | ||
|
||
parser.add_argument('--input', { help: 'Input file path' }); | ||
parser.add_argument('--options', { help: 'Options as json string' }); | ||
|
||
const args = parser.parse_args() | ||
const input = args.input | ||
const options = JSON.parse(args.options) | ||
|
||
await convertFile(input, options); | ||
})(); |
Oops, something went wrong.