multi-downloader-nx_mirror/modules/module.fontsData.ts
2021-10-29 22:42:50 +02:00

93 lines
3.2 KiB
TypeScript

// fonts src
const root = 'https://static.crunchyroll.com/vilos-v2/web/vilos/assets/libass-fonts/';
// file list
const fonts = {
'Adobe Arabic': 'AdobeArabic-Bold.otf',
'Andale Mono': 'andalemo.ttf',
'Arial': 'arial.ttf',
'Arial Bold': 'arialbd.ttf',
'Arial Bold Italic': 'arialbi.ttf',
'Arial Italic': 'ariali.ttf',
'Arial Unicode MS': 'arialuni.ttf',
'Arial Black': 'ariblk.ttf',
'Comic Sans MS': 'comic.ttf',
'Comic Sans MS Bold': 'comicbd.ttf',
'Courier New': 'cour.ttf',
'Courier New Bold': 'courbd.ttf',
'Courier New Bold Italic': 'courbi.ttf',
'Courier New Italic': 'couri.ttf',
'DejaVu LGC Sans Mono Bold': 'DejaVuLGCSansMono-Bold.ttf',
'DejaVu LGC Sans Mono Bold Oblique': 'DejaVuLGCSansMono-BoldOblique.ttf',
'DejaVu LGC Sans Mono Oblique': 'DejaVuLGCSansMono-Oblique.ttf',
'DejaVu LGC Sans Mono': 'DejaVuLGCSansMono.ttf',
'DejaVu Sans Bold': 'DejaVuSans-Bold.ttf',
'DejaVu Sans Bold Oblique': 'DejaVuSans-BoldOblique.ttf',
'DejaVu Sans ExtraLight': 'DejaVuSans-ExtraLight.ttf',
'DejaVu Sans Oblique': 'DejaVuSans-Oblique.ttf',
'DejaVu Sans': 'DejaVuSans.ttf',
'DejaVu Sans Condensed Bold': 'DejaVuSansCondensed-Bold.ttf',
'DejaVu Sans Condensed Bold Oblique': 'DejaVuSansCondensed-BoldOblique.ttf',
'DejaVu Sans Condensed Oblique': 'DejaVuSansCondensed-Oblique.ttf',
'DejaVu Sans Condensed': 'DejaVuSansCondensed.ttf',
'DejaVu Sans Mono Bold': 'DejaVuSansMono-Bold.ttf',
'DejaVu Sans Mono Bold Oblique': 'DejaVuSansMono-BoldOblique.ttf',
'DejaVu Sans Mono Oblique': 'DejaVuSansMono-Oblique.ttf',
'DejaVu Sans Mono': 'DejaVuSansMono.ttf',
'Georgia': 'georgia.ttf',
'Georgia Bold': 'georgiab.ttf',
'Georgia Italic': 'georgiai.ttf',
'Georgia Bold Italic': 'georgiaz.ttf',
'Impact': 'impact.ttf',
'Rubik Black': 'Rubik-Black.ttf',
'Rubik Black Italic': 'Rubik-BlackItalic.ttf',
'Rubik Bold': 'Rubik-Bold.ttf',
'Rubik Bold Italic': 'Rubik-BoldItalic.ttf',
'Rubik Italic': 'Rubik-Italic.ttf',
'Rubik Light': 'Rubik-Light.ttf',
'Rubik Light Italic': 'Rubik-LightItalic.ttf',
'Rubik Medium': 'Rubik-Medium.ttf',
'Rubik Medium Italic': 'Rubik-MediumItalic.ttf',
'Rubik': 'Rubik-Regular.ttf',
'Tahoma': 'tahoma.ttf',
'Times New Roman': 'times.ttf',
'Times New Roman Bold': 'timesbd.ttf',
'Times New Roman Bold Italic': 'timesbi.ttf',
'Times New Roman Italic': 'timesi.ttf',
'Trebuchet MS': 'trebuc.ttf',
'Trebuchet MS Bold': 'trebucbd.ttf',
'Trebuchet MS Bold Italic': 'trebucbi.ttf',
'Trebuchet MS Italic': 'trebucit.ttf',
'Verdana': 'verdana.ttf',
'Verdana Bold': 'verdanab.ttf',
'Verdana Italic': 'verdanai.ttf',
'Verdana Bold Italic': 'verdanaz.ttf',
'Webdings': 'webdings.ttf',
};
// collect styles from ass string
function assFonts(ass: string){
let strings = ass.replace(/\r/g,'').split('\n');
let styles = [];
for(let s of strings){
if(s.match(/^Style: /)){
let addStyle = s.split(',');
styles.push(addStyle[1]);
}
}
return [...new Set(styles)];
}
// font mime type
function fontMime(fontFile: string){
if(fontFile.match(/\.otf$/)){
return 'application/vnd.ms-opentype';
}
if(fontFile.match(/\.ttf$/)){
return 'application/x-truetype-font';
}
return 'application/octet-stream';
}
// output
export { root, fonts, assFonts, fontMime };