mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
* Fredy now supports pulling the main Image from the listing and send it together with the usual information
48 lines
1.3 KiB
JavaScript
Executable File
48 lines
1.3 KiB
JavaScript
Executable File
import utils, { buildHash } from '../utils.js';
|
|
|
|
let appliedBlackList = [];
|
|
|
|
function nullOrEmpty(val) {
|
|
return val == null || val.length === 0;
|
|
}
|
|
|
|
function normalize(o) {
|
|
const link = nullOrEmpty(o.link)
|
|
? 'NO LINK'
|
|
: `https://www.neubaukompass.de${o.link.substring(o.link.indexOf('/neubau'))}`;
|
|
const id = buildHash(o.link, o.price);
|
|
return Object.assign(o, { id, link });
|
|
}
|
|
|
|
function applyBlacklist(o) {
|
|
return !utils.isOneOf(o.title, appliedBlackList);
|
|
}
|
|
|
|
const config = {
|
|
url: null,
|
|
crawlContainer: '.col-12.mb-4',
|
|
sortByDateParam: 'Sortierung=Id&Richtung=DESC',
|
|
waitForSelector: '.nbk-section',
|
|
crawlFields: {
|
|
id: 'a@href',
|
|
title: 'a@title | removeNewline | trim',
|
|
link: 'a@href',
|
|
address: '.nbk-project-card__description | removeNewline | trim',
|
|
price: '.nbk-project-card__spec-item .nbk-project-card__spec-value | removeNewline | trim',
|
|
image: '.nbk-project-card__image@src',
|
|
},
|
|
normalize: normalize,
|
|
filter: applyBlacklist,
|
|
};
|
|
export const init = (sourceConfig, blacklist) => {
|
|
config.enabled = sourceConfig.enabled;
|
|
config.url = sourceConfig.url;
|
|
appliedBlackList = blacklist || [];
|
|
};
|
|
export const metaInformation = {
|
|
name: 'Neubau Kompass',
|
|
baseUrl: 'https://www.neubaukompass.de/',
|
|
id: 'neubauKompass',
|
|
};
|
|
export { config };
|