const axios = require('axios'); const express = require("express"); const router = express.Router(); const user_agent = process.env.USER_AGENT || "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"; router.get('/gethtml/:Url', async (req, res) => { const { Url } = req.params; const replacedUrl = decodeURIComponent(Url); const url = replacedUrl.replace(/\.wakame02\./g, '.'); if (!url) { return res.status(400).send('URLが入力されていません'); } try { const response = await axios.get(url, { headers: { 'User-Agent': user_agent, 'Accept-Language': 'ja;q=1.0,en;q=0.5', 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive', } }); const html = response.data; res.send(` View Source: ${url}
${escapeHTML(response.data)}
`); } catch (error) { res.status(500).send(`

エラー: ${error.message}

`); } }); function escapeHTML(html) { return html.replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } router.get('/get/:Url', async (req, res) => { const { Url } = req.params; const replacedUrl = decodeURIComponent(Url); const url = replacedUrl.replace(/\.wakame02\./g, '.'); const baseUrl = new URL(url); if (!url) { return res.status(400).send('URLが入力されていません'); } try { const response = await axios.get(url, { headers: { 'User-Agent': user_agent, 'Accept-Language': 'ja;q=1.0,en;q=0.5', 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive', } }); let html = response.data; html = html.replace(/([\s\S]*?)<\/a>/g, (match, beforeHref, url, afterHref, innerText) => { let absoluteUrl; try { if (url.startsWith('http') || url.startsWith('https')) { absoluteUrl = url; } else { absoluteUrl = new URL(url, baseUrl).href; } } catch (e) { console.error('Error parsing URL:', url, e); return match; } const replacedAbsoluteUrl = absoluteUrl.replace(/\./g, '.wakame02.'); const encoded = encodeURIComponent(replacedAbsoluteUrl); return `${innerText}`; }); res.send(html); } catch (error) { res.status(500).send(`

エラー: ${error.message}

`); } }); module.exports = router;