diff --git a/js/constants.js b/js/constants.js index 802e17d2..a3a78a32 100644 --- a/js/constants.js +++ b/js/constants.js @@ -25,3 +25,38 @@ export const PLAYLIST_RESIZE_SEGMENT_HEIGHT = 29; export const MIN_PLAYLIST_WINDOW_WIDTH = 275; export const TRACK_HEIGHT = 13; export const LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); + +export const DEFAULT_VIS_COLORS = [ + "rgb(0,0,0)", + "rgb(24,33,41)", + "rgb(239,49,16)", + "rgb(206,41,16)", + "rgb(214,90,0)", + "rgb(214,102,0)", + "rgb(214,115,0)", + "rgb(198,123,8)", + "rgb(222,165,24)", + "rgb(214,181,33)", + "rgb(189,222,41)", + "rgb(148,222,33)", + "rgb(41,206,16)", + "rgb(50,190,16)", + "rgb(57,181,16)", + "rgb(49,156,8)", + "rgb(41,148,0)", + "rgb(24,132,8)", + "rgb(255,255,255)", + "rgb(214,214,222)", + "rgb(181,189,189)", + "rgb(160,170,175)", + "rgb(148,156,165)", + "rgb(150,150,150)" +]; + +export const DEFAULT_PLAYLIST_STYLE = { + normal: "#00FF00", + current: "#FFFFFF", + normalbg: "#000000", + selectedbg: "#0000FF", + font: "Arial" +}; diff --git a/js/skinParser.js b/js/skinParser.js index aab50eef..2a706eb6 100644 --- a/js/skinParser.js +++ b/js/skinParser.js @@ -1,8 +1,11 @@ import JSZip from "../node_modules/jszip/dist/jszip"; // Hack import SKIN_SPRITES from "./skinSprites"; import regionParser from "./regionParser"; -import { LETTERS } from "./constants"; -import { parseViscolors, parseIni } from "./utils"; +import { + LETTERS, + DEFAULT_VIS_COLORS, + DEFAULT_PLAYLIST_STYLE +} from "./constants"; const shallowMerge = objs => objs.reduce((prev, img) => Object.assign(prev, img), {}); @@ -131,47 +134,12 @@ async function getCursorFromFilename(zip, fileName) { return base64 && `data:image/x-win-bitmap;base64,${base64}`; } -const defaultVisColors = [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" -]; - -const defaultPlaylistStyle = { - normal: "#00FF00", - current: "#FFFFFF", - normalbg: "#000000", - selectedbg: "#0000FF", - font: "Arial" -}; - async function genPlaylistStyle(zip) { const pleditContent = await genFileFromZip(zip, "PLEDIT", "txt", "text"); const data = pleditContent && parseIni(pleditContent).text; if (!data) { // Corrupt or missing PLEDIT.txt file. - return defaultPlaylistStyle; + return DEFAULT_PLAYLIST_STYLE; } // Winamp seems to permit colors that contain too many characters. @@ -187,12 +155,12 @@ async function genPlaylistStyle(zip) { data[colorKey] = color.slice(0, 7); }); - return { ...defaultPlaylistStyle, ...data }; + return { ...DEFAULT_PLAYLIST_STYLE, ...data }; } async function genColors(zip) { const viscolorContent = await genFileFromZip(zip, "VISCOLOR", "txt", "text"); - return viscolorContent ? parseViscolors(viscolorContent) : defaultVisColors; + return viscolorContent ? parseViscolors(viscolorContent) : DEFAULT_VIS_COLORS; } async function genImages(zip) { diff --git a/js/utils.js b/js/utils.js index ca9c1ca6..0630b146 100644 --- a/js/utils.js +++ b/js/utils.js @@ -1,3 +1,5 @@ +import { DEFAULT_VIS_COLORS } from "./constants"; + export const getTimeObj = time => { if (time == null) { // If we clean up `` we don't need to do this any more. @@ -65,11 +67,9 @@ export const parseViscolors = text => { // - @PAEz for (let i = 0; i < 24; i++) { const matches = regex.exec(entries[i]); - if (matches) { - colors[i] = `rgb(${matches.slice(1, 4).join(",")})`; - } else { - console.error(`Error in VISCOLOR.TXT on line ${i}`); - } + colors[i] = matches + ? `rgb(${matches.slice(1, 4).join(",")})` + : DEFAULT_VIS_COLORS[i]; } return colors; };