mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2026-04-01 14:13:15 +08:00
Modularized Sub-Store
This commit is contained in:
29
backend/src/utils/download.js
Normal file
29
backend/src/utils/download.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const { HTTP } = require('./open-api');
|
||||
|
||||
const cache = new Map();
|
||||
|
||||
async function download(url, userAgent = 'Quantumult%20X') {
|
||||
const id = userAgent + url;
|
||||
if (cache.has(id)) {
|
||||
return cache.get(id);
|
||||
}
|
||||
|
||||
const $http = HTTP({
|
||||
headers: {
|
||||
'User-Agent': userAgent
|
||||
}
|
||||
});
|
||||
|
||||
const result = new Promise((resolve, reject) => {
|
||||
$http.get(url).then((resp) => {
|
||||
const body = resp.body;
|
||||
if (body.replace(/\s/g, '').length === 0) reject(new Error('订阅内容为空!'));
|
||||
else resolve(body);
|
||||
});
|
||||
});
|
||||
|
||||
cache[id] = result;
|
||||
return result;
|
||||
}
|
||||
|
||||
module.exports = download;
|
||||
Reference in New Issue
Block a user