Create contest route && modify files to reflect changes made in the creation of the new endpoint
This commit is contained in:
parent
81d5ad5ede
commit
93aa4f8aca
|
@ -84,29 +84,67 @@ function getContests($: cheerio.CheerioAPI) {
|
||||||
/** */
|
/** */
|
||||||
function storeData() {}
|
function storeData() {}
|
||||||
|
|
||||||
/** */
|
function getContestPage(contestId?: string) {
|
||||||
async function scrapeWebpage() {
|
return new Promise(async function (resolve, reject) {
|
||||||
return new Promise(function (resolve, reject) {
|
if (contestId != undefined) {
|
||||||
/* const [resolved, result] = await handlePromise(axios.get(EUROMILHOES_URL));
|
const [resolved, result] = await handlePromise(
|
||||||
|
axios.post(EUROMILHOES_URL + `?selectContest=${contestId}`)
|
||||||
|
);
|
||||||
|
|
||||||
if (resolved == false) {
|
if (resolved == true) {
|
||||||
|
resolve(result);
|
||||||
|
} else {
|
||||||
console.error(result);
|
console.error(result);
|
||||||
|
reject(result);
|
||||||
// Return no results
|
|
||||||
console.error(result);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
//???
|
||||||
|
const [resolved, result] = await handlePromise(
|
||||||
|
axios.get(EUROMILHOES_URL)
|
||||||
|
);
|
||||||
|
|
||||||
fs.writeFileSync("index.html", result.data); */
|
if (resolved == true) {
|
||||||
|
resolve(result);
|
||||||
|
} else {
|
||||||
|
reject(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const result = fs.readFileSync("index.html");
|
/** */
|
||||||
|
function scrapeWebpage(content: string | Buffer): EurmomilhoesData {
|
||||||
|
// fs.writeFileSync("index.html", result.data); */
|
||||||
|
|
||||||
const $ = cheerio.load(result);
|
//const result = fs.readFileSync("index.html");
|
||||||
|
|
||||||
|
let data: EurmomilhoesData = {
|
||||||
|
keys: {
|
||||||
|
orderedKey: {
|
||||||
|
numbers: [],
|
||||||
|
stars: [],
|
||||||
|
},
|
||||||
|
sortedKey: {
|
||||||
|
numbers: [],
|
||||||
|
stars: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
prizes: [],
|
||||||
|
|
||||||
|
contests: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
const $ = cheerio.load(content);
|
||||||
|
|
||||||
getContests($);
|
getContests($);
|
||||||
|
|
||||||
const keyLists = $(".betMiddle.twocol.regPad ul li");
|
const keyLists = $(".betMiddle.twocol.regPad ul li");
|
||||||
|
|
||||||
|
if (keyLists.length == 0) {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
const orderedKey = getKey(keyLists.first());
|
const orderedKey = getKey(keyLists.first());
|
||||||
const sortedKey = getKey(keyLists.eq(1));
|
const sortedKey = getKey(keyLists.eq(1));
|
||||||
|
|
||||||
|
@ -141,19 +179,26 @@ async function scrapeWebpage() {
|
||||||
prizes.push(prize);
|
prizes.push(prize);
|
||||||
});
|
});
|
||||||
|
|
||||||
const data: EurmomilhoesData = {
|
data.keys = {
|
||||||
|
orderedKey: orderedKey,
|
||||||
|
sortedKey: sortedKey,
|
||||||
|
};
|
||||||
|
|
||||||
|
data.prizes = prizes;
|
||||||
|
|
||||||
|
data.contests = getContests($);
|
||||||
|
|
||||||
|
data = {
|
||||||
keys: {
|
keys: {
|
||||||
orderedKey: orderedKey,
|
orderedKey: orderedKey,
|
||||||
sortedKey: sortedKey,
|
sortedKey: sortedKey,
|
||||||
},
|
},
|
||||||
|
|
||||||
prizes: prizes,
|
prizes: prizes,
|
||||||
|
|
||||||
contests: getContests($),
|
contests: getContests($),
|
||||||
};
|
};
|
||||||
|
|
||||||
resolve(data);
|
return data;
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default scrapeWebpage;
|
export { getContestPage, scrapeWebpage };
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
import { Router } from "express";
|
||||||
|
|
||||||
|
import {
|
||||||
|
scrapeWebpage,
|
||||||
|
getContestPage,
|
||||||
|
} from "../../../../scrapers/euromilhoes";
|
||||||
|
|
||||||
|
import handlePromise from "../../../../util/promiseHandler";
|
||||||
|
|
||||||
|
const contestRouter = Router();
|
||||||
|
|
||||||
|
contestRouter.get("/", async (req, res) => {
|
||||||
|
const contestId = req.query.contestId;
|
||||||
|
|
||||||
|
if (contestId != undefined) {
|
||||||
|
let [resolved, result] = await handlePromise(
|
||||||
|
getContestPage(contestId.toString())
|
||||||
|
);
|
||||||
|
|
||||||
|
if (resolved == false) {
|
||||||
|
res.sendStatus(result.status);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = scrapeWebpage(result.data);
|
||||||
|
|
||||||
|
res.json(data);
|
||||||
|
} else {
|
||||||
|
res.sendStatus(400);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export default contestRouter;
|
|
@ -1,15 +1,18 @@
|
||||||
import { Router } from "express";
|
import { Router } from "express";
|
||||||
|
|
||||||
import scrapeWebpage from "../../../../scrapers/euromilhoes";
|
import {
|
||||||
|
getContestPage,
|
||||||
|
scrapeWebpage,
|
||||||
|
} from "../../../../scrapers/euromilhoes";
|
||||||
import handlePromise from "../../../../util/promiseHandler";
|
import handlePromise from "../../../../util/promiseHandler";
|
||||||
|
|
||||||
const contestsRouter = Router();
|
const contestsRouter = Router();
|
||||||
|
|
||||||
contestsRouter.get("/", async (req, res) => {
|
contestsRouter.get("/", async (req, res) => {
|
||||||
const [resolved, result] = await handlePromise(scrapeWebpage());
|
const [resolved, result] = await handlePromise(getContestPage());
|
||||||
|
|
||||||
if (resolved == true) {
|
if (resolved == true) {
|
||||||
res.json(result.contests);
|
res.json(scrapeWebpage(result.data).contests);
|
||||||
} else {
|
} else {
|
||||||
console.error(result);
|
console.error(result);
|
||||||
res.send(500);
|
res.send(500);
|
||||||
|
|
|
@ -1,16 +1,20 @@
|
||||||
import { Router } from "express";
|
import { Router } from "express";
|
||||||
|
|
||||||
import handlePromise from "../../../../util/promiseHandler";
|
import handlePromise from "../../../../util/promiseHandler";
|
||||||
import scrapeWebpage from "../../../../scrapers/euromilhoes";
|
import {
|
||||||
|
scrapeWebpage,
|
||||||
|
getContestPage,
|
||||||
|
} from "../../../../scrapers/euromilhoes";
|
||||||
import contestsRouter from "../euromilhoes/contests";
|
import contestsRouter from "../euromilhoes/contests";
|
||||||
|
import contestRouter from "../euromilhoes/contest";
|
||||||
|
|
||||||
const euromilhoesRouter = Router();
|
const euromilhoesRouter = Router();
|
||||||
|
|
||||||
euromilhoesRouter.get("/", async (req, res) => {
|
euromilhoesRouter.get("/", async (req, res) => {
|
||||||
const [resolved, result] = await handlePromise(scrapeWebpage());
|
const [resolved, result] = await handlePromise(getContestPage());
|
||||||
|
|
||||||
if (resolved == true) {
|
if (resolved == true) {
|
||||||
res.json(result);
|
res.json(scrapeWebpage(result.data));
|
||||||
} else {
|
} else {
|
||||||
console.error(result);
|
console.error(result);
|
||||||
res.sendStatus(500);
|
res.sendStatus(500);
|
||||||
|
@ -18,5 +22,6 @@ euromilhoesRouter.get("/", async (req, res) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
euromilhoesRouter.use("/contests", contestsRouter);
|
euromilhoesRouter.use("/contests", contestsRouter);
|
||||||
|
euromilhoesRouter.use("/contest", contestRouter);
|
||||||
|
|
||||||
export default euromilhoesRouter;
|
export default euromilhoesRouter;
|
||||||
|
|
Loading…
Reference in New Issue