diff --git a/src/platforms/astralcodexten-fetch.js b/src/platforms/astralcodexten-fetch.js
index 8dfa1f8..4cf27f3 100644
--- a/src/platforms/astralcodexten-fetch.js
+++ b/src/platforms/astralcodexten-fetch.js
@@ -22,7 +22,7 @@ async function fetchAllCommunityQuestions(communityId) {
states: OPEN,
first: 500
){
- total
+ total
edges{
node{
id
diff --git a/src/platforms/foretold-fetch.js b/src/platforms/foretold-fetch.js
index 4fea6c6..b86afe2 100644
--- a/src/platforms/foretold-fetch.js
+++ b/src/platforms/foretold-fetch.js
@@ -22,7 +22,7 @@ async function fetchAllCommunityQuestions(communityId) {
states: OPEN,
first: 500
){
- total
+ total
edges{
node{
id
diff --git a/src/platforms/manifoldmarkets-fetch.js b/src/platforms/manifoldmarkets-fetch.js
index 44db4ef..fbc60d2 100644
--- a/src/platforms/manifoldmarkets-fetch.js
+++ b/src/platforms/manifoldmarkets-fetch.js
@@ -54,7 +54,9 @@ async function processPredictions(predictions) {
"volume7Days": prediction.volume7Days,
"volume24Hours": prediction.volume24Hours,
"pool": prediction.pool, // normally liquidity, but I don't actually want to show it.
- "isResolved": prediction.isResolved
+ },
+ "extra": {
+ "isResolved": prediction.isResolved
}
})
return result
diff --git a/src/platforms/metaculus-fetch.js b/src/platforms/metaculus-fetch.js
index 450e1b7..54c5e8a 100644
--- a/src/platforms/metaculus-fetch.js
+++ b/src/platforms/metaculus-fetch.js
@@ -82,7 +82,7 @@ export async function metaculus() {
await sleep(5000)
let questionPage = await fetchMetaculusQuestionDescription(result.page_url)
if(!questionPage.includes("A public prediction by")){
- // console.log(questionPage)
+ // console.log(questionPage)
let descriptionraw = questionPage.split(`
`)[1] //.split(`
`)[1]
let descriptionprocessed1 = descriptionraw.split("
")[0]
let descriptionprocessed2 = toMarkdown(descriptionprocessed1)
@@ -114,13 +114,15 @@ export async function metaculus() {
"timestamp": new Date().toISOString(),
"qualityindicators": {
"numforecasts": Number(result.number_of_predictions),
+ "stars": calculateStars("Metaculus", ({ numforecasts: result.number_of_predictions }))
+ },
+ "extra": {
"resolution_data": {
"publish_time": result.publish_time,
"resolution": result.resolution,
"close_time": result.close_time,
"resolve_time": result.resolve_time
- },
- "stars": calculateStars("Metaculus", ({ numforecasts: result.number_of_predictions }))
+ }
}
//"status": result.status,
//"publish_time": result.publish_time,
diff --git a/src/platforms/polymarket-fetch.js b/src/platforms/polymarket-fetch.js
index d9ed173..8519f4c 100644
--- a/src/platforms/polymarket-fetch.js
+++ b/src/platforms/polymarket-fetch.js
@@ -117,9 +117,11 @@ async function fetch_all() {
"liquidity": liquidity.toFixed(2),
"tradevolume": tradevolume.toFixed(2),
"stars": calculateStars("Polymarket", ({ liquidity, option: options[0], volume: tradevolume}))
+ },
+ "extra": {
+ "address": info.address
}
/*
- address: info.address
*/
})
if(info.category != "Sports"){
diff --git a/src/platforms/wildeford-fetch.js b/src/platforms/wildeford-fetch.js
index 30abb0c..01fe09d 100644
--- a/src/platforms/wildeford-fetch.js
+++ b/src/platforms/wildeford-fetch.js
@@ -15,107 +15,107 @@ const endpoint = `https://docs.google.com/spreadsheets/d/${SHEET_ID}/edit#gid=0`
/* Support functions */
const formatRow = row => {
- let colNames = ["Prediction Date", "Prediction", "Odds", "Actual", "Resolution Date", "Prediction Right?", "Brier Score", "Notes"]
- let result = ({})
- row.forEach((col,i) => {
- result[colNames[i]] = col
- })
- return result
+ let colNames = ["Prediction Date", "Prediction", "Odds", "Actual", "Resolution Date", "Prediction Right?", "Brier Score", "Notes"]
+ let result = ({})
+ row.forEach((col,i) => {
+ result[colNames[i]] = col
+ })
+ return result
}
async function fetchGoogleDoc(google_api_key){
- // https://gist.github.com/micalevisk/9bc831bd4b3e5a3f62b9810330129c59
- let results = []
- const doc = new GoogleSpreadsheet(SHEET_ID)
- doc.useApiKey(google_api_key)
+ // https://gist.github.com/micalevisk/9bc831bd4b3e5a3f62b9810330129c59
+ let results = []
+ const doc = new GoogleSpreadsheet(SHEET_ID)
+ doc.useApiKey(google_api_key)
- await doc.loadInfo() // loads document properties and worksheets
- console.log('>>', doc.title)
+ await doc.loadInfo() // loads document properties and worksheets
+ console.log('>>', doc.title)
- const sheet = doc.sheetsByIndex[0]
- const rows = await sheet.getRows({ offset:0, })
+ const sheet = doc.sheetsByIndex[0]
+ const rows = await sheet.getRows({ offset:0, })
- console.log('# ' +
- rows[0]._sheet.headerValues.join(',')
- )
- let isEnd = false;
- for (let i in rows) {
- let data = rows[i]._rawData
- if(data.length == 0) isEnd = true;
- if(!isEnd){
- let result = ({...formatRow(data), "url": endpoint + `&range=A${(Number(i) + 2)}`})
- // +2: +1 for the header row, +1 for starting at 1 and not at 0.
- // console.log(result)
- results.push(result)
+ console.log('# ' +
+ rows[0]._sheet.headerValues.join(',')
+ )
+ let isEnd = false;
+ for (let i in rows) {
+ let data = rows[i]._rawData
+ if(data.length == 0) isEnd = true;
+ if(!isEnd){
+ let result = ({...formatRow(data), "url": endpoint + `&range=A${(Number(i) + 2)}`})
+ // +2: +1 for the header row, +1 for starting at 1 and not at 0.
+ // console.log(result)
+ results.push(result)
- // console.log(rows[i])
- // console.log(rows[i]._rawData)
- // console.log(rows[i]["Prediction"])
- }
- // console.log(row._rawData.join(','))
- // console.log(row._rawData.join(','))
- }
- // console.log(results)
- return(results)
+ // console.log(rows[i])
+ // console.log(rows[i]._rawData)
+ // console.log(rows[i]["Prediction"])
+ }
+ // console.log(row._rawData.join(','))
+ // console.log(row._rawData.join(','))
+ }
+ // console.log(results)
+ return(results)
}
async function processPredictions(predictions){
- let currentPredictions = predictions.filter(prediction => prediction["Actual"] == "Unknown" )
- let results = currentPredictions.map(prediction => {
- let probability = Number(prediction["Odds"].replace("%", ""))/100
- let options = [
- {
- "name": "Yes",
- "probability": probability,
- "type": "PROBABILITY"
- },
- {
- "name": "No",
- "probability": 1 - probability,
- "type": "PROBABILITY"
- }
- ]
- let result = ({
- "title": prediction["Prediction"],
- "url": prediction["url"],
- "platform": "Peter Wildeford",
- "description": prediction["Notes"] || "",
- "options": options,
- "timestamp": new Date(Date.parse(prediction["Prediction Date"] + "Z")).toISOString(),
- "qualityindicators": {
- "stars": calculateStars("Peter Wildeford"),
- }
- })
- return result
- })
- results = results.map(result => ({...result, title: result.title.replace(" [update]", "")})).reverse()
+ let currentPredictions = predictions.filter(prediction => prediction["Actual"] == "Unknown" )
+ let results = currentPredictions.map(prediction => {
+ let probability = Number(prediction["Odds"].replace("%", ""))/100
+ let options = [
+ {
+ "name": "Yes",
+ "probability": probability,
+ "type": "PROBABILITY"
+ },
+ {
+ "name": "No",
+ "probability": 1 - probability,
+ "type": "PROBABILITY"
+ }
+ ]
+ let result = ({
+ "title": prediction["Prediction"],
+ "url": prediction["url"],
+ "platform": "Peter Wildeford",
+ "description": prediction["Notes"] || "",
+ "options": options,
+ "timestamp": new Date(Date.parse(prediction["Prediction Date"] + "Z")).toISOString(),
+ "qualityindicators": {
+ "stars": calculateStars("Peter Wildeford"),
+ }
+ })
+ return result
+ })
+ results = results.map(result => ({...result, title: result.title.replace(" [update]", "")})).reverse()
- let uniqueTitles = []
- let uniqueResults = []
- results.forEach(result => {
- if(!uniqueTitles.includes(result.title)) uniqueResults.push(result)
- uniqueTitles.push(result.title)
- })
- return(uniqueResults)
- // console.log(results)
- // console.log(results.map(result => result.options))
+ let uniqueTitles = []
+ let uniqueResults = []
+ results.forEach(result => {
+ if(!uniqueTitles.includes(result.title)) uniqueResults.push(result)
+ uniqueTitles.push(result.title)
+ })
+ return(uniqueResults)
+ // console.log(results)
+ // console.log(results.map(result => result.options))
}
// processPredictions()
/* Body */
export async function wildeford_inner(google_api_key) {
- let predictions = await fetchGoogleDoc(google_api_key)
- let results = await processPredictions(predictions) // somehow needed
- // console.log(results)
- // let string = JSON.stringify(results, null, 2)
- // fs.writeFileSync('polyprediction-questions.json', string);
- await upsert(results, "wildeford-questions")
- console.log("Done")
+ let predictions = await fetchGoogleDoc(google_api_key)
+ let results = await processPredictions(predictions) // somehow needed
+ // console.log(results)
+ // let string = JSON.stringify(results, null, 2)
+ // fs.writeFileSync('polyprediction-questions.json', string);
+ await upsert(results, "wildeford-questions")
+ console.log("Done")
}
//example()
export async function wildeford(){
- const GOOGLE_API_KEY = process.env.GOOGLE_API_KEY || getCookie("google-api") // See: https://developers.google.com/sheets/api/guides/authorizing#APIKey
- await applyIfCookieExists(GOOGLE_API_KEY, wildeford_inner)
+ const GOOGLE_API_KEY = process.env.GOOGLE_API_KEY || getCookie("google-api") // See: https://developers.google.com/sheets/api/guides/authorizing#APIKey
+ await applyIfCookieExists(GOOGLE_API_KEY, wildeford_inner)
}