chore: commit before npm audit fix
This commit is contained in:
parent
ec29825d56
commit
d3d41d94e1
113
src/platforms/betfair-fetch.js
Normal file
113
src/platforms/betfair-fetch.js
Normal file
|
@ -0,0 +1,113 @@
|
|||
/* Imports */
|
||||
import fs from 'fs'
|
||||
import axios from "axios"
|
||||
import https from 'https';
|
||||
import toMarkdown from "../utils/toMarkdown.js"
|
||||
import { calculateStars } from "../utils/stars.js"
|
||||
import {upsert} from "../utils/mongo-wrapper.js"
|
||||
|
||||
/* Definitions */
|
||||
let endpoint = process.env.SECRET_BETFAIR_ENDPOINT
|
||||
|
||||
/* Support functions */
|
||||
|
||||
async function fetchPredictions() {
|
||||
const agent = new https.Agent({
|
||||
rejectUnauthorized: false
|
||||
});
|
||||
let response = await axios({
|
||||
url: endpoint,
|
||||
method: 'GET',
|
||||
headers: ({
|
||||
'Content-Type': 'text/html',
|
||||
}),
|
||||
httpsAgent: agent
|
||||
})
|
||||
.then(response => response.data)
|
||||
// console.log(response)
|
||||
return response
|
||||
}
|
||||
|
||||
async function whipIntoShape(data){
|
||||
let arraysEqual = (a, b) => {
|
||||
if (a === b) return true;
|
||||
if (a == null || b == null) return false;
|
||||
if (a.length !== b.length) return false;
|
||||
|
||||
// If you don't care about the order of the elements inside
|
||||
// the array, you should sort both arrays here.
|
||||
// Please note that calling sort on an array will modify that array.
|
||||
// you might want to clone your array first.
|
||||
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
if (a[i] !== b[i]) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
let catalogues = data.market_catalogues
|
||||
let books = data.market_books
|
||||
let keys1 = Object.keys(catalogues)
|
||||
let keys2 = Object.keys(books)
|
||||
let results = ({})
|
||||
if(!arraysEqual(keys1, keys2)){
|
||||
throw new Error("Betfair: Error in endpoint; Betfair catalogues and books do not match")
|
||||
}else{
|
||||
for(catalogue in catalogues){
|
||||
console.log(catalogue)
|
||||
}
|
||||
for(book in books){
|
||||
console.log(book)
|
||||
}
|
||||
}
|
||||
return results
|
||||
}
|
||||
|
||||
|
||||
async function processPredictions(predictions) {
|
||||
|
||||
let results = await predictions.map(prediction => {
|
||||
let probability = prediction.probability
|
||||
let options = [
|
||||
{
|
||||
"name": "Yes",
|
||||
"probability": probability,
|
||||
"type": "PROBABILITY"
|
||||
},
|
||||
{
|
||||
"name": "No",
|
||||
"probability": 1 - probability,
|
||||
"type": "PROBABILITY"
|
||||
}
|
||||
]
|
||||
let result = ({
|
||||
"title": prediction.title,
|
||||
"url": `https://example.com`,
|
||||
"platform": "Example",
|
||||
"description": prediction.description,
|
||||
"options": options,
|
||||
"timestamp": new Date().toISOString(),
|
||||
"qualityindicators": {
|
||||
"stars": calculateStars("Example", ({some: somex, factors: factors})),
|
||||
"other": prediction.otherx,
|
||||
"indicators": prediction.indicatorx
|
||||
}
|
||||
})
|
||||
return result
|
||||
})
|
||||
return results //resultsProcessed
|
||||
}
|
||||
|
||||
/* Body */
|
||||
|
||||
export async function betfair() {
|
||||
let predictions = await fetchPredictions()
|
||||
whipIntoShape(predictions)
|
||||
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, "example-questions")
|
||||
console.log("Done")
|
||||
}
|
||||
betfair()
|
70
src/platforms/example-fetch.js
Normal file
70
src/platforms/example-fetch.js
Normal file
|
@ -0,0 +1,70 @@
|
|||
/* Imports */
|
||||
import fs from 'fs'
|
||||
import axios from "axios"
|
||||
import toMarkdown from "../utils/toMarkdown.js"
|
||||
import { calculateStars } from "../utils/stars.js"
|
||||
import {upsert} from "../utils/mongo-wrapper.js"
|
||||
|
||||
/* Definitions */
|
||||
let endpoint = 'https://example.com/'
|
||||
|
||||
/* Support functions */
|
||||
|
||||
async function fetchPredictions() {
|
||||
let response = await axios({
|
||||
url: endpoint,
|
||||
method: 'GET',
|
||||
headers: ({
|
||||
'Content-Type': 'text/html',
|
||||
}),
|
||||
})
|
||||
.then(response => response.data)
|
||||
// console.log(response)
|
||||
return response
|
||||
}
|
||||
|
||||
async function processPredictions(predictions) {
|
||||
let results = await predictions.map(prediction => {
|
||||
let probability = prediction.probability
|
||||
let options = [
|
||||
{
|
||||
"name": "Yes",
|
||||
"probability": probability,
|
||||
"type": "PROBABILITY"
|
||||
},
|
||||
{
|
||||
"name": "No",
|
||||
"probability": 1 - probability,
|
||||
"type": "PROBABILITY"
|
||||
}
|
||||
]
|
||||
let result = ({
|
||||
"title": prediction.title,
|
||||
"url": `https://example.com`,
|
||||
"platform": "Example",
|
||||
"description": prediction.description,
|
||||
"options": options,
|
||||
"timestamp": new Date().toISOString(),
|
||||
"qualityindicators": {
|
||||
"stars": calculateStars("Example", ({some: somex, factors: factors})),
|
||||
"other": prediction.otherx,
|
||||
"indicators": prediction.indicatorx
|
||||
}
|
||||
})
|
||||
return result
|
||||
})
|
||||
return results //resultsProcessed
|
||||
}
|
||||
|
||||
/* Body */
|
||||
|
||||
export async function example() {
|
||||
let predictions = await fetchPredictions()
|
||||
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, "example-questions")
|
||||
console.log("Done")
|
||||
}
|
||||
//example()
|
|
@ -15,7 +15,7 @@ async function fetchAllContractInfo(){ // for info which the polymarket graphql
|
|||
}
|
||||
*/
|
||||
async function fetchAllMarkets() { // for info which the polymarket graphql API
|
||||
let response = await axios.get('https://trading-api.kalshi.com/v1/cached/markets/').then(response => response.data.markets)
|
||||
let response = await axios.get(jsonEndpoint).then(response => response.data.markets)
|
||||
// console.log(response)
|
||||
return response
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user