Compare commits
6 Commits
fixing-sal
...
saljic-cra
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f56cd5b549 | ||
|
|
addd8c1344 | ||
|
|
fc7fe3c0b3 | ||
|
|
b3007123a5 | ||
|
|
f7d4a9cd07 | ||
|
|
ab6812889a |
@@ -9,7 +9,7 @@ const APP_URL =
|
||||
? process.env.APP_URL || "http://market-alarm"
|
||||
: process.env.APP_URL || `${APP_BASE_URL}:${APP_PORT}`;
|
||||
|
||||
const STAGING = process.env.SETTINGS !== "production";
|
||||
const STAGING = process.env.ENVIRONMENT !== "production";
|
||||
|
||||
const DEFAULT_TIMEZONE = "Europe/Sarajevo";
|
||||
|
||||
@@ -55,5 +55,4 @@ module.exports = {
|
||||
STAGING,
|
||||
CHECK_UP_DAYS,
|
||||
PROSTOR_LOGIN
|
||||
|
||||
};
|
||||
|
||||
@@ -218,7 +218,7 @@ class SaljicCrawler {
|
||||
}
|
||||
|
||||
async scrapeAd(url, adType) {
|
||||
// console.log("[SALJIC] Scraping : ", url);
|
||||
console.log("[SALJIC] Scraping : ", url);
|
||||
try {
|
||||
const adPageSource = await fetch(url);
|
||||
const body = await adPageSource.text();
|
||||
@@ -227,7 +227,9 @@ class SaljicCrawler {
|
||||
// No information for status ex. PRODAN
|
||||
const status = AD_STATUS.STATUS_NORMAL;
|
||||
//Extracting agency ID from url
|
||||
const agencyObjectId = parseInt(url.substring(46, url.length));
|
||||
const agencyObjectId = url
|
||||
? parseInt(url.substring(46, url.length))
|
||||
: null;
|
||||
|
||||
//Extracting main properties
|
||||
const propertySelectors = {
|
||||
@@ -272,14 +274,10 @@ class SaljicCrawler {
|
||||
.trim();
|
||||
|
||||
const latAndLongSrc = $(propertySelectors.latAndLong).attr("src");
|
||||
const latText = latAndLongSrc.substring(
|
||||
latAndLongSrc.indexOf("marker=") + 7,
|
||||
latAndLongSrc.indexOf("%2C", latAndLongSrc.indexOf("marker="))
|
||||
);
|
||||
const longText = latAndLongSrc.substring(
|
||||
latAndLongSrc.indexOf("%2C", latAndLongSrc.indexOf("marker=")) + 3,
|
||||
latAndLongSrc.length
|
||||
);
|
||||
const tmpLatLong = latAndLongSrc.split("marker=")[1];
|
||||
const latText = tmpLatLong.split("%2C")[0];
|
||||
const longText = tmpLatLong.split("%2C")[1];
|
||||
|
||||
const locationLat = parseFloat(latText) || null;
|
||||
const locationLong = parseFloat(longText) || null;
|
||||
|
||||
@@ -328,11 +326,10 @@ class SaljicCrawler {
|
||||
let numberOfViewsKivi = null;
|
||||
let streetNumber = 0;
|
||||
let adStatus = status;
|
||||
let shortDescription = descriptions.substring(
|
||||
0,
|
||||
descriptions.indexOf(".")
|
||||
);
|
||||
let longDescription = descriptions;
|
||||
let shortDescription = descriptions
|
||||
? descriptions.substring(0, descriptions.indexOf("."))
|
||||
: "";
|
||||
let longDescription = descriptions || "";
|
||||
//Extracting data - Glavne karakteristike
|
||||
let mainFieldIndex = 1;
|
||||
do {
|
||||
@@ -343,10 +340,14 @@ class SaljicCrawler {
|
||||
.replace(/[\n\r\t]/gm, "")
|
||||
.trim();
|
||||
|
||||
const mainFieldTitle = mainField.substring(0, mainField.indexOf(" "));
|
||||
const mainFieldTitle = mainField
|
||||
? mainField.substring(0, mainField.indexOf(" "))
|
||||
: "";
|
||||
const mainFieldValue = mainField
|
||||
.substring(mainField.indexOf(" "), mainField.length)
|
||||
.trim();
|
||||
? mainField
|
||||
.substring(mainField.indexOf(" "), mainField.length)
|
||||
.trim()
|
||||
: "";
|
||||
|
||||
switch (mainFieldTitle) {
|
||||
case "Površina":
|
||||
|
||||
@@ -131,7 +131,7 @@ const notifyRequestsWithDailyOption = async () => {
|
||||
};
|
||||
|
||||
const checkUpNotify = async () => {
|
||||
const searchRequestsForCheckUp = await findAllRequestsForCheckUp();
|
||||
/* const searchRequestsForCheckUp = await findAllRequestsForCheckUp();
|
||||
|
||||
const asyncSendEmailActions = [];
|
||||
|
||||
@@ -144,7 +144,7 @@ const checkUpNotify = async () => {
|
||||
asyncSendEmailActions.push(sendEmailPromise);
|
||||
sendEmailPromise.catch(err => console.log("[Email Sending Failed]", err));
|
||||
}
|
||||
await Promise.all(asyncSendEmailActions);
|
||||
await Promise.all(asyncSendEmailActions); */
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
|
||||
@@ -8,7 +8,7 @@ SEQUELIZE_LOGGING=0- no sequelize logging, 1- log to the console
|
||||
PORT=Port for the app, defaults to 5000
|
||||
APP_BASE_URL=base url for the app
|
||||
|
||||
SETTINGS=Variable to denote development, staging and production
|
||||
ENVIRONMENT=Variable to denote development, staging and production
|
||||
|
||||
|
||||
MAX_REAL_ESTATES_IN_EMAIL=Max number of real estates that will be shown in email, others will be truncated and URL with full list will be shwon
|
||||
|
||||
Reference in New Issue
Block a user