makeText function
This commit is contained in:
parent
61efd615c8
commit
412157bab0
|
@ -1,8 +1,18 @@
|
|||
import { db } from "./db.mjs"
|
||||
|
||||
import getNewPrompt from "./getNewPrompt.mjs"
|
||||
import createNote from "./createNote.mjs"
|
||||
import makeToot from "./makeToot.mjs"
|
||||
const maxCount = 30000000
|
||||
const minCount = 200000
|
||||
|
||||
|
||||
const prompt = await getNewPrompt({minCount,maxCount,rarityBias:0.7})
|
||||
//console.dir(prompt)
|
||||
|
||||
const toot = makeToot(prompt)
|
||||
//console.dir(toot)
|
||||
|
||||
|
||||
|
||||
//CHECK BUFFER -
|
||||
//IF EXISTS, POST NEXT BUFFERED PROMPT TO SOCIAL MEDIA
|
||||
//REMOVE FROM BUFFER
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { db } from "./db.mjs"
|
||||
|
||||
export default async function getNewPrompt({ minCount = 200000, maxCount = 30000000, rarityBias }) {
|
||||
export default async function getNewPrompt({ minCount = 200000, maxCount = 30000000, rarityBias = 0.5 }) {
|
||||
const badWords = await db('bad_words')
|
||||
.select('word')
|
||||
|
||||
|
@ -23,9 +23,8 @@ export default async function getNewPrompt({ minCount = 200000, maxCount = 30000
|
|||
}
|
||||
|
||||
const randomEntry = (array) => {
|
||||
const random = getBiasedRng(0, 1, rarity, 1)
|
||||
const random = getBiasedRng(0, 1, rarityBias, 1)
|
||||
const mix = Math.random()
|
||||
console.log("RANDOM: " + random)
|
||||
return array[
|
||||
parseInt(
|
||||
array.length * random
|
||||
|
@ -33,13 +32,13 @@ export default async function getNewPrompt({ minCount = 200000, maxCount = 30000
|
|||
]
|
||||
}
|
||||
|
||||
db.destroy()
|
||||
return randomEntry(prompts).word
|
||||
await db.destroy()
|
||||
return await randomEntry(prompts)
|
||||
}
|
||||
|
||||
|
||||
|
||||
console.log(await getNewPrompt({ rarityBias: 0.7 }))
|
||||
//console.log(await getNewPrompt({}))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
import getNewPrompt from './getNewPrompt.mjs'
|
||||
|
||||
const sampleData = {
|
||||
word: 'malt',
|
||||
count: 1520084,
|
||||
pronunciation: '/mˈɒlt/',
|
||||
meanings: '[{"type":"noun","definitions":[{"definition":"Malted grain (sprouted grain) (usually barley), used in brewing and otherwise.","form_of":false,"topics":null},{"definition":"Malt liquor, especially malt whisky.","form_of":false,"topics":null},{"definition":"A milkshake with malted milk powder added for flavor.","form_of":false,"topics":null},{"definition":"Maltose-rich sugar derived from malted grain.","form_of":false,"topics":null}]},{"type":"verb","definitions":[{"definition":"To convert a cereal grain into malt by causing it to sprout (by soaking in water) and then halting germination (by drying with hot air) in order to develop enzymes that can break down starches and proteins in the grain.","form_of":false,"topics":null},{"definition":"To become malt.","form_of":false,"topics":null},{"definition":"To drink malt liquor.","form_of":false,"topics":null}]}]',
|
||||
derivative: 0,
|
||||
scientific: 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
export default async function makeText(prompt){
|
||||
const meanings = JSON.parse(prompt.meanings)
|
||||
const word = prompt.word
|
||||
const pronunciation = prompt.pronunciation
|
||||
|
||||
let text = "Today's prompt is:\n**"+word+"**\n"
|
||||
+pronunciation+"\n\n"
|
||||
|
||||
|
||||
let meaningsText = ""
|
||||
const maxDefsPerMeaning = [3,1,1,0] //this array must have at least four entries to account for different word types
|
||||
let meaningsIterator = 0
|
||||
for (const meaning of meanings) {
|
||||
meaningsText = meaningsText+meaning.type+":\n"
|
||||
let definitionsIterator = 1
|
||||
for (const definition of meaning.definitions) {
|
||||
if(definitionsIterator<=maxDefsPerMeaning[meaningsIterator]){
|
||||
meaningsText = meaningsText+definition.definition+"\n"
|
||||
} else {
|
||||
meaningsText=meaningsText+"\n"
|
||||
break
|
||||
}
|
||||
definitionsIterator++
|
||||
}
|
||||
meaningsIterator++
|
||||
}
|
||||
return text+meaningsText
|
||||
|
||||
}
|
||||
|
||||
console.log(await makeText(sampleData))
|
|
@ -1,33 +0,0 @@
|
|||
export default function makeToot(data){
|
||||
console.dir(data)
|
||||
let newString = ""
|
||||
const maxIterations = 3
|
||||
|
||||
for(let i=0;i<=data.meanings.length-1;i++){
|
||||
const e = data.meanings[i]
|
||||
newString=newString+`
|
||||
**${e.partOfSpeech}**
|
||||
|
||||
`
|
||||
for(let j=0;j<=e.definitions.length-1;j++){
|
||||
const definition = e.definitions[j]
|
||||
newString =
|
||||
`${newString} *${definition.definition}*
|
||||
${definition.example ? `> ${definition.example}
|
||||
|
||||
` : ``}`
|
||||
if(j+1>=maxIterations){break}
|
||||
}
|
||||
if(i+1>=maxIterations){break}
|
||||
}
|
||||
|
||||
const definitionsArray = data.meanings[0].definition
|
||||
const string =
|
||||
`Today's prompt is:
|
||||
# **${data.word}**
|
||||
*${data.phonetic}*
|
||||
${newString}
|
||||
${data.sourceUrls}`
|
||||
|
||||
console.log(string)
|
||||
}
|
Loading…
Reference in New Issue