micro365/checkAndPublish.mjs

48 lines
1.9 KiB
JavaScript
Raw Normal View History

2023-08-15 20:22:09 +00:00
import getNewPrompt from "./database-calls/getNewPrompt.mjs"
2023-08-12 10:05:24 +00:00
import createNote from "./firefish-calls/createNote.mjs"
2023-08-11 15:38:02 +00:00
import makeText from "./makeText.mjs"
2023-08-12 10:05:24 +00:00
import insertPublished from "./database-calls/insertPublished.mjs"
2023-08-11 15:38:02 +00:00
import logger from "./logger.mjs"
2023-08-13 13:00:24 +00:00
import {deleteFromBuffer, todaysPromptAlreadyPublished, tableIsNotEmpty, getPromptFromBuffer} from "./database-calls/db.mjs"
2023-08-12 09:43:37 +00:00
2023-08-11 15:38:02 +00:00
export default async function checkAndPublish () {
logger.trace("checkAndPublish called")
logger.trace(todaysPromptAlreadyPublished())
if(!await todaysPromptAlreadyPublished()){
2023-08-13 13:00:24 +00:00
try {
const prompt = await tableIsNotEmpty('buffer') ? await getPromptFromBuffer() : await getNewPrompt()
2023-08-16 10:41:38 +00:00
logger.trace({prompt:prompt},"prompt acquired successfully!")
2023-08-11 15:38:02 +00:00
try {
const text = makeText(prompt)
try {
const note = await createNote(text)
2023-08-13 13:00:24 +00:00
logger.trace("createNote successful!")
2023-08-11 15:38:02 +00:00
try {
let response = await deleteFromBuffer(prompt.word)
if(response===0){logger.error("deleteFromBuffer failed! Are you trying to delete a word that isn't there?")}
response = await insertPublished(note, prompt.word)
2023-08-13 13:00:24 +00:00
logger.trace("insertPublished successful!")
2023-08-11 15:38:02 +00:00
} catch (error) {
logger.error(error, 'insertPublished failed!')
}
} catch (error) {
logger.error(error, 'createNote failed!')
}
} catch (error) {
logger.error(error, 'makeText failed!')
}
} catch (error) {
2023-08-13 13:00:24 +00:00
logger.error(error,'failed to get prompt!')
2023-08-11 15:38:02 +00:00
}
} else {
logger.trace("today's prompt has already been published")
}
}