init
This commit is contained in:
+69
-69
@@ -1,77 +1,77 @@
|
||||
import fetch from "node-fetch";
|
||||
import fs from "fs/promises";
|
||||
// import fetch from "node-fetch";
|
||||
// import fs from "fs/promises";
|
||||
|
||||
const RAW_FILE_URL = "https://raw.githubusercontent.com/";
|
||||
const MIRRORF_FILE_URL = "http://raw.fgit.ml/";
|
||||
// const RAW_FILE_URL = "https://raw.githubusercontent.com/";
|
||||
// // const MIRRORF_FILE_URL = "http://raw.fgit.ml/";
|
||||
|
||||
const RAW_CN_URL = "PlexPt/awesome-chatgpt-prompts-zh/main/prompts-zh.json";
|
||||
const CN_URL = MIRRORF_FILE_URL + RAW_CN_URL;
|
||||
const RAW_EN_URL = "f/awesome-chatgpt-prompts/main/prompts.csv";
|
||||
const EN_URL = MIRRORF_FILE_URL + RAW_EN_URL;
|
||||
const FILE = "./public/prompts.json";
|
||||
// const RAW_CN_URL = "PlexPt/awesome-chatgpt-prompts-zh/main/prompts-zh.json";
|
||||
// const CN_URL = RAW_FILE_URL + RAW_CN_URL;
|
||||
// const RAW_EN_URL = "f/awesome-chatgpt-prompts/main/prompts.csv";
|
||||
// const EN_URL = RAW_FILE_URL + RAW_EN_URL;
|
||||
// const FILE = "./public/prompts.json";
|
||||
|
||||
const ignoreWords = ["涩涩", "魅魔"];
|
||||
// const ignoreWords = [];
|
||||
|
||||
const timeoutPromise = (timeout) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
setTimeout(() => {
|
||||
reject(new Error("Request timeout"));
|
||||
}, timeout);
|
||||
});
|
||||
};
|
||||
// const timeoutPromise = (timeout) => {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// setTimeout(() => {
|
||||
// reject(new Error("Request timeout"));
|
||||
// }, timeout);
|
||||
// });
|
||||
// };
|
||||
|
||||
async function fetchCN() {
|
||||
console.log("[Fetch] fetching cn prompts...");
|
||||
try {
|
||||
const response = await Promise.race([fetch(CN_URL), timeoutPromise(5000)]);
|
||||
const raw = await response.json();
|
||||
return raw
|
||||
.map((v) => [v.act, v.prompt])
|
||||
.filter(
|
||||
(v) =>
|
||||
v[0] &&
|
||||
v[1] &&
|
||||
ignoreWords.every((w) => !v[0].includes(w) && !v[1].includes(w)),
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("[Fetch] failed to fetch cn prompts", error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
// async function fetchCN() {
|
||||
// console.log("[Fetch] fetching cn prompts...");
|
||||
// try {
|
||||
// const response = await Promise.race([fetch(CN_URL), timeoutPromise(5000)]);
|
||||
// const raw = await response.json();
|
||||
// return raw
|
||||
// .map((v) => [v.act, v.prompt])
|
||||
// .filter(
|
||||
// (v) =>
|
||||
// v[0] &&
|
||||
// v[1] &&
|
||||
// ignoreWords.every((w) => !v[0].includes(w) && !v[1].includes(w)),
|
||||
// );
|
||||
// } catch (error) {
|
||||
// console.error("[Fetch] failed to fetch cn prompts", error);
|
||||
// return [];
|
||||
// }
|
||||
// }
|
||||
|
||||
async function fetchEN() {
|
||||
console.log("[Fetch] fetching en prompts...");
|
||||
try {
|
||||
// const raw = await (await fetch(EN_URL)).text();
|
||||
const response = await Promise.race([fetch(EN_URL), timeoutPromise(5000)]);
|
||||
const raw = await response.text();
|
||||
return raw
|
||||
.split("\n")
|
||||
.slice(1)
|
||||
.map((v) =>
|
||||
v
|
||||
.split('","')
|
||||
.map((v) => v.replace(/^"|"$/g, "").replaceAll('""', '"'))
|
||||
.filter((v) => v[0] && v[1]),
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("[Fetch] failed to fetch en prompts", error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
// async function fetchEN() {
|
||||
// console.log("[Fetch] fetching en prompts...");
|
||||
// try {
|
||||
// // const raw = await (await fetch(EN_URL)).text();
|
||||
// const response = await Promise.race([fetch(EN_URL), timeoutPromise(5000)]);
|
||||
// const raw = await response.text();
|
||||
// return raw
|
||||
// .split("\n")
|
||||
// .slice(1)
|
||||
// .map((v) =>
|
||||
// v
|
||||
// .split('","')
|
||||
// .map((v) => v.replace(/^"|"$/g, "").replaceAll('""', '"'))
|
||||
// .filter((v) => v[0] && v[1]),
|
||||
// );
|
||||
// } catch (error) {
|
||||
// console.error("[Fetch] failed to fetch en prompts", error);
|
||||
// return [];
|
||||
// }
|
||||
// }
|
||||
|
||||
async function main() {
|
||||
Promise.all([fetchCN(), fetchEN()])
|
||||
.then(([cn, en]) => {
|
||||
fs.writeFile(FILE, JSON.stringify({ cn, en }));
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error("[Fetch] failed to fetch prompts");
|
||||
fs.writeFile(FILE, JSON.stringify({ cn: [], en: [] }));
|
||||
})
|
||||
.finally(() => {
|
||||
console.log("[Fetch] saved to " + FILE);
|
||||
});
|
||||
}
|
||||
// async function main() {
|
||||
// Promise.all([fetchCN(), fetchEN()])
|
||||
// .then(([cn, en]) => {
|
||||
// fs.writeFile(FILE, JSON.stringify({ cn, en }));
|
||||
// })
|
||||
// .catch((e) => {
|
||||
// console.error("[Fetch] failed to fetch prompts");
|
||||
// fs.writeFile(FILE, JSON.stringify({ cn: [], en: [] }));
|
||||
// })
|
||||
// .finally(() => {
|
||||
// console.log("[Fetch] saved to " + FILE);
|
||||
// });
|
||||
// }
|
||||
|
||||
main();
|
||||
// main();
|
||||
|
||||
Reference in New Issue
Block a user