Merge pull request #1015 from yunwuu/main

fix typo & add timeout to stuck request
This commit is contained in:
Yifei Zhang 2023-04-23 01:57:30 +08:00 committed by GitHub
commit 2efba6ea6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,10 +10,20 @@ const RAW_EN_URL = "f/awesome-chatgpt-prompts/main/prompts.csv";
const EN_URL = MIRRORF_FILE_URL + RAW_EN_URL; const EN_URL = MIRRORF_FILE_URL + RAW_EN_URL;
const FILE = "./public/prompts.json"; const FILE = "./public/prompts.json";
const timeoutPromise = (timeout) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error('Request timeout'));
}, timeout);
});
};
async function fetchCN() { async function fetchCN() {
console.log("[Fetch] fetching cn prompts..."); console.log("[Fetch] fetching cn prompts...");
try { try {
const raw = await (await fetch(CN_URL)).json(); // const raw = await (await fetch(CN_URL)).json();
const response = await Promise.race([fetch(CN_URL), timeoutPromise(5000)]);
const raw = await response.json();
return raw.map((v) => [v.act, v.prompt]); return raw.map((v) => [v.act, v.prompt]);
} catch (error) { } catch (error) {
console.error("[Fetch] failed to fetch cn prompts", error); console.error("[Fetch] failed to fetch cn prompts", error);
@ -24,13 +34,15 @@ async function fetchCN() {
async function fetchEN() { async function fetchEN() {
console.log("[Fetch] fetching en prompts..."); console.log("[Fetch] fetching en prompts...");
try { try {
const raw = await (await fetch(EN_URL)).text(); // const raw = await (await fetch(EN_URL)).text();
const response = await Promise.race([fetch(EN_URL), timeoutPromise(5000)]);
const raw = response.text();
return raw return raw
.split("\n") .split("\n")
.slice(1) .slice(1)
.map((v) => v.split('","').map((v) => v.replace('"', ""))); .map((v) => v.split('","').map((v) => v.replace('"', "")));
} catch (error) { } catch (error) {
console.error("[Fetch] failed to fetch cn prompts", error); console.error("[Fetch] failed to fetch en prompts", error);
return []; return [];
} }
} }