DeMoon-AutoGetMod/index.js
2024-06-09 03:45:45 +00:00

80 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const axios = require('axios');
const fs = require('fs');
const readline = require('readline');
// Modrinth API URL
const API_URL = 'https://api.modrinth.com/v2/search';
// 本地服务器URL
const LOCAL_SERVER_URL = 'http://192.168.1.7:5000/modid';
// 用于存储请求结果的数组
let results = [];
// 用于记录请求的次数
let requestCount = 0;
// 用于记录请求的间隔时间(毫秒)
const requestInterval = 3000; // 3秒
// 用于读取Modrinth API返回的响应
async function fetchModrinthData(page) {
try {
// 构建查询参数
const facets = [["project_type:mod"]];
const params = {
facets: JSON.stringify(facets),
limit: 96,
offset: page * 96 // 更新offset以获取下一页数据
};
// 发送请求
const response = await axios.get(API_URL, {
params: params
});
// 处理响应数据
response.data.hits.forEach(async (hit) => {
const modid = hit.slug;
const clientSide = hit.client_side;
const serverSide = hit.server_side;
// 根据client_side和server_side的值计算client参数
let client = false;
if (clientSide === "required" && serverSide === "required") {
client = "trlse"; // 两者都要求
} else if (clientSide === "required") {
client = true; // 只有client_side要求
} else if (serverSide === "required") {
client = false; // 只有server_side要求
} else {
client = false; // 两者都不要求或为optional
}
// 构建本地服务器请求的URL包含根据client_side和server_side计算出的client值
const localUrl = `${LOCAL_SERVER_URL}?modid=${modid}&client=${client}`;
// 发送请求到本地服务器
try {
const localResponse = await axios.get(localUrl);
// 处理本地服务器的响应
console.log(`处理了modid: ${modid}`);
console.log(`本地服务器响应: ${localResponse.data}`);
} catch (localError) {
// 忽略本地服务器请求的错误
console.log(`处理modid ${modid}时本地服务器请求失败: ${localError.message}`);
}
});
// 如果有下一页,继续请求
if (response.data.offset < response.data.total_hits) {
await fetchModrinthData(page + 1);
}
} catch (error) {
// 忽略Modrinth API请求的错误
console.log(`处理Modrinth API请求时发生错误: ${error.message}`);
}
}
// 开始请求Modrinth API
fetchModrinthData(0); // 从第0页开始