diff --git a/src/checkAndPublish.mjs b/src/checkAndPublish.mjs new file mode 100644 index 0000000..dd2028b --- /dev/null +++ b/src/checkAndPublish.mjs @@ -0,0 +1,44 @@ +import getNewPrompt from "./getNewPrompt.mjs" +import createNote from "./createNote.mjs" +import makeText from "./makeText.mjs" +import insertPublished from "./insertPublished.mjs" +import logger from "./logger.mjs" +import todaysPromptAlreadyPublished from "./todaysPromptAlreadyPublished.mjs" +const maxCount = 30000000 +const minCount = 200000 +const spamMode = false + +export default async function checkAndPublish () { + logger.trace("checkAndPublish called") + logger.trace(todaysPromptAlreadyPublished()) + if(!await todaysPromptAlreadyPublished()){ + try { + const prompt = await getNewPrompt({ minCount, maxCount, rarityBias: 0.7 }) + try { + const text = makeText(prompt) + try { + const note = await createNote(text) + try { + await insertPublished(note, prompt.word) + } catch (error) { + logger.error(error, 'insertPublished failed!') + } + } catch (error) { + logger.error(error, 'createNote failed!') + } + } catch (error) { + logger.error(error, 'makeText failed!') + } + } catch (error) { + logger.error(error,'getNewPrompt failed!') + } + } else { + logger.trace("today's prompt has already been published") + } +} + + + + + + diff --git a/src/createNote.mjs b/src/createNote.mjs index 7d0cc31..4d93d7d 100644 --- a/src/createNote.mjs +++ b/src/createNote.mjs @@ -14,7 +14,7 @@ setGlobalDispatcher(agent) export default async function createNote(text) { const childLogger = logger.child({text}) childLogger.trace("createNote called") - const url = 'http://localhost:3000/api/notes/create' + const url = 'https://localhost:80/api/notes/create' const params = { text: text, } @@ -33,6 +33,7 @@ export default async function createNote(text) { return res.json() }) .then(data => { + childLogger.trace(data, "note created successfully") return data }) .catch(error =>{ diff --git a/src/daily.mjs b/src/daily.mjs deleted file mode 100644 index 7d31361..0000000 --- a/src/daily.mjs +++ /dev/null @@ -1,38 +0,0 @@ -import getNewPrompt from "./getNewPrompt.mjs" -import createNote from "./createNote.mjs" -import makeText from "./makeText.mjs" -import insertPublished from "./insertPublished.mjs" -import logger from "./logger.mjs" -const maxCount = 30000000 -const minCount = 200000 - -export default async function daily () { - - try { - const prompt = await getNewPrompt({ minCount, maxCount, rarityBias: 0.7 }) - try { - const text = makeText(prompt) - try { - const note = await createNote(text) - try { - await insertPublished(note, prompt.word) - } catch (error) { - logger.error(error, 'insertPublished failed!') - } - } catch (error) { - logger.error(error, 'createNote failed!') - } - } catch (error) { - logger.error(error, 'makeText failed!') - } - } catch (error) { - logger.error(error,'getNewPrompt failed!') - } -} - - - - - - - diff --git a/src/data/database b/src/data/database index 60260cf..48854d0 100644 Binary files a/src/data/database and b/src/data/database differ diff --git a/src/insertPublished.mjs b/src/insertPublished.mjs index 6378965..1d8d3f9 100644 --- a/src/insertPublished.mjs +++ b/src/insertPublished.mjs @@ -55,6 +55,7 @@ export default async function insertPublished(res, word){ date: isoDate(sampleRes.createdNote.createdAt) }) .then(res => { + childLogger.trace("succesful insertion into table: published") return res }) .catch(error => {throw error}) diff --git a/src/logger.mjs b/src/logger.mjs index 78c9688..50d373a 100644 --- a/src/logger.mjs +++ b/src/logger.mjs @@ -10,7 +10,7 @@ const __dirname = path.dirname(__filename); // }); export default pino({ - level: process.env.PINO_LOG_LEVEL || 'info', + level: process.env.PINO_LOG_LEVEL || 'trace', formatters: { level: (label) => { return { severity: label.toUpperCase() }; diff --git a/src/spam.mjs b/src/spam.mjs deleted file mode 100644 index 47d5484..0000000 --- a/src/spam.mjs +++ /dev/null @@ -1,19 +0,0 @@ -import daily from "./daily.mjs" -import logger from "./logger.mjs" -const maxCount = 30000000 -const minCount = 200000 - - -const spam = async ()=>{ - await daily() -} - - - -const delay = ms => new Promise(res=>{setTimeout(res,ms)}) - -do{ -await delay(1000) -await spam() -logger.trace("Spam!") -}while(true) \ No newline at end of file diff --git a/src/start.mjs b/src/start.mjs index 57285d5..420e524 100644 --- a/src/start.mjs +++ b/src/start.mjs @@ -1,8 +1,11 @@ import cron from 'node-cron' import logger from './logger.mjs'; +import checkAndPublish from './checkAndPublish.mjs'; export default function start(){ + logger.trace("start() called") cron.schedule('* * * * *', () => { - logger.trace('running a task every minute'); + checkAndPublish() + logger.trace('one-minute cron call'); }); } \ No newline at end of file diff --git a/src/todaysPromptAlreadyPublished.mjs b/src/todaysPromptAlreadyPublished.mjs index a2b3184..058ec1c 100644 --- a/src/todaysPromptAlreadyPublished.mjs +++ b/src/todaysPromptAlreadyPublished.mjs @@ -2,8 +2,6 @@ import { db } from "./db.mjs"; import { isoDate } from "./utilities.mjs"; import logger from "./logger.mjs"; export default async function todaysPromptAlreadyPublished() { - const childLogger = logger.child() - childLogger.trace("todaysPromptAlreadyPublished called") const number = await db('published') .count('* as count') .where('date', isoDate())