var express = require('express'); var router = express.Router(); const utils = require('../../libs/utils'); const config = require('../../config/app'); const translate = require('../../config/translate'); // deeplink share 专属页路由 router.get('/:id', function (req, res, next) { (async function () { let id = req.params.id; utils.validators.validateId(id); let lang = utils.lang.ensureLanguage(req.query.lang); let host = config.cdnHost ?? config.resHost; let imageUrl = `${host}/thumbs/coloring-page/work/480/${id}.webp`; let applink = `https://art.pcoloring.com${req.originalUrl}`; let downlink = `https://pcoloring.com/anc/`; const userAgent = req.headers['user-agent']; console.log('User-Agent:', userAgent); if (userAgent) { const ua = userAgent.toLowerCase(); if (ua.includes('iphone') || ua.includes('ipad') || ua.includes('ipod')) { downlink = 'itms-apps://itunes.apple.com/app/id1575480118'; } else if (ua.includes('android')) { downlink = 'https://play.google.com/store/apps/details?id=com.pcoloring.art.puzzle.color.by.number'; } } let data = { id, imageUrl, applink, downlink, lang, translate, } // 渲染EJS模板到内存中 res.render('v2/share', data, async (err, html) => { if (err) { // 如果渲染出错,调用next()传递错误 return next(err); } res.send(html); }); })().catch(next); }); module.exports = router;