metaforecast/src/backend/utils/misc/process-forecasts-into-elicit.ts
2022-04-07 22:47:17 +03:00

59 lines
1.7 KiB
TypeScript

/* Imports */
import fs from "fs";
import { pgRead } from "../../database/pg-wrapper";
/* Definitions */
let locationData = "./data/";
/* Body */
// let rawdata = fs.readFileSync("./data/merged-questions.json") // run from topmost folder, not from src
async function main() {
let data = await pgRead({ tableName: "questions" }); //JSON.parse(rawdata)
let processDescription = (description) => {
if (description == null || description == undefined || description == "") {
return "";
} else {
description =
description == null
? ""
: description
.replaceAll("] (", "](")
.replaceAll(") )", "))")
.replaceAll("( [", "([")
.replaceAll(") ,", "),")
.replaceAll("\n", " ");
if (description.length > 1000) {
return description.slice(0, 1000) + "...";
} else {
return description;
}
}
};
let results = [];
for (let datum of data) {
// do something
let description = processDescription(datum["description"]);
let forecasts = datum["qualityindicators"]
? datum["qualityindicators"].numforecasts
: "unknown";
let stars = datum["qualityindicators"]
? datum["qualityindicators"].stars
: 2;
results.push("Title: " + datum["title"]);
results.push("URL: " + datum["url"]);
results.push("Platform: " + datum["platform"]);
results.push("Description: " + description);
results.push("Number of forecasts: " + forecasts);
results.push("Stars: " + forecasts);
results.push("\n");
}
let string = results.join("\n");
string = string.replaceAll("\n\n", "\n");
fs.writeFileSync("elicit-output.txt", string);
}
main();