|
@@ -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,7 +34,9 @@ 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)
|