From bbf96627e57a5cbfc010077a104b5b12e3024f77 Mon Sep 17 00:00:00 2001 From: Douglas Araujo Date: Wed, 3 Mar 2021 11:36:12 -0300 Subject: [PATCH] fix: bater ponto de almoco --- .env.sample | 1 + bot.js | 16 ++++++++++ package-lock.json | 77 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 ++ script.js | 2 +- 5 files changed, 97 insertions(+), 1 deletion(-) diff --git a/.env.sample b/.env.sample index 5c87a8c..5cd50d2 100644 --- a/.env.sample +++ b/.env.sample @@ -5,6 +5,7 @@ REST_PORT=8090 PORT=8079 TELEGRAM_CHAT_ID=ID DA SUA CONVERSA COM O BOT TELEGRAM_BOT_KEY=CHAVE DO TELEGRAM +CRON_RULE=0 9,12,13,18 * * 1-5 LATITUDE=0 LONGITUDE=0 \ No newline at end of file diff --git a/bot.js b/bot.js index 3e7422c..3a561df 100644 --- a/bot.js +++ b/bot.js @@ -1,9 +1,25 @@ +// const parser = require('cron-parser'); const TelegramBot = require('node-telegram-bot-api'); const token = process.env.TELEGRAM_BOT_KEY; const bot = new TelegramBot(token, { polling: true }); +// const interval = parser.parseExpression(process.env.CRON_RULE); + +// const date = require('date-fns'); + bot.on('message', (msg) => { bot.sendMessage(process.env.TELEGRAM_CHAT_ID, "Ainda tô aqui!"); + + // if (msg.text == '/nextrun') { + // // let next_run = date.format( + // // interval.next()._date, + // // "'Dia' dd 'de' MMMM', às ' HH:mm'h'" + // // ); + + // console.log(interval.next()._date); + + // // bot.sendMessage(process.env.TELEGRAM_CHAT_ID, next_run); + // } }); module.exports = { diff --git a/package-lock.json b/package-lock.json index eadd5a0..06c3707 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,6 +6,8 @@ "": { "dependencies": { "async-exit-hook": "^2.0.1", + "cron-parser": "^3.2.0", + "date-fns": "^2.18.0", "dotenv": "^8.2.0", "node-cron": "^2.0.3", "node-fetch": "^2.6.1", @@ -139,6 +141,18 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "node_modules/cron-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-3.2.0.tgz", + "integrity": "sha512-PBI6almCTmOLikQzxcbZovK5d6zm7hWzmp6fKRN7lqZ2IRfinUCKzxRsuGrFU9fEGU0bz2ZU/OpKWlzWMxAwWQ==", + "dependencies": { + "is-nan": "^1.3.0", + "luxon": "^1.25.0" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -150,6 +164,18 @@ "node": ">=0.10" } }, + "node_modules/date-fns": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.18.0.tgz", + "integrity": "sha512-NYyAg4wRmGVU4miKq5ivRACOODdZRY3q5WLmOJSq8djyzftYphU7dTHLcEtLqEvfqMKQ0jVv91P4BAwIjsXIcw==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -417,6 +443,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-regex": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", @@ -500,6 +541,14 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/luxon": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.26.0.tgz", + "integrity": "sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A==", + "engines": { + "node": "*" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -1038,6 +1087,15 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cron-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-3.2.0.tgz", + "integrity": "sha512-PBI6almCTmOLikQzxcbZovK5d6zm7hWzmp6fKRN7lqZ2IRfinUCKzxRsuGrFU9fEGU0bz2ZU/OpKWlzWMxAwWQ==", + "requires": { + "is-nan": "^1.3.0", + "luxon": "^1.25.0" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1046,6 +1104,11 @@ "assert-plus": "^1.0.0" } }, + "date-fns": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.18.0.tgz", + "integrity": "sha512-NYyAg4wRmGVU4miKq5ivRACOODdZRY3q5WLmOJSq8djyzftYphU7dTHLcEtLqEvfqMKQ0jVv91P4BAwIjsXIcw==" + }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -1242,6 +1305,15 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, + "is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, "is-regex": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", @@ -1310,6 +1382,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "luxon": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.26.0.tgz", + "integrity": "sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A==" + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", diff --git a/package.json b/package.json index 36e1d43..fef14f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,8 @@ { "dependencies": { "async-exit-hook": "^2.0.1", + "cron-parser": "^3.2.0", + "date-fns": "^2.18.0", "dotenv": "^8.2.0", "node-cron": "^2.0.3", "node-fetch": "^2.6.1", diff --git a/script.js b/script.js index d1af4bc..6009baa 100644 --- a/script.js +++ b/script.js @@ -18,7 +18,7 @@ exitHook(callback => { // cron as 09 e as 18, de segunda a sexta // TODO: lidar com feriados e dias exclusivos (férias) -task = cron.schedule('0 9,18 * * 1-5', () => { +task = cron.schedule(process.env.CRON_RULE, () => { clock.clockit(); }, { scheduled: true,