promessegoverno/handler.ts

29 lines
875 B
TypeScript

import { APIGatewayProxyHandler } from "aws-lambda";
import axios from "axios";
import "source-map-support/register";
import { JSDOM } from "jsdom";
export const promiseList: APIGatewayProxyHandler = async (_, _context) => {
const page = await axios({
url: "https://tracciailgoverno.pagellapolitica.it/it/promesse/",
responseType: "document"
});
const { window } = new JSDOM(page.data);
const promises = window.document.querySelectorAll(".promise");
const promiseList = Array.prototype.slice.call(promises, 0);
return {
statusCode: 200,
body: JSON.stringify(
promiseList.map(
prom => ({
name: prom.querySelector("h2.heading span").innerHTML,
url: prom.querySelector("a[href]").href,
status: prom.querySelector(".promise-status-text").innerHTML
}),
null,
2
)
)
};
};