From 56266b4872a0290fb4b54dd7403f2ad6db23c869 Mon Sep 17 00:00:00 2001 From: Andrzej Stepien Date: Fri, 11 Aug 2023 17:38:02 +0200 Subject: [PATCH] checkAndPublish workflow --- src/checkAndPublish.mjs | 44 +++++++++++++++++++++++++++ src/createNote.mjs | 3 +- src/daily.mjs | 38 ----------------------- src/data/database | Bin 39145472 -> 39145472 bytes src/insertPublished.mjs | 1 + src/logger.mjs | 2 +- src/spam.mjs | 19 ------------ src/start.mjs | 5 ++- src/todaysPromptAlreadyPublished.mjs | 2 -- 9 files changed, 52 insertions(+), 62 deletions(-) create mode 100644 src/checkAndPublish.mjs delete mode 100644 src/daily.mjs delete mode 100644 src/spam.mjs 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 60260cf427802fc3235b232f9ff749d4ff8e4e8c..48854d03211649de56b06e1eb157273be391e9af 100644 GIT binary patch delta 2347 zcmZA0Wpox~7{>9v?>5Fpj4_%48>3-k8?}+6yTQV^KtdEm4A2?mg`%Vqq7o{Cf?Z(1 z1Ob&46$=pTA||$|_Mz$?Z>l)cMLsrC!TCrA~ z6>pWY60FizqLpNovC3NItnyZ}Rl!QJDq5*lC9ASk#j0vmv#MJ)teRGuRm-Yv)v?m8 z46Ck{Y1OmpTMev+RwJvi)x>IQHM6p;Y^%AIW93?TRtu}8)yisZwXyQ80;{dn&T4OU zusT|utU{}^)y3*+b+fu#J*=KqFRQoJ$LeeKv-(>Dtbx`bYp^xM8fp!*hFj-Z=UW$8 z7g`rtBdm+9ORP(+%PjUY(i&x5ZjH9aSYxem))m%x>q_e?Yl1b=y4sp#U1LqQuC=bS zuD5QmrdU(08?BqHBI{=B7VB2)Hfx$S-I`&|v}ReeEn9P}+pRmSxz?T5UDiBnzO}$w zXf3i9TX$RcSWB#>)-r3kb+5I;y3e}bdcay~t+G~IYpe&YhpdOKwbmonI%~c4sP&k& z!P;m&ZarZ=X+32YdvQ@Z@pl>Xl=4KTQ6BJTd!EJT3f8GR9KW zc3QivH>@|Ux2)aP9&4|)&)RPtu->)~TJKozTJKqhtoN-CtPib^tdFh3))DKd^@(-N zI&OVxeP(@bePMlRePw-ZePexVeP?}dov=xUfiS>hZ#`@9v$@EWl$F7P#(#sfD}|jDk`Bes-P;Wp*m`y zCely~wNVG@$Ut3Wq8{p_0UDwa8lwrCq8YM~jpoQfF7nU46KoR14|AuhrQT#QR_DK10U z|459&jYZ0^@NduEGRN#MPLDYcLtt;yPT98!!b^aU*U*5pKpUxD~fy8m40g zW?~j*!z}q;8cknLW!y&wn5AY#A!pAs_BRGmra16)sDL%vJ_yS+z zD}0S_@GZW>_c(!*IEB+F!4EitAMq1@#xM94zu|ZMfwTA%f8lSOi_BG&^G6i1h(kO| zApxb4h$NIjS(HP0B%=aSP!Xx9gvzLbs;Cy-qUzDLr{g2Zhhvh9Qwq;SX2oqyNsFFJ z*fgkQ$H>_1%t%~T)r^AiBS($NpIkI zLh?fjLfVG33uzzHA*5qSr;x&s&LLewx`uQM=^oM}q-RL4klrDELi&dE3+W#+AY@?3 Wppd~KLqdjz42u@Wrw@;wZT=5txmE%I delta 4934 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 { + 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())