2021-04-16 04:34:29 +00:00
|
|
|
import schema from './schema.js';
|
|
|
|
|
import resolvers from './resolvers.js';
|
|
|
|
|
import createLoader from './loader.js';
|
|
|
|
|
import MediaWikiClient from './client.js';
|
|
|
|
|
import { ONE_DAY } from '../../util.js';
|
2017-10-19 08:00:21 +00:00
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: 'MediaWiki',
|
2017-11-04 22:32:05 +00:00
|
|
|
description: `Retrieve information from MediaWiki image pages, like the actual
|
|
|
|
|
image file URL and EXIF metadata.`,
|
2017-11-07 05:54:56 +00:00
|
|
|
extendContext(context, { mediaWiki = {} } = {}) {
|
2021-04-16 04:34:29 +00:00
|
|
|
const client = new MediaWikiClient(mediaWiki);
|
2017-10-19 08:00:21 +00:00
|
|
|
const cacheSize = parseInt(
|
2017-11-07 05:54:56 +00:00
|
|
|
process.env.MEDIAWIKI_CACHE_SIZE ||
|
|
|
|
|
process.env.GRAPHBRAINZ_CACHE_SIZE ||
|
|
|
|
|
8192,
|
2017-10-19 08:00:21 +00:00
|
|
|
10
|
2021-04-16 04:34:29 +00:00
|
|
|
);
|
2017-10-19 08:00:21 +00:00
|
|
|
const cacheTTL = parseInt(
|
2017-11-07 05:54:56 +00:00
|
|
|
process.env.MEDIAWIKI_CACHE_TTL ||
|
|
|
|
|
process.env.GRAPHBRAINZ_CACHE_TTL ||
|
|
|
|
|
ONE_DAY,
|
2017-10-19 08:00:21 +00:00
|
|
|
10
|
2021-04-16 04:34:29 +00:00
|
|
|
);
|
2017-10-19 08:00:21 +00:00
|
|
|
return {
|
|
|
|
|
...context,
|
|
|
|
|
loaders: {
|
|
|
|
|
...context.loaders,
|
2021-04-16 04:34:29 +00:00
|
|
|
mediaWiki: createLoader({ client, cacheSize, cacheTTL }),
|
|
|
|
|
},
|
|
|
|
|
};
|
2017-10-19 08:00:21 +00:00
|
|
|
},
|
|
|
|
|
extendSchema: {
|
|
|
|
|
schemas: [schema],
|
2021-04-16 04:34:29 +00:00
|
|
|
resolvers,
|
|
|
|
|
},
|
|
|
|
|
};
|