fix: корректная генерация английских скриншотов
setLang(SCRIPT_LANG) вызывается после page.reload(), потому что forceLang сбрасывается между reload-ами и resolveLang ставил LANG='ru'. Жёсткая проверка 'Бросков' в дневнике сделана языкозависимой. Переименована LANG -> SCRIPT_LANG для избежания конфликта с глобальной LANG. Перегенерированы screenshots-wiki (ru) и screenshots-wiki-en (en) — по 30 кадров.
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 193 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 189 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 245 KiB After Width: | Height: | Size: 239 KiB |
|
Before Width: | Height: | Size: 287 KiB After Width: | Height: | Size: 283 KiB |
|
Before Width: | Height: | Size: 229 KiB After Width: | Height: | Size: 230 KiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 279 KiB |
|
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 295 KiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 286 KiB |
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 150 KiB |
|
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 298 KiB After Width: | Height: | Size: 281 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 171 KiB After Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 189 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 247 KiB After Width: | Height: | Size: 250 KiB |
|
Before Width: | Height: | Size: 292 KiB After Width: | Height: | Size: 289 KiB |
|
Before Width: | Height: | Size: 231 KiB After Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 268 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 289 KiB |
|
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 257 KiB |
|
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 307 KiB After Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 155 KiB |
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 299 KiB After Width: | Height: | Size: 291 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 148 KiB |
@@ -51,7 +51,7 @@ const GAME_DIR = process.argv[2] ? path.resolve(process.argv[2]) : path.resolve(
|
||||
const OUT = process.argv[3] ? path.resolve(process.argv[3]) : path.join(GAME_DIR, 'screenshots-wiki');
|
||||
const GAME = 'file://' + path.join(GAME_DIR, 'index.html');
|
||||
const CHROMIUM = process.env.CHROMIUM || '/usr/bin/chromium-browser';
|
||||
const LANG = (process.argv[4] === 'en') ? 'en' : 'ru';
|
||||
const SCRIPT_LANG = (process.argv[4] === 'en') ? 'en' : 'ru';
|
||||
|
||||
const VIEWPORTS = [
|
||||
{ key: 'desk', w: 1280, h: 720, dsf: 1 },
|
||||
@@ -113,10 +113,12 @@ async function captureSet(browser, vp) {
|
||||
await page.setViewport({ width: vp.w, height: vp.h, deviceScaleFactor: vp.dsf });
|
||||
await page.goto(GAME, { waitUntil: 'load' });
|
||||
// язык: forceLang + setLang (обновляет UI на en/ru)
|
||||
await page.evaluate(() => { forceLang = (LANG === 'en') ? 'en' : null; setLang(LANG); });
|
||||
await page.evaluate((lang) => { forceLang = (lang === 'en') ? 'en' : null; setLang(lang); }, SCRIPT_LANG);
|
||||
// чистый сейв на каждом вьюпорте: кадры согласованы, без переноса прогресса
|
||||
await page.evaluate(() => localStorage.clear());
|
||||
await page.reload({ waitUntil: 'load' });
|
||||
// после reload forceLang/resolveLang сбрасываются на ru — ставим язык заново
|
||||
await page.evaluate((lang) => setLang(lang), SCRIPT_LANG);
|
||||
await page.waitForFunction(
|
||||
() => !document.getElementById('menu').classList.contains('hidden'),
|
||||
{ timeout: 8000, polling: 50 });
|
||||
@@ -147,7 +149,11 @@ async function captureSet(browser, vp) {
|
||||
// дневник — вкладка #tabJournal
|
||||
await page.click('#tabJournal');
|
||||
await page.waitForFunction(
|
||||
() => document.getElementById('shopBody').textContent.indexOf('Бросков') >= 0,
|
||||
() => {
|
||||
const text = document.getElementById('shopBody').textContent;
|
||||
if (LANG === 'en') return text.indexOf('Casts') >= 0;
|
||||
return text.indexOf('Бросков') >= 0;
|
||||
},
|
||||
{ timeout: 3000, polling: 50 });
|
||||
await waitPaint(page);
|
||||
await shoot(page, `${vp.key}-journal.png`);
|
||||
@@ -245,7 +251,7 @@ async function captureSet(browser, vp) {
|
||||
});
|
||||
let n = 0;
|
||||
for (const vp of VIEWPORTS) {
|
||||
console.log('=== viewport', vp.key, vp.w + 'x' + vp.h + '@' + vp.dsf, '(lang=' + LANG + ')');
|
||||
console.log('=== viewport', vp.key, vp.w + 'x' + vp.h + '@' + vp.dsf, '(lang=' + SCRIPT_LANG + ')');
|
||||
await captureSet(browser, vp);
|
||||
n += FRAMES.length;
|
||||
}
|
||||
|
||||