update UI and QOL

This commit is contained in:
HPL-JesusCastro
2026-06-03 10:36:02 +08:00
parent 5e34832234
commit f26bf647b1
22 changed files with 965 additions and 57 deletions

View File

@@ -4,7 +4,7 @@ const path = require('path');
const crypto = require('crypto');
const multer = require('multer');
const { listAds, getAd, updateAd, updateAdFile, updateAdThumbnail, deleteAd } = require('../db');
const { captureScreenshot } = require('../utils/screenshot');
const { captureScreenshot, captureScreenshotCandidates } = require('../utils/screenshot');
const UPLOADS_DIR = process.env.UPLOADS_DIR || path.join(__dirname, '..', '..', 'uploads');
@@ -91,6 +91,22 @@ router.post('/:id/screenshot', async (req, res) => {
}
});
router.post('/:id/screenshot-candidates', async (req, res) => {
const ad = getAd(req.params.id);
if (!ad) return res.status(404).json({ error: 'Not found' });
try {
const port = process.env.PORT || 3000;
const url = `http://127.0.0.1:${port}/uploads/${ad.filename}`;
const buffers = await captureScreenshotCandidates(url);
const candidates = buffers.map(buf => 'data:image/png;base64,' + buf.toString('base64'));
res.json({ candidates });
} catch (err) {
console.error('Screenshot candidates failed:', err.message);
res.status(500).json({ error: 'Screenshot capture failed' });
}
});
router.post('/:id/file', uploadFile.single('file'), (req, res) => {
const ad = getAd(req.params.id);
if (!ad) return res.status(404).json({ error: 'Not found' });

View File

@@ -0,0 +1,24 @@
const express = require('express');
const { listDevelopers, addDeveloper, removeDeveloper } = require('../db');
const router = express.Router();
router.get('/', (_req, res) => {
res.json(listDevelopers());
});
router.post('/', (req, res) => {
const { name } = req.body;
if (!name?.trim()) return res.status(400).json({ error: 'name is required' });
const dev = addDeveloper(name.trim());
if (!dev) return res.status(409).json({ error: 'Developer already exists' });
res.status(201).json(dev);
});
router.delete('/:id', (req, res) => {
const dev = removeDeveloper(req.params.id);
if (!dev) return res.status(404).json({ error: 'Not found' });
res.status(204).end();
});
module.exports = router;