Improvements, GrapQL experiments. Fixed Babel dependencies.
This commit is contained in:
@@ -40,6 +40,9 @@ async function createThumbnail(buffer) {
|
||||
height: config.media.thumbnailSize,
|
||||
withoutEnlargement: true,
|
||||
})
|
||||
.jpeg({
|
||||
quality: 50,
|
||||
})
|
||||
.toBuffer();
|
||||
}
|
||||
|
||||
|
||||
@@ -272,19 +272,29 @@ function curateReleases(releases) {
|
||||
return Promise.all(releases.map(async release => curateRelease(release)));
|
||||
}
|
||||
|
||||
async function getChannelSite(release) {
|
||||
try {
|
||||
const site = await findSiteByUrl(release.channel);
|
||||
|
||||
return site || null;
|
||||
} catch (error) {
|
||||
const [site] = await fetchSites({
|
||||
name: release.channel,
|
||||
slug: release.channel,
|
||||
});
|
||||
|
||||
return site || null;
|
||||
async function attachChannelSite(release) {
|
||||
if (!release.site.isFallback || !release.channel) {
|
||||
throw new Error(`Unable to derive channel site from generic URL: ${release.url}.`);
|
||||
}
|
||||
|
||||
const [site] = await fetchSites({
|
||||
name: release.channel,
|
||||
slug: release.channel,
|
||||
});
|
||||
|
||||
if (site) {
|
||||
return {
|
||||
...release,
|
||||
site,
|
||||
};
|
||||
}
|
||||
|
||||
const urlSite = await findSiteByUrl(release.channel);
|
||||
|
||||
return {
|
||||
...release,
|
||||
site: urlSite,
|
||||
};
|
||||
}
|
||||
|
||||
async function curateReleaseEntry(release) {
|
||||
@@ -307,15 +317,6 @@ async function curateReleaseEntry(release) {
|
||||
deep: typeof release.deep === 'boolean' ? release.deep : false,
|
||||
};
|
||||
|
||||
if (release.site.isFallback && release.channel) {
|
||||
const site = await getChannelSite(release);
|
||||
|
||||
if (site) {
|
||||
curatedRelease.site_id = site.id;
|
||||
return curatedRelease;
|
||||
}
|
||||
}
|
||||
|
||||
return curatedRelease;
|
||||
}
|
||||
|
||||
@@ -477,18 +478,13 @@ async function storeRelease(release) {
|
||||
|
||||
async function storeReleases(releases) {
|
||||
const storedReleases = await Promise.map(releases, async (release) => {
|
||||
if (release.site.isFallback && !release.channel) {
|
||||
console.error(`Unable to derive channel site from generic URL: ${release.url}.`);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
const releaseId = await storeRelease(release);
|
||||
const releaseWithChannelSite = await attachChannelSite(release);
|
||||
const releaseId = await storeRelease(releaseWithChannelSite);
|
||||
|
||||
return {
|
||||
id: releaseId,
|
||||
...release,
|
||||
...releaseWithChannelSite,
|
||||
};
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
@@ -16,7 +16,7 @@ async function scrapeProfile(html, _url, actorName) {
|
||||
const { document } = new JSDOM(html).window;
|
||||
|
||||
const entries = Array.from(document.querySelectorAll('.infoPiece'), el => el.textContent.replace(/\n|\t/g, '').split(':'));
|
||||
const bio = entries.reduce((acc, [key, value]) => ({ ...acc, [key.trim()]: value.trim() }), {});
|
||||
const bio = entries.reduce((acc, [key, value]) => (key ? { ...acc, [key.trim()]: value.trim() } : acc), {});
|
||||
|
||||
const profile = {
|
||||
name: actorName,
|
||||
|
||||
Reference in New Issue
Block a user