Files
BattysPriceCheck/server.js

81 lines
2.4 KiB
JavaScript

var portServer = 8001;
var securePort = 8020;
var express = require('express');
var app = express();
var fs = require('fs');
var request = require('request');
var bodyParser = require("body-parser");
var moment = require('moment');
/*var fetch = require("node-fetch");*/
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
var cron = require('node-cron');
var http = require('http');
var https = require('https');
var MongoClient = require('mongodb').MongoClient;
var sanitize = require('mongo-sanitize');
var cheerio = require("cheerio"); //jQuery Substitute
const pug = require('pug');
const { exec } = require('child_process');
const path = require('path');
app.set('view engine', "pug")
app.use("/images", express.static(path.join(__dirname, '/images')));
app.use("/static", express.static(path.join(__dirname, "/static")));
app.get('/', function (req, res) {
res.send('Hello World');
});
app.get("/getPrice", async function(req, res){
try{
console.log(`Getting Price!`);
//console.log(`Request Body: \n ${JSON.stringify(req.body["instanceCount"])}`);
let url = req.query["url"];
let prefix = req.query["prefix"];
let instanceCount = parseInt(req.query["instanceCount"]);
let idName = req.query["idName"];
let finalAnswer = "";
console.log(`Get Price Info:\n
Prefix: ${prefix}\n
InstanceCount: ${instanceCount}\n
idName: ${idName}\n
URL: ${url}\n
`);
request(url, (err, resp, html) => {
const $ = cheerio.load(html);
finalAnswer = "";
$(idName).each((i, el) => {
if(i == instanceCount){
const item = $(el).text();
finalAnswer = item.split(prefix).reverse()[0];
}
});
console.log(`Answer: ${finalAnswer}`);
res.send(`Answer: ${finalAnswer}`);
res.end();
});
}catch(e){
console.error(e);
res.end();
}
});
const httpServer = http.createServer(app);
//const httpsServer = https.createServer(credentials, app);
var server = httpServer.listen(portServer, function () {
var host = server.address().address
var port = server.address().port
console.log("Server is listening at http://%s:%s", host, port)
});