Allowing image sources to specify queue method. Using 5s queue for Whale Member to avoid CDN time-outs.

This commit is contained in:
2020-07-01 04:47:05 +02:00
parent 53870fda89
commit 1f444e58ce
12 changed files with 183 additions and 100 deletions

View File

@@ -35,6 +35,7 @@ function useProxy(url) {
}
const queue = taskQueue();
const defaultQueueMethod = '20p';
async function handler({
url,
@@ -44,9 +45,9 @@ async function handler({
options = {},
}) {
if (body) {
logger.silly(`${method.toUpperCase()} ${url} with ${JSON.stringify(body)}`);
logger.silly(`${method.toUpperCase()} ${url} with ${JSON.stringify(body)} ${options.queueMethod || defaultQueueMethod}`);
} else {
logger.silly(`${method.toUpperCase()} ${url}`);
logger.silly(`${method.toUpperCase()} ${url} ${options.queueMethod || defaultQueueMethod}`);
}
const reqOptions = {
@@ -98,8 +99,12 @@ queue.define('1s', handler, {
interval: 1,
});
async function get(url, headers, options, queueMethod = '20p') {
return queue.push(queueMethod, {
queue.define('5s', handler, {
interval: 5,
});
async function get(url, headers, options) {
return queue.push(options.queueMethod || defaultQueueMethod, {
method: 'GET',
url,
headers,
@@ -107,8 +112,8 @@ async function get(url, headers, options, queueMethod = '20p') {
});
}
async function post(url, body, headers, options, queueMethod = '20p') {
return queue.push(queueMethod, {
async function post(url, body, headers, options) {
return queue.push(options.queueMethod || defaultQueueMethod, {
method: 'POST',
url,
body,

View File

@@ -12,7 +12,7 @@ async function resolvePlace(query) {
// https://operations.osmfoundation.org/policies/nominatim/
const res = await http.get(`https://nominatim.openstreetmap.org/search/${encodeURI(query)}?format=json&accept-language=en&addressdetails=1`, {
'User-Agent': 'contact at moonloop.adult@protonmail.com',
}, null, '1s');
}, { queueMethod: '1s' });
const [item] = res.body;