diff --git a/app/lib/areThereAnyNewItems.js b/app/lib/areThereAnyNewItems.js deleted file mode 100644 index e886d7a..0000000 --- a/app/lib/areThereAnyNewItems.js +++ /dev/null @@ -1,10 +0,0 @@ -const convertToDate = require("./convertToDate"); - -function areThereAnyNewItems(lastItemDate, controlDate) { - if (!lastItemDate) { - return true; - } - return new Date(controlDate) < convertToDate(lastItemDate); -} - -module.exports = areThereAnyNewItems; diff --git a/app/lib/convertToDate.js b/app/lib/convertToDate.js deleted file mode 100644 index 26da222..0000000 --- a/app/lib/convertToDate.js +++ /dev/null @@ -1,13 +0,0 @@ -function convertToDate(date) { - const [dan, mjesec, godina] = date - .split(". u ")[0] - .split(".") - .map(el => Number(el)); - const [sati, minute] = date - .split(". u ")[1] - .split(":") - .map(el => Number(el)); - return new Date(godina, mjesec, dan, sati, minute); -} - -module.exports = convertToDate; diff --git a/app/lib/scrapTheItems.js b/app/lib/scrapTheItems.js deleted file mode 100644 index fc749fa..0000000 --- a/app/lib/scrapTheItems.js +++ /dev/null @@ -1,42 +0,0 @@ -let fetch = require("node-fetch"); -let cheerio = require("cheerio"); -const areThereAnyNewItems = require("./areThereAnyNewItems"); - -async function scrapTheItems(url, controlDate, noNewItems = false) { - let items = []; - let response = await fetch(url); - const body = await response.text(); - const $ = cheerio.load(body); - $("#rezultatipretrage") - .find(".listitem") - .each(async (index, elem) => { - if (noNewItems) return; - const itemDate = $(elem) - .find(".cijena > .datum > div") - .first() - .attr("data-cijelidatum"); - - if (controlDate && !areThereAnyNewItems(itemDate, controlDate)) { - noNewItems = true; - return; - } - - const id = $(elem) - .find("a") - .first() - .attr("href"); - const cijena = $(elem) - .find(".cijena > .datum > span") - .first() - .text(); - const image = $(elem) - .find("a > .slika > img") - .first() - .attr("src"); - - items.push({ url: id, price: cijena, image, date: itemDate }); - }); - return items; -} - -module.exports = scrapTheItems; diff --git a/app/lib/sendNotification.js b/app/lib/sendNotification.js deleted file mode 100644 index 430d5f1..0000000 --- a/app/lib/sendNotification.js +++ /dev/null @@ -1,57 +0,0 @@ -const scrapTheItems = require("./scrapTheItems"); -const convertToDate = require("./convertToDate"); -const AWS = require("aws-sdk"); -// AWS.config.update({region: 'eu-central-1'}); - -async function sendNotification(marketAlert) { - const { id, email, olx_url } = marketAlert; - let url = - "https://www.olx.ba/pretraga?" + olx_url + "&sort_order=desc&sort_po=datum"; - let newItems = await scrapTheItems(url); - let lastDate = newItems.length && newItems[0].date; - let message = - newItems.length && - newItems.reduce( - (mes, item) => mes + `${item.url} i ${item.price}`, - "" - ); - - // Create sendEmail params - const params = { - Destination: { - /* required */ - CcAddresses: [], - ToAddresses: [email] - }, - Message: { - /* required */ - Body: { - /* required */ - Html: { - Charset: "UTF-8", - Data: message - }, - Text: { - Charset: "UTF-8", - Data: message // TODO: convert to text - } - }, - Subject: { - Charset: "UTF-8", - Data: "Javimi alert" - } - }, - Source: 'Kivi.ba ' /* required */, - ReplyToAddresses: ["info@saburly.com"] - }; - - if (message) { - const sendPromise = new AWS.SES({ apiVersion: "2010-12-01" }) - .sendEmail(params) - .promise(); - await sendPromise; - return { id, date: String(convertToDate(lastDate)) }; - } -} - -module.exports = sendNotification;