forked from DebaucheryLibrarian/traxxx
Added Bang! scraper. Showing studio on tile. Added favicons to tiles.
This commit is contained in:
@@ -180,6 +180,23 @@ async function attachChannelSite(release) {
|
||||
};
|
||||
}
|
||||
|
||||
async function attachStudio(release) {
|
||||
if (!release.studio) {
|
||||
return release;
|
||||
}
|
||||
|
||||
const studio = await knex('studios')
|
||||
.where('name', release.studio)
|
||||
.orWhere('slug', release.studio)
|
||||
.orWhere('url', release.studio)
|
||||
.first();
|
||||
|
||||
return {
|
||||
...release,
|
||||
studio,
|
||||
};
|
||||
}
|
||||
|
||||
async function curateReleaseEntry(release) {
|
||||
const curatedRelease = {
|
||||
site_id: release.site.id,
|
||||
@@ -295,27 +312,31 @@ async function storeReleaseAssets(release, releaseId) {
|
||||
await createMediaDirectory('releases', subpath);
|
||||
|
||||
try {
|
||||
await Promise.all([
|
||||
storePhotos(release.photos, {
|
||||
targetId: releaseId,
|
||||
subpath,
|
||||
primaryRole: release.poster ? null : 'poster',
|
||||
}, identifier),
|
||||
release.poster && storePhotos([release.poster], {
|
||||
// don't use Promise.all to prevent concurrency issues with duplicate detection
|
||||
if (release.poster) {
|
||||
await storePhotos([release.poster], {
|
||||
role: 'poster',
|
||||
targetId: releaseId,
|
||||
subpath,
|
||||
}, identifier),
|
||||
storePhotos(release.covers, {
|
||||
role: 'cover',
|
||||
targetId: releaseId,
|
||||
subpath,
|
||||
}, identifier),
|
||||
storeTrailer(release.trailer, {
|
||||
targetId: releaseId,
|
||||
subpath,
|
||||
}, identifier),
|
||||
]);
|
||||
}, identifier);
|
||||
}
|
||||
|
||||
await storePhotos(release.photos, {
|
||||
targetId: releaseId,
|
||||
subpath,
|
||||
primaryRole: release.poster ? null : 'poster',
|
||||
}, identifier);
|
||||
|
||||
await storePhotos(release.covers, {
|
||||
role: 'cover',
|
||||
targetId: releaseId,
|
||||
subpath,
|
||||
}, identifier);
|
||||
|
||||
await storeTrailer(release.trailer, {
|
||||
targetId: releaseId,
|
||||
subpath,
|
||||
}, identifier);
|
||||
} catch (error) {
|
||||
console.log(release.url, error);
|
||||
}
|
||||
@@ -363,7 +384,8 @@ async function storeReleases(releases) {
|
||||
const storedReleases = await Promise.map(releases, async (release) => {
|
||||
try {
|
||||
const releaseWithChannelSite = await attachChannelSite(release);
|
||||
const releaseId = await storeRelease(releaseWithChannelSite);
|
||||
const releaseWithStudio = await attachStudio(release);
|
||||
const releaseId = await storeRelease(releaseWithStudio);
|
||||
|
||||
return {
|
||||
id: releaseId,
|
||||
|
||||
Reference in New Issue
Block a user