Test loop hypothesis

This commit is contained in:
NunoSempere 2021-04-08 22:51:02 +02:00
parent 3774ce55d4
commit 89c29053d4
6 changed files with 58 additions and 27 deletions

View File

@ -1 +1,3 @@
worker: node src/utils/doEverythingForScheduler.js // worker: node src/utils/doEverythingForScheduler.js
worker: node src/utils/testLoopHypothesis.js

View File

@ -8,6 +8,7 @@ import { upsert } from "../utils/mongo-wrapper.js"
/* Definitions */ /* Definitions */
let htmlEndPoint = 'https://www.gjopen.com/questions?page=' let htmlEndPoint = 'https://www.gjopen.com/questions?page='
let annoyingPromptUrls = ["https://www.gjopen.com/questions/1933-what-forecasting-questions-should-we-ask-what-questions-would-you-like-to-forecast-on-gjopen", "https://www.gjopen.com/questions/1779-are-there-any-forecasting-tips-tricks-and-experiences-you-would-like-to-share-and-or-discuss-with-your-fellow-forecasters"]
/* Support functions */ /* Support functions */
@ -27,10 +28,8 @@ function getcookie() {
process.exit() process.exit()
} }
*/ */
} }
async function fetchPage(page, cookie) { async function fetchPage(page, cookie) {
let response = await axios({ let response = await axios({
url: htmlEndPoint + page, url: htmlEndPoint + page,
@ -147,34 +146,38 @@ export async function goodjudgmentopen() {
// console.log(`Page #${i}`) // console.log(`Page #${i}`)
let htmlLines = response.split("\n") let htmlLines = response.split("\n")
let h5elements = htmlLines.filter(str => str.includes("<h5><a href=")) let h5elements = htmlLines.filter(str => str.includes("<h5><a href="))
let j = 0
for (let h5element of h5elements) { for (let h5element of h5elements) {
let h5elementSplit = h5element.split('"><span>') let h5elementSplit = h5element.split('"><span>')
let url = h5elementSplit[0].split('<a href="')[1] let url = h5elementSplit[0].split('<a href="')[1]
let title = h5elementSplit[1].replace('</span></a></h5>', "") if(!annoyingPromptUrls.includes(url)){
await sleep(1000 + Math.random() * 1000) // don't be as noticeable let title = h5elementSplit[1].replace('</span></a></h5>', "")
try { await sleep(1000 + Math.random() * 1000) // don't be as noticeable
let moreinfo = await fetchStats(url, cookie) try {
if (moreinfo.isbinary) { let moreinfo = await fetchStats(url, cookie)
if (!moreinfo.crowdpercentage) { // then request again. if (moreinfo.isbinary) {
moreinfo = await fetchStats(url, cookie) if (!moreinfo.crowdpercentage) { // then request again.
moreinfo = await fetchStats(url, cookie)
}
} }
let question = ({
"title": title,
"url": url,
"platform": "Good Judgment Open",
...moreinfo
})
if(j % 10 == 0){
console.log(`Page #${i}`)
console.log(question)
}
// console.log(question)
results.push(question)
} catch (error) {
console.log(error)
console.log(`We encountered some error when fetching the URL: ${url}, so it won't appear on the final json`)
} }
let question = ({
"title": title,
"url": url,
"platform": "Good Judgment Open",
...moreinfo
})
if(i % 10 == 0){
console.log(`Page #${i}`)
console.log(question)
}
// console.log(question)
results.push(question)
} catch (error) {
console.log(error)
console.log(`We encountered some error when fetching the URL: ${url}, so it won't appear on the final json`)
} }
j = j+1
} }
i = i + 1 i = i + 1
// console.log("Sleeping for 5secs so as to not be as noticeable to the gjopen servers") // console.log("Sleeping for 5secs so as to not be as noticeable to the gjopen servers")

View File

@ -84,7 +84,7 @@ export async function predictit() {
} }
}) })
console.log(obj) // console.log(obj)
results.push(obj) results.push(obj)
} }
//console.log(results) //console.log(results)

View File

@ -35,8 +35,25 @@ export async function tryCatchTryAgain (fun) {
export async function doEverything(){ export async function doEverything(){
let functions = [csetforetell, elicit, /* estimize, */ fantasyscotus, foretold, goodjudgment, goodjudgmentopen, hypermind, ladbrokes, metaculus, polymarket, predictit, omen, smarkets, williamhill, mergeEverything] let functions = [csetforetell, elicit, /* estimize, */ fantasyscotus, foretold, goodjudgment, goodjudgmentopen, hypermind, ladbrokes, metaculus, polymarket, predictit, omen, smarkets, williamhill, mergeEverything]
console.log("")
console.log("")
console.log("")
console.log("")
console.log("================================")
console.log("STARTING UP")
console.log("================================")
console.log("")
console.log("")
console.log("")
console.log("")
for(let fun of functions){ for(let fun of functions){
console.log("")
console.log("")
console.log("****************************")
console.log(fun.name) console.log(fun.name)
console.log("****************************")
await tryCatchTryAgain(fun) await tryCatchTryAgain(fun)
console.log("****************************")
} }
} }

View File

@ -30,7 +30,7 @@ export async function upsert (contents, documentName, collectionName="metaforeca
const myDocument = await collection.findOne(filter); const myDocument = await collection.findOne(filter);
// Print to the console // Print to the console
console.log(myDocument.contentsArray.slice(0,10)); console.log(myDocument.contentsArray.slice(0,3));
} catch (err) { } catch (err) {
console.log(err.stack); console.log(err.stack);
} }

View File

@ -0,0 +1,9 @@
let sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms))
let loop = async () => {
for (let i = 0; i < 6; i++) {
console.log(i)
await sleep(1000)
}
}
loop()