folxplay-clone/prod-test.js

38 lines
1.4 KiB
JavaScript

const puppeteer = require('puppeteer-core');
const fs = require('fs');
const OUT = '/root/folxplay-test/prod';
fs.mkdirSync(OUT, { recursive: true });
(async () => {
const browser = await puppeteer.launch({
executablePath: '/usr/bin/google-chrome',
headless: 'new',
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--autoplay-policy=no-user-gesture-required']
});
const page = await browser.newPage();
await page.setViewport({ width: 1440, height: 900 });
console.log('Loading https://folxplay.biba.live ...');
const resp = await page.goto('https://folxplay.biba.live/', { waitUntil: 'networkidle2', timeout: 20000 });
console.log('HTTP status:', resp.status());
console.log('Final URL:', resp.url());
await new Promise(r => setTimeout(r, 1500));
await page.screenshot({ path: OUT + '/prod-home.png', fullPage: false });
console.log('prod-home.png saved');
// Click Folx Music
await page.click('[data-channel="mt"]');
await new Promise(r => setTimeout(r, 5000));
await page.screenshot({ path: OUT + '/prod-playing.png', fullPage: false });
const state = await page.evaluate(() => {
const v = document.getElementById('video');
return v ? { paused: v.paused, currentTime: v.currentTime, duration: v.duration, vw: v.videoWidth, vh: v.videoHeight } : null;
});
console.log('Video state:', JSON.stringify(state));
await browser.close();
})();