commit b30133e1dd851ccd9bb0889a987e62f78a1e7fc4 Author: Tianpao Date: Mon May 20 06:34:56 2024 +0800 git@154.201.72.75:Tianpao/MTB_Backend.git diff --git a/index.js b/index.js new file mode 100644 index 0000000..0337976 --- /dev/null +++ b/index.js @@ -0,0 +1,35 @@ +const express = require('express'); +const axios = require('axios'); + +const app = express(); +const port = 3000; +// Minecraft 3000 Minecraft Res 3002 +// Forge/Fabric/NeoForge/Optifine/LiteLoaer/Minecraft Maven 3001 +// MCBBS 3003 + +app.use((req, res, next) => { + const userAgent = req.headers['user-agent']; + if (userAgent && (userAgent.includes('PCL') || userAgent.includes('FCL') || userAgent.includes('HMCL') || userAgent.includes('BakaXL'))) { + next(); // User-Agent 已经包含所需字符串,无需修改 + } else { + // 重定向前设置 User-Agent + req.customUserAgent = 'MTB Hello'; + next(); + } +}); +////// +app.get('/:path(*)', (req, res) => { + const path = req.params.path; + const userAgent = req.customUserAgent || 'MTB Hello'; + const redirectUrl = `https://bmclapi2.bangbang93.com/${path}`; + res.set({ + 'Location': redirectUrl, + 'User-Agent': userAgent + }).status(302).end(); +}); + + + +app.listen(3000, () => { + console.log('Server is running on port 3000'); +}); diff --git a/maven.js b/maven.js new file mode 100644 index 0000000..9aa6547 --- /dev/null +++ b/maven.js @@ -0,0 +1,64 @@ +const express = require('express'); +const { createProxyMiddleware } = require('http-proxy-middleware'); + +const app = express(); +const port = 3001; + +app.use((req, res, next) => { + const userAgent = req.headers['user-agent']; + if (userAgent && (userAgent.includes('PCL') || userAgent.includes('FCL') || userAgent.includes('HMCL') || userAgent.includes('BakaXL'))) { + next(); // User-Agent 已经包含所需字符串,无需修改 + } else { + // 重定向前设置 User-Agent + req.customUserAgent = 'MTB Hello'; + next(); + } +}); + +app.get('/releases/:path(*)', (req, res) => { + const path = req.params.path; + const userAgent = req.customUserAgent || 'MTB Hello'; + const redirectUrl = `https://bmclapi2.bangbang93.com/maven/${path}`; + res.set({ + 'Location': redirectUrl, + 'User-Agent': userAgent + }).status(302).end(); +}); //下载处理 +app.get('/repository/release/:path(*)', (req, res) => { + const path = req.params.path; + const userAgent = req.customUserAgent || 'MTB Hello'; + const redirectUrl = `https://bmclapi2.bangbang93.com/maven/${path}`; + res.set({ + 'Location': redirectUrl, + 'User-Agent': userAgent + }).status(302).end(); +}); //下载处理 Qulit + +// 反代 maven Neoforge列表 +app.use('/api/maven/versions/releases/net/neoforged/forge', createProxyMiddleware({ + target: 'https://maven.neoforged.net/api/maven/versions/releases/net/neoforged/forge', + changeOrigin: true, + followRedirects: false +})); + +app.use('/api/maven/versions/releases/net/neoforged/neoforge', createProxyMiddleware({ + target: 'https://maven.neoforged.net/api/maven/versions/releases/net/neoforged/neoforge', + changeOrigin: true, + followRedirects: false +})); +//反代 maven Neoforge列表 + +app.get('/:path(*)', (req, res) => { + const path = req.params.path; + const userAgent = req.customUserAgent || 'MTB Hello'; + const redirectUrl = `https://bmclapi2.bangbang93.com/maven/${path}`; + res.set({ + 'Location': redirectUrl, + 'User-Agent': userAgent + }).status(302).end(); +}); + + +app.listen(port, () => { + console.log(`Server is running on port ${port}`); +}); diff --git a/mcbbs.js b/mcbbs.js new file mode 100644 index 0000000..6e421f9 --- /dev/null +++ b/mcbbs.js @@ -0,0 +1,32 @@ +const express = require('express'); +const axios = require('axios'); + +const app = express(); +const port = 3003; + +app.use((req, res, next) => { + const userAgent = req.headers['user-agent']; + if (userAgent && (userAgent.includes('PCL') || userAgent.includes('FCL') || userAgent.includes('HMCL') || userAgent.includes('BakaXL'))) { + next(); // User-Agent 已经包含所需字符串,无需修改 + } else { + // 重定向前设置 User-Agent + req.customUserAgent = 'MTB Hello'; + next(); + } +}); +////// +app.get('/:path(*)', (req, res) => { + const path = req.params.path; + const userAgent = req.customUserAgent || 'MTB Hello'; + const redirectUrl = `https://bmclapi2.bangbang93.com/${path}`; + res.set({ + 'Location': redirectUrl, + 'User-Agent': userAgent + }).status(302).end(); +}); + + + +app.listen(`${port}`, () => { + console.log(`Server is running on port ${port}`); +}); diff --git a/resmc.js b/resmc.js new file mode 100644 index 0000000..fe3298a --- /dev/null +++ b/resmc.js @@ -0,0 +1,32 @@ +const express = require('express'); +const axios = require('axios'); + +const app = express(); +const port = 3002; + +app.use((req, res, next) => { + const userAgent = req.headers['user-agent']; + if (userAgent && (userAgent.includes('PCL') || userAgent.includes('FCL') || userAgent.includes('HMCL') || userAgent.includes('BakaXL'))) { + next(); // User-Agent 已经包含所需字符串,无需修改 + } else { + // 重定向前设置 User-Agent + req.customUserAgent = 'MTB Hello'; + next(); + } +}); +////// +app.get('/:path(*)', (req, res) => { + const path = req.params.path; + const userAgent = req.customUserAgent || 'MTB Hello'; + const redirectUrl = `https://bmclapi2.bangbang93.com/assets/${path}`; + res.set({ + 'Location': redirectUrl, + 'User-Agent': userAgent + }).status(302).end(); +}); + + + +app.listen(3002, () => { + console.log('Server is running on port 3002'); +});