Compare commits

..

1 Commits

Author SHA1 Message Date
Naida Vatric
81fa3f046d Default true for include incomplete ads. 2020-02-15 00:52:06 +01:00
4 changed files with 54 additions and 31 deletions

View File

@@ -218,7 +218,7 @@ class SaljicCrawler {
} }
async scrapeAd(url, adType) { async scrapeAd(url, adType) {
console.log("[SALJIC] Scraping : ", url); // console.log("[SALJIC] Scraping : ", url);
try { try {
const adPageSource = await fetch(url); const adPageSource = await fetch(url);
const body = await adPageSource.text(); const body = await adPageSource.text();
@@ -227,9 +227,7 @@ class SaljicCrawler {
// No information for status ex. PRODAN // No information for status ex. PRODAN
const status = AD_STATUS.STATUS_NORMAL; const status = AD_STATUS.STATUS_NORMAL;
//Extracting agency ID from url //Extracting agency ID from url
const agencyObjectId = url const agencyObjectId = parseInt(url.substring(46, url.length));
? parseInt(url.substring(46, url.length))
: null;
//Extracting main properties //Extracting main properties
const propertySelectors = { const propertySelectors = {
@@ -274,10 +272,14 @@ class SaljicCrawler {
.trim(); .trim();
const latAndLongSrc = $(propertySelectors.latAndLong).attr("src"); const latAndLongSrc = $(propertySelectors.latAndLong).attr("src");
const tmpLatLong = latAndLongSrc.split("marker=")[1]; const latText = latAndLongSrc.substring(
const latText = tmpLatLong.split("%2C")[0]; latAndLongSrc.indexOf("marker=") + 7,
const longText = tmpLatLong.split("%2C")[1]; latAndLongSrc.indexOf("%2C", latAndLongSrc.indexOf("marker="))
);
const longText = latAndLongSrc.substring(
latAndLongSrc.indexOf("%2C", latAndLongSrc.indexOf("marker=")) + 3,
latAndLongSrc.length
);
const locationLat = parseFloat(latText) || null; const locationLat = parseFloat(latText) || null;
const locationLong = parseFloat(longText) || null; const locationLong = parseFloat(longText) || null;
@@ -326,10 +328,11 @@ class SaljicCrawler {
let numberOfViewsKivi = null; let numberOfViewsKivi = null;
let streetNumber = 0; let streetNumber = 0;
let adStatus = status; let adStatus = status;
let shortDescription = descriptions let shortDescription = descriptions.substring(
? descriptions.substring(0, descriptions.indexOf(".")) 0,
: ""; descriptions.indexOf(".")
let longDescription = descriptions || ""; );
let longDescription = descriptions;
//Extracting data - Glavne karakteristike //Extracting data - Glavne karakteristike
let mainFieldIndex = 1; let mainFieldIndex = 1;
do { do {
@@ -340,14 +343,10 @@ class SaljicCrawler {
.replace(/[\n\r\t]/gm, "") .replace(/[\n\r\t]/gm, "")
.trim(); .trim();
const mainFieldTitle = mainField const mainFieldTitle = mainField.substring(0, mainField.indexOf(" "));
? mainField.substring(0, mainField.indexOf(" "))
: "";
const mainFieldValue = mainField const mainFieldValue = mainField
? mainField .substring(mainField.indexOf(" "), mainField.length)
.substring(mainField.indexOf(" "), mainField.length) .trim();
.trim()
: "";
switch (mainFieldTitle) { switch (mainFieldTitle) {
case "Površina": case "Površina":

View File

@@ -332,10 +332,14 @@ const findRealEstatesForSearchRequest = async (searchRequest, maxResults) => {
}; };
} }
//When includeIncompleteAds are not defined - null it will consider it true
const order = [["updatedAt", "desc"]]; const order = [["updatedAt", "desc"]];
return db.RealEstate.findAll({ return db.RealEstate.findAll({
where: includeIncompleteAds ? queryIncludeIncomplete : query, where:
includeIncompleteAds || includeIncompleteAds == null
? queryIncludeIncomplete
: query,
limit: maxResults, limit: maxResults,
order order
}); });

View File

@@ -157,7 +157,7 @@ const findSearchRequestsForRealEstate = async realEstate => {
} else { } else {
// If real estate dont have defined number of rooms ex. null // If real estate dont have defined number of rooms ex. null
//It returns requests that didn't choose number of rooms - also null //It returns requests that didn't choose number of rooms - also null
//Or ones that picked some values but also picked to includeIncomplete ads //Or ones that picked some values but also picked to includeIncomplete ads (or default)
numberOfRoomsQuery = { numberOfRoomsQuery = {
[Op.or]: [ [Op.or]: [
{ {
@@ -176,7 +176,10 @@ const findSearchRequestsForRealEstate = async realEstate => {
}, },
{ {
includeIncompleteAds: { includeIncompleteAds: {
[Op.eq]: true [Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
} }
} }
] ]
@@ -226,7 +229,10 @@ const findSearchRequestsForRealEstate = async realEstate => {
}, },
{ {
includeIncompleteAds: { includeIncompleteAds: {
[Op.eq]: true [Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
} }
} }
] ]
@@ -275,7 +281,10 @@ const findSearchRequestsForRealEstate = async realEstate => {
}, },
{ {
includeIncompleteAds: { includeIncompleteAds: {
[Op.eq]: true [Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
} }
} }
] ]
@@ -313,7 +322,10 @@ const findSearchRequestsForRealEstate = async realEstate => {
}, },
{ {
includeIncompleteAds: { includeIncompleteAds: {
[Op.eq]: true [Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
} }
} }
] ]
@@ -347,7 +359,10 @@ const findSearchRequestsForRealEstate = async realEstate => {
}, },
{ {
includeIncompleteAds: { includeIncompleteAds: {
[Op.eq]: true [Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
} }
} }
] ]
@@ -381,7 +396,10 @@ const findSearchRequestsForRealEstate = async realEstate => {
}, },
{ {
includeIncompleteAds: { includeIncompleteAds: {
[Op.eq]: true [Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
} }
} }
] ]
@@ -423,10 +441,13 @@ const findSearchRequestsForRealEstate = async realEstate => {
[Op.eq]: "ANY" [Op.eq]: "ANY"
}; };
} }
//Tag to check if incomplete ads are accepted in query //Tag to check if incomplete ads are accepted in query which is default
if (checkForIncompleteWanted) { if (checkForIncompleteWanted) {
query.includeIncompleteAds = { query.includeIncompleteAds = {
[Op.eq]: true [Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
}; };
} }

View File

@@ -61,9 +61,8 @@
<p class="distinguished"> <p class="distinguished">
<label class="checkbox-label"> <label class="checkbox-label">
<input type="checkbox" class="filled-in" name="includeIncompleteAds" <input type="checkbox" class="filled-in" name="includeIncompleteAds"
<% if (includeIncompleteAds) { %>
checked checked
<% } %>> >
<span>Uključi i oglase bez potpunih informacija</span> <span>Uključi i oglase bez potpunih informacija</span>
</label> </label>
</p> </p>