diff --git a/experiments/automated_screenshots/index.js b/experiments/automated_screenshots/index.js index b8b78625..9406202a 100644 --- a/experiments/automated_screenshots/index.js +++ b/experiments/automated_screenshots/index.js @@ -1,6 +1,14 @@ const fs = require("fs"); const puppeteer = require("puppeteer"); const Filehound = require("filehound"); +const JSZip = require("jszip"); + +const validateZip = u => + new Promise((resolve, reject) => { + fs.readFile(u, (err, buffer) => { + JSZip.loadAsync(buffer).then(resolve, reject); + }); + }); const config = { equalizer: true, @@ -9,6 +17,21 @@ const config = { noMarquee: true, audioUrl: null, initialState: { + equalizer: { + sliders: { + "60": 52, + "170": 74, + "310": 83, + "600": 91, + "1000": 74, + "3000": 54, + "6000": 23, + "12000": 19, + "14000": 34, + "16000": 75, + preamp: 56 + } + }, media: { status: "PLAYING", kbps: 128, @@ -34,6 +57,14 @@ const config = { for (const skin of files) { const screenshotFile = `screenshots/${skin.replace(/\//g, "-")}.png`; + const skinUrl = `experiments/automated_screenshots/${skin}`; + console.log("Going to try", screenshotFile); + try { + await validateZip(`./${skin}`); + } catch (e) { + console.log("Error parsing", skinUrl, e); + continue; + } if (fs.existsSync(screenshotFile)) { console.log(screenshotFile, "exists already"); continue; @@ -43,16 +74,15 @@ const config = { page.on("console", (...args) => { console.log("PAGE LOG:", ...args); }); - config.skinUrl = `automated_screenshots/${skin}`; + config.skinUrl = skinUrl; const url = `http://localhost:8080/#${JSON.stringify(config)}`; console.log({ url }); await page["goto"](url); - await page.waitForSelector("#loaded"); + await page.waitForSelector("#loaded", { timeout: 1000 }); console.log("Writing screenshot to", screenshotFile); await page.screenshot({ path: screenshotFile }); await page.close(); - break; } browser.close(); })(); diff --git a/experiments/automated_screenshots/package.json b/experiments/automated_screenshots/package.json index 6e9e1764..01a234ac 100644 --- a/experiments/automated_screenshots/package.json +++ b/experiments/automated_screenshots/package.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "filehound": "^1.16.2", + "jszip": "^3.1.4", "puppeteer": "^0.10.1" } } diff --git a/experiments/automated_screenshots/yarn.lock b/experiments/automated_screenshots/yarn.lock index 0155223a..04b14ebe 100644 --- a/experiments/automated_screenshots/yarn.lock +++ b/experiments/automated_screenshots/yarn.lock @@ -35,6 +35,10 @@ concat-stream@1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +core-js@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -59,6 +63,10 @@ es6-promise@^4.0.3: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a" +es6-promise@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" + es6-promisify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" @@ -129,6 +137,10 @@ https-proxy-agent@^2.1.0: agent-base "^4.1.0" debug "^2.4.1" +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -136,7 +148,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -144,6 +156,22 @@ isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +jszip@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.4.tgz#fc323fe41bb1730348d20dd022aa4d8b57cbbcf9" + dependencies: + core-js "~2.3.0" + es6-promise "~3.0.2" + lie "~3.1.0" + pako "~1.0.2" + readable-stream "~2.0.6" + +lie@~3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + dependencies: + immediate "~3.0.5" + lodash@^4.13.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -186,6 +214,10 @@ once@^1.3.0: dependencies: wrappy "1" +pako@~1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -240,6 +272,17 @@ readable-stream@^2.2.2: string_decoder "~1.0.3" util-deprecate "~1.0.1" +readable-stream@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + retry@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" @@ -254,6 +297,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + string_decoder@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" diff --git a/js/components/PlaylistWindow/Track.js b/js/components/PlaylistWindow/Track.js index 4fe75ffa..03141548 100644 --- a/js/components/PlaylistWindow/Track.js +++ b/js/components/PlaylistWindow/Track.js @@ -7,6 +7,7 @@ import { CLICKED_TRACK, CTRL_CLICKED_TRACK } from "../../actionTypes"; const Track = props => { const { skinPlaylistStyle, + artist, selected, current, title, @@ -28,7 +29,9 @@ const Track = props => { >