Added somewhat more complicated cookie functionality
This commit is contained in:
parent
abc4f61432
commit
cf795eb90e
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"csetforetellcookie": "_cset_prod_fof_session=xxx; landing_url=https://www.cset-foretell.com/; randomization_seed=xxx; remember_user_token=xxx; ",
|
||||
"goodjudmentopencookie": "__cfduid=xxx; _gj_prod_flyover_forecasts_session=xxx; randomization_seed=xxx; referring_url=https://www.gjopen.com/; remember_user_token=xxx;",
|
||||
"hypermindcookie": "lumAuth=xxxx:yyyyyyyyyyyyyyyyy"
|
||||
"csetforetell": "_cset_prod_fof_session=xxx; landing_url=https://www.cset-foretell.com/; randomization_seed=xxx; remember_user_token=xxx; ",
|
||||
"goodjudmentopen": "__cfduid=xxx; _gj_prod_flyover_forecasts_session=xxx; randomization_seed=xxx; referring_url=https://www.gjopen.com/; remember_user_token=xxx;",
|
||||
"hypermind": "lumAuth=xxxx:yyyyyyyyyyyyyyyyy",
|
||||
"mongodb": "mongodb+srv://<username>:<password>@<mongodbclusterurl>/?retryWrites=true&w=majority&useNewUrlParser=true&useUnifiedTopology=true",
|
||||
"netlify": "https://api.netlify.com/build_hooks/<netlifysecretnumber>?trigger_title=<some_title>"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Imports */
|
||||
import fs from 'fs'
|
||||
import axios from "axios"
|
||||
import {getCookie, applyIfCookieExists} from "../utils/getCookies.js"
|
||||
import {Tabletojson} from "tabletojson"
|
||||
import toMarkdown from "../utils/toMarkdown.js"
|
||||
import {calculateStars} from "../utils/stars.js"
|
||||
|
@ -12,24 +12,6 @@ String.prototype.replaceAll = function replaceAll(search, replace) { return this
|
|||
|
||||
/* Support functions */
|
||||
|
||||
function getcookie(){
|
||||
return process.env.CSETFORETELL_COOKIE
|
||||
/*
|
||||
try {
|
||||
let rawcookie = fs.readFileSync("./src/input/privatekeys.json")
|
||||
let cookie = JSON.parse(rawcookie).csetforetellcookie
|
||||
if(cookie == undefined){
|
||||
throw new Error('No cookie for CSET-foretell!');
|
||||
}
|
||||
|
||||
return cookie
|
||||
} catch(error) {
|
||||
console.log("Error: No cookies for CSET-foretell on src/privatekeys.json! See the README.md")
|
||||
process.exit()
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
async function fetchPage(page, cookie){
|
||||
|
||||
let response = await axios({
|
||||
|
@ -131,8 +113,7 @@ function sleep(ms) {
|
|||
|
||||
/* Body */
|
||||
|
||||
export async function csetforetell(){
|
||||
let cookie = getcookie()
|
||||
async function csetforetell_inner(cookie){
|
||||
let i=1
|
||||
let response = await fetchPage(i, cookie)
|
||||
let results = []
|
||||
|
@ -183,10 +164,17 @@ export async function csetforetell(){
|
|||
}
|
||||
// let string = JSON.stringify(results,null, 2)
|
||||
// fs.writeFileSync('./data/csetforetell-questions.json', string);
|
||||
console.log(results)
|
||||
await upsert(results, "csetforetell-questions")
|
||||
|
||||
|
||||
|
||||
let end = Date.now()
|
||||
let difference = end-init
|
||||
console.log(`Took ${difference/1000} seconds, or ${difference/(1000*60)} minutes.`)
|
||||
}
|
||||
|
||||
|
||||
export async function csetforetell(){
|
||||
let cookie = process.env.CSETFORETELL_COOKIE || getCookie("csetforetell")
|
||||
await applyIfCookieExists(csetforetell_inner, cookie)
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* Imports */
|
||||
import fs from 'fs'
|
||||
import axios from "axios"
|
||||
import {getCookie, applyIfCookieExists} from "../utils/getCookies.js"
|
||||
import { Tabletojson } from "tabletojson"
|
||||
import { calculateStars } from "../utils/stars.js"
|
||||
import toMarkdown from "../utils/toMarkdown.js"
|
||||
|
@ -12,24 +13,6 @@ let annoyingPromptUrls = ["https://www.gjopen.com/questions/1933-what-forecastin
|
|||
|
||||
/* Support functions */
|
||||
|
||||
function getcookie() {
|
||||
return process.env.GOODJUDGMENTOPENCOOKIE
|
||||
/*
|
||||
try {
|
||||
let rawcookie = fs.readFileSync("./src/input/privatekeys.json")
|
||||
let cookie = JSON.parse(rawcookie).goodjudmentopencookie
|
||||
if (cookie == undefined) {
|
||||
throw new Error('No cookie for Good Judgment Open!');
|
||||
}
|
||||
|
||||
return cookie
|
||||
} catch (error) {
|
||||
console.log("Error: No cookies for Good Judgment Open on src/privatekeys.json! See the README.md")
|
||||
process.exit()
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
async function fetchPage(page, cookie) {
|
||||
let response = await axios({
|
||||
url: htmlEndPoint + page,
|
||||
|
@ -134,9 +117,7 @@ function sleep(ms) {
|
|||
|
||||
/* Body */
|
||||
|
||||
export async function goodjudgmentopen() {
|
||||
let cookie = getcookie()
|
||||
|
||||
async function goodjudgmentopen_inner(cookie) {
|
||||
let i = 1
|
||||
let response = await fetchPage(i, cookie)
|
||||
let results = []
|
||||
|
@ -166,7 +147,7 @@ export async function goodjudgmentopen() {
|
|||
"platform": "Good Judgment Open",
|
||||
...moreinfo
|
||||
})
|
||||
if(j % 10 == 0){
|
||||
if(j % 30 == 0){
|
||||
console.log(`Page #${i}`)
|
||||
console.log(question)
|
||||
}
|
||||
|
@ -198,3 +179,8 @@ export async function goodjudgmentopen() {
|
|||
let difference = end - init
|
||||
console.log(`Took ${difference / 1000} seconds, or ${difference / (1000 * 60)} minutes.`)
|
||||
}
|
||||
|
||||
export async function goodjudmentopen(){
|
||||
let cookie = process.env.GOODJUDGMENTOPENCOOKIE || getCookie("goodjudgmentopen")
|
||||
await applyIfCookieExists(goodjudgmentopen_inner, cookie)
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* Imports */
|
||||
import fs from 'fs'
|
||||
import axios from "axios"
|
||||
import {getCookie, applyIfCookieExists} from "../utils/getCookies.js"
|
||||
import toMarkdown from "../utils/toMarkdown.js"
|
||||
import { calculateStars } from "../utils/stars.js"
|
||||
import { upsert } from "../utils/mongo-wrapper.js"
|
||||
|
@ -14,23 +15,6 @@ function sleep(ms) {
|
|||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
function getcookie() {
|
||||
return process.env.HYPERMINDCOOKIE
|
||||
/*
|
||||
try {
|
||||
let rawcookie = fs.readFileSync("./src/input/privatekeys.json")
|
||||
let cookie = JSON.parse(rawcookie).hypermindcookie
|
||||
if (cookie == undefined) {
|
||||
throw new Error('No cookie for Hypermind!');
|
||||
}
|
||||
return cookie
|
||||
} catch (error) {
|
||||
console.log("Error: No cookies for Hypermind on src/privatekeys.json! See the README.md")
|
||||
process.exit()
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
async function fetchHypermindData1(slug) {
|
||||
let response = await axios("https://predict.hypermind.com/dash/jsx.json", {
|
||||
"credentials": "omit",
|
||||
|
@ -48,7 +32,7 @@ async function fetchHypermindData1(slug) {
|
|||
return response
|
||||
}
|
||||
|
||||
async function fetchHypermindData2() {
|
||||
async function fetchHypermindData2(cookie) {
|
||||
let response = await axios("https://prod.hypermind.com/ngdp-jsx/jsx.json", {
|
||||
"credentials": "include",
|
||||
"headers": {
|
||||
|
@ -56,7 +40,7 @@ async function fetchHypermindData2() {
|
|||
"Accept": "*/*",
|
||||
"Accept-Language": "en-US,en;q=0.5",
|
||||
"Content-Type": "application/json; charset=UTF-8",
|
||||
"Cookie": getcookie()
|
||||
"Cookie": cookie
|
||||
},
|
||||
"referrer": "https://prod.hypermind.com/ngdp/en/showcase/showcase.html?inFrame=true",
|
||||
"data": `[["showcase","queryIFPs",{"query":{"showcaseOnly":true},"fmt":{"stats":true,"crowdFcstHist":true}}]]`,
|
||||
|
@ -66,7 +50,7 @@ async function fetchHypermindData2() {
|
|||
return response
|
||||
}
|
||||
|
||||
async function fetchHypermindData3() {
|
||||
async function fetchHypermindData3(cookie) {
|
||||
let response = await axios("https://prod.hypermind.com/ngdp-jsx/jsx.json", {
|
||||
"credentials": "include",
|
||||
"headers": {
|
||||
|
@ -74,7 +58,7 @@ async function fetchHypermindData3() {
|
|||
"Accept": "*/*",
|
||||
"Accept-Language": "en-US,en;q=0.5",
|
||||
"Content-Type": "application/json; charset=UTF-8",
|
||||
"Cookie": getcookie()
|
||||
"Cookie": cookie
|
||||
},
|
||||
"referrer": "https://prod.hypermind.com/ngdp/en/showcase/showcase.html?inFrame=true",
|
||||
"data": `[["showcase","getShowcase",{"showcase":"Covid19","fmt":{"fcsterCnt":true,"crowdFcst":true,"crowdFcstHist":true}}]]`,
|
||||
|
@ -88,7 +72,7 @@ async function fetchHypermindData3() {
|
|||
return response
|
||||
}
|
||||
|
||||
async function fetchHypermindData4() {
|
||||
async function fetchHypermindData4(cookie) {
|
||||
let response = await axios("https://prod.hypermind.com/ngdp-jsx/jsx.json", {
|
||||
"credentials": "include",
|
||||
"headers": {
|
||||
|
@ -96,7 +80,7 @@ async function fetchHypermindData4() {
|
|||
"Accept": "*/*",
|
||||
"Accept-Language": "en-US,en;q=0.5",
|
||||
"Content-Type": "application/json; charset=UTF-8",
|
||||
"Cookie": getcookie()
|
||||
"Cookie": cookie
|
||||
},
|
||||
"referrer": "https://prod.hypermind.com/ngdp/en/showcase/showcase.html?inFrame=true",
|
||||
"data": `[["showcase","getShowcase",{"showcase":"AI2023","fmt":{"fcsterCnt":true,"crowdFcst":true,"crowdFcstHist":true}}]]`,
|
||||
|
@ -111,7 +95,7 @@ async function fetchHypermindData4() {
|
|||
}
|
||||
|
||||
/* Body */
|
||||
export async function hypermind() {
|
||||
async function hypermind_inner(cookie) {
|
||||
let slugs = ["USA", "FRA", "AFR", "INT", "COV", "POL", "ECO"]
|
||||
|
||||
let results1 = []
|
||||
|
@ -156,7 +140,7 @@ export async function hypermind() {
|
|||
|
||||
console.log("GDP")
|
||||
await sleep(1000 + Math.random() * 1000)
|
||||
let results2 = await fetchHypermindData2()
|
||||
let results2 = await fetchHypermindData2(cookie)
|
||||
let results2processed = results2.map(res => {
|
||||
//console.log(res.props.details)
|
||||
let descriptionraw = res.props.details.split("<hr size=1>")[0]
|
||||
|
@ -179,7 +163,7 @@ export async function hypermind() {
|
|||
|
||||
console.log("COVID-19 OpenPhil")
|
||||
await sleep(1000 + Math.random() * 1000)
|
||||
let results3 = await fetchHypermindData3()
|
||||
let results3 = await fetchHypermindData3(cookie)
|
||||
// console.log(results3)
|
||||
let results3processed = results3.map(res => {
|
||||
let descriptionraw = res.props.details.split("<hr size=1>")[0]
|
||||
|
@ -200,7 +184,7 @@ export async function hypermind() {
|
|||
|
||||
console.log("AI in 2023")
|
||||
await sleep(1000 + Math.random() * 1000)
|
||||
let results4 = await fetchHypermindData4()
|
||||
let results4 = await fetchHypermindData4(cookie)
|
||||
// console.log(results4)
|
||||
let results4processed = results2.map(res => {
|
||||
let description = res.props.details
|
||||
|
@ -233,3 +217,8 @@ export async function hypermind() {
|
|||
|
||||
}
|
||||
//hypermind()
|
||||
|
||||
export async function hypermind() {
|
||||
let cookie = process.env.HYPERMINDCOOKIE || getCookie("hypermind")
|
||||
await applyIfCookieExists(hypermind_inner, cookie)
|
||||
}
|
25
src/utils/getCookies.js
Normal file
25
src/utils/getCookies.js
Normal file
|
@ -0,0 +1,25 @@
|
|||
import fs from 'fs'
|
||||
|
||||
export function getCookie(property){
|
||||
let answer = 0
|
||||
try {
|
||||
let rawcookie = fs.readFileSync("./src/input/privatekeys.json")
|
||||
let cookie = JSON.parse(rawcookie)
|
||||
if (cookie[property]){
|
||||
answer = cookie[property]
|
||||
console.log(`Got cookie: ${answer.slice(0,5)}...`)
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
}
|
||||
return answer
|
||||
}
|
||||
|
||||
export async function applyIfCookieExists(cookie, fun){
|
||||
if(cookie){
|
||||
await fun(cookie)
|
||||
}else if(!cookie){
|
||||
console.log(`Cannot proceed with ${fun.name} because cookie does not exist`)
|
||||
throw new Error(`No cookie for ${fun.name}`)
|
||||
}
|
||||
}
|
|
@ -1,8 +1,10 @@
|
|||
import pkg from 'mongodb';
|
||||
const {MongoClient} = pkg;
|
||||
import {getCookie} from "./getCookies.js"
|
||||
|
||||
|
||||
export async function upsert (contents, documentName, collectionName="metaforecastCollection", databaseName="metaforecastDatabase"){
|
||||
const url = process.env.MONGODB_URL;
|
||||
const url = process.env.MONGODB_URL || getCookie("mongodb");
|
||||
const client = new MongoClient(url);
|
||||
|
||||
try {
|
||||
|
@ -40,7 +42,7 @@ export async function upsert (contents, documentName, collectionName="metaforeca
|
|||
}
|
||||
|
||||
export async function mongoRead (documentName, collectionName="metaforecastCollection", databaseName="metaforecastDatabase"){
|
||||
const url = process.env.MONGODB_URL;
|
||||
const url = process.env.MONGODB_URL || getCookie("mongodb");
|
||||
|
||||
const client = new MongoClient(url, {
|
||||
useNewUrlParser: true,
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
import axios from "axios"
|
||||
import {getCookie, applyIfCookieExists} from "../utils/getCookies.js"
|
||||
|
||||
export async function rebuildNetlifySiteWithNewData_inner(cookie){
|
||||
let payload = ({});
|
||||
let response = await axios.post(cookie, payload);
|
||||
let data = response.data;
|
||||
console.log(data);
|
||||
}
|
||||
|
||||
export async function rebuildNetlifySiteWithNewData(){
|
||||
let rebuildNetlifyHookUrl = process.env.REBUIDNETLIFYHOOKURL;
|
||||
let payload = ({});
|
||||
let response = await axios.post(rebuildNetlifyHookUrl, payload);
|
||||
let data = response.data;
|
||||
console.log(data);
|
||||
let cookie = process.env.REBUIDNETLIFYHOOKURL || getCookie("netlify");
|
||||
await applyIfCookieExists(rebuildNetlifySiteWithNewData_inner, cookie)
|
||||
}
|
Loading…
Reference in New Issue
Block a user