Showing
5 changed files
with
194 additions
and
6 deletions
... | @@ -10,12 +10,6 @@ sequelize | ... | @@ -10,12 +10,6 @@ sequelize |
10 | .sync({ force: false }) | 10 | .sync({ force: false }) |
11 | .then(() => { | 11 | .then(() => { |
12 | console.log("database connection complete"); | 12 | console.log("database connection complete"); |
13 | - database.addKeyword("rtx3060", "junseok"); | ||
14 | - database.getKeywordsByUserId("junseok"); | ||
15 | - database.deleteKeyword("phobyjun", "rtx3080"); | ||
16 | - database.getAllUsers(); | ||
17 | - database.getUsersByKeyword("rtx3060"); | ||
18 | - database.getAllKeywords(); | ||
19 | }) | 13 | }) |
20 | .catch((err) => { | 14 | .catch((err) => { |
21 | console.log("database connection failed"); | 15 | console.log("database connection failed"); | ... | ... |
server/chatbot/checkMamul/checkMamul.js
0 → 100644
1 | +const { marketMultiSearch } = require("../search/marketSearch"); | ||
2 | +const setCarouselMessage = require("../message/setCarouselMessage"); | ||
3 | +// Database APIs | ||
4 | +const db = require("../../apis/database"); | ||
5 | +// API List | ||
6 | +// database.addKeyword = async function(keyword, userId) | ||
7 | +// database.deleteKeyword = async function(userId, keyword) | ||
8 | +// database.getKeywordsByUserId = async function(userId) | ||
9 | +// database.getUsersByKeyword = async function(keyword) | ||
10 | +// database.getAllUsers = async function() | ||
11 | +// database.getAllKeywords = async function() | ||
12 | + | ||
13 | +const checkMamul = (client) => { | ||
14 | + db.getAllKeywords().then((keywords) => { | ||
15 | + for (let i = 0, pending = Promise.resolve(); i < keywords.length; i++) { | ||
16 | + pending = db.getUsersByKeyword(keywords[i]).then((userIds) => { | ||
17 | + marketMultiSearch(keywords[i]).then((res) => { | ||
18 | + client.multicast(userIds, [setCarouselMessage(res)]); | ||
19 | + }); | ||
20 | + }); | ||
21 | + } | ||
22 | + }); | ||
23 | +}; | ||
24 | + | ||
25 | +module.exports = { checkMamul }; |
... | @@ -15,6 +15,12 @@ const { marketMultiSearch } = require("./search/marketSearch"); | ... | @@ -15,6 +15,12 @@ const { marketMultiSearch } = require("./search/marketSearch"); |
15 | // File search - Will be deleted (Unused) | 15 | // File search - Will be deleted (Unused) |
16 | const fs = require("fs"); | 16 | const fs = require("fs"); |
17 | 17 | ||
18 | +// Cron for Mamul Notification | ||
19 | +const schedule = require("node-schedule"); | ||
20 | +const job = schedule.scheduleJob("0 */1 * * *", () => { | ||
21 | + checkMamul(client); | ||
22 | +}); | ||
23 | + | ||
18 | // Database APIs | 24 | // Database APIs |
19 | const db = require("../apis/database"); | 25 | const db = require("../apis/database"); |
20 | // API List | 26 | // API List |
... | @@ -32,6 +38,10 @@ const config = { | ... | @@ -32,6 +38,10 @@ const config = { |
32 | channelSecret: process.env.channelSecret, | 38 | channelSecret: process.env.channelSecret, |
33 | }; | 39 | }; |
34 | 40 | ||
41 | +// Cron for Mamul Notification | ||
42 | +const { checkMamul } = require("./checkMamul/checkMamul"); | ||
43 | + | ||
44 | +// Line chat bot client & event | ||
35 | const client = new line.Client(config); | 45 | const client = new line.Client(config); |
36 | 46 | ||
37 | let waitNewMamulList = []; // 매물 키워드 입력 기다리는 목록 | 47 | let waitNewMamulList = []; // 매물 키워드 입력 기다리는 목록 | ... | ... |
... | @@ -14,6 +14,7 @@ | ... | @@ -14,6 +14,7 @@ |
14 | "dotenv": "^16.0.1", | 14 | "dotenv": "^16.0.1", |
15 | "express": "^4.18.1", | 15 | "express": "^4.18.1", |
16 | "mysql2": "^2.3.3", | 16 | "mysql2": "^2.3.3", |
17 | + "node-schedule": "^2.1.0", | ||
17 | "nodemon": "^2.0.16", | 18 | "nodemon": "^2.0.16", |
18 | "sequelize": "^6.20.0" | 19 | "sequelize": "^6.20.0" |
19 | } | 20 | } |
... | @@ -508,6 +509,18 @@ | ... | @@ -508,6 +509,18 @@ |
508 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | 509 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", |
509 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" | 510 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" |
510 | }, | 511 | }, |
512 | + "node_modules/cron-parser": { | ||
513 | + "version": "3.5.0", | ||
514 | + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-3.5.0.tgz", | ||
515 | + "integrity": "sha512-wyVZtbRs6qDfFd8ap457w3XVntdvqcwBGxBoTvJQH9KGVKL/fB+h2k3C8AqiVxvUQKN1Ps/Ns46CNViOpVDhfQ==", | ||
516 | + "dependencies": { | ||
517 | + "is-nan": "^1.3.2", | ||
518 | + "luxon": "^1.26.0" | ||
519 | + }, | ||
520 | + "engines": { | ||
521 | + "node": ">=0.8" | ||
522 | + } | ||
523 | + }, | ||
511 | "node_modules/crypto-random-string": { | 524 | "node_modules/crypto-random-string": { |
512 | "version": "2.0.0", | 525 | "version": "2.0.0", |
513 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", | 526 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", |
... | @@ -548,6 +561,21 @@ | ... | @@ -548,6 +561,21 @@ |
548 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", | 561 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", |
549 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" | 562 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" |
550 | }, | 563 | }, |
564 | + "node_modules/define-properties": { | ||
565 | + "version": "1.1.4", | ||
566 | + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", | ||
567 | + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", | ||
568 | + "dependencies": { | ||
569 | + "has-property-descriptors": "^1.0.0", | ||
570 | + "object-keys": "^1.1.1" | ||
571 | + }, | ||
572 | + "engines": { | ||
573 | + "node": ">= 0.4" | ||
574 | + }, | ||
575 | + "funding": { | ||
576 | + "url": "https://github.com/sponsors/ljharb" | ||
577 | + } | ||
578 | + }, | ||
551 | "node_modules/delayed-stream": { | 579 | "node_modules/delayed-stream": { |
552 | "version": "1.0.0", | 580 | "version": "1.0.0", |
553 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | 581 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", |
... | @@ -911,6 +939,17 @@ | ... | @@ -911,6 +939,17 @@ |
911 | "node": ">=4" | 939 | "node": ">=4" |
912 | } | 940 | } |
913 | }, | 941 | }, |
942 | + "node_modules/has-property-descriptors": { | ||
943 | + "version": "1.0.0", | ||
944 | + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", | ||
945 | + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", | ||
946 | + "dependencies": { | ||
947 | + "get-intrinsic": "^1.1.1" | ||
948 | + }, | ||
949 | + "funding": { | ||
950 | + "url": "https://github.com/sponsors/ljharb" | ||
951 | + } | ||
952 | + }, | ||
914 | "node_modules/has-symbols": { | 953 | "node_modules/has-symbols": { |
915 | "version": "1.0.3", | 954 | "version": "1.0.3", |
916 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", | 955 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", |
... | @@ -1094,6 +1133,21 @@ | ... | @@ -1094,6 +1133,21 @@ |
1094 | "url": "https://github.com/sponsors/sindresorhus" | 1133 | "url": "https://github.com/sponsors/sindresorhus" |
1095 | } | 1134 | } |
1096 | }, | 1135 | }, |
1136 | + "node_modules/is-nan": { | ||
1137 | + "version": "1.3.2", | ||
1138 | + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", | ||
1139 | + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", | ||
1140 | + "dependencies": { | ||
1141 | + "call-bind": "^1.0.0", | ||
1142 | + "define-properties": "^1.1.3" | ||
1143 | + }, | ||
1144 | + "engines": { | ||
1145 | + "node": ">= 0.4" | ||
1146 | + }, | ||
1147 | + "funding": { | ||
1148 | + "url": "https://github.com/sponsors/ljharb" | ||
1149 | + } | ||
1150 | + }, | ||
1097 | "node_modules/is-npm": { | 1151 | "node_modules/is-npm": { |
1098 | "version": "5.0.0", | 1152 | "version": "5.0.0", |
1099 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", | 1153 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", |
... | @@ -1178,6 +1232,11 @@ | ... | @@ -1178,6 +1232,11 @@ |
1178 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", | 1232 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", |
1179 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" | 1233 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" |
1180 | }, | 1234 | }, |
1235 | + "node_modules/long-timeout": { | ||
1236 | + "version": "0.1.1", | ||
1237 | + "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", | ||
1238 | + "integrity": "sha1-lyHXiLR+C8taJMLivuGg2lXatRQ=" | ||
1239 | + }, | ||
1181 | "node_modules/lowercase-keys": { | 1240 | "node_modules/lowercase-keys": { |
1182 | "version": "1.0.1", | 1241 | "version": "1.0.1", |
1183 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", | 1242 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", |
... | @@ -1197,6 +1256,14 @@ | ... | @@ -1197,6 +1256,14 @@ |
1197 | "node": ">=10" | 1256 | "node": ">=10" |
1198 | } | 1257 | } |
1199 | }, | 1258 | }, |
1259 | + "node_modules/luxon": { | ||
1260 | + "version": "1.28.0", | ||
1261 | + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.0.tgz", | ||
1262 | + "integrity": "sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ==", | ||
1263 | + "engines": { | ||
1264 | + "node": "*" | ||
1265 | + } | ||
1266 | + }, | ||
1200 | "node_modules/make-dir": { | 1267 | "node_modules/make-dir": { |
1201 | "version": "3.1.0", | 1268 | "version": "3.1.0", |
1202 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", | 1269 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", |
... | @@ -1380,6 +1447,19 @@ | ... | @@ -1380,6 +1447,19 @@ |
1380 | "node": ">= 0.6" | 1447 | "node": ">= 0.6" |
1381 | } | 1448 | } |
1382 | }, | 1449 | }, |
1450 | + "node_modules/node-schedule": { | ||
1451 | + "version": "2.1.0", | ||
1452 | + "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.0.tgz", | ||
1453 | + "integrity": "sha512-nl4JTiZ7ZQDc97MmpTq9BQjYhq7gOtoh7SiPH069gBFBj0PzD8HI7zyFs6rzqL8Y5tTiEEYLxgtbx034YPrbyQ==", | ||
1454 | + "dependencies": { | ||
1455 | + "cron-parser": "^3.5.0", | ||
1456 | + "long-timeout": "0.1.1", | ||
1457 | + "sorted-array-functions": "^1.3.0" | ||
1458 | + }, | ||
1459 | + "engines": { | ||
1460 | + "node": ">=6" | ||
1461 | + } | ||
1462 | + }, | ||
1383 | "node_modules/nodemon": { | 1463 | "node_modules/nodemon": { |
1384 | "version": "2.0.16", | 1464 | "version": "2.0.16", |
1385 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", | 1465 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", |
... | @@ -1459,6 +1539,14 @@ | ... | @@ -1459,6 +1539,14 @@ |
1459 | "url": "https://github.com/sponsors/ljharb" | 1539 | "url": "https://github.com/sponsors/ljharb" |
1460 | } | 1540 | } |
1461 | }, | 1541 | }, |
1542 | + "node_modules/object-keys": { | ||
1543 | + "version": "1.1.1", | ||
1544 | + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", | ||
1545 | + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", | ||
1546 | + "engines": { | ||
1547 | + "node": ">= 0.4" | ||
1548 | + } | ||
1549 | + }, | ||
1462 | "node_modules/on-finished": { | 1550 | "node_modules/on-finished": { |
1463 | "version": "2.4.1", | 1551 | "version": "2.4.1", |
1464 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", | 1552 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", |
... | @@ -1927,6 +2015,11 @@ | ... | @@ -1927,6 +2015,11 @@ |
1927 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", | 2015 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", |
1928 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" | 2016 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" |
1929 | }, | 2017 | }, |
2018 | + "node_modules/sorted-array-functions": { | ||
2019 | + "version": "1.3.0", | ||
2020 | + "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", | ||
2021 | + "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==" | ||
2022 | + }, | ||
1930 | "node_modules/sqlstring": { | 2023 | "node_modules/sqlstring": { |
1931 | "version": "2.3.3", | 2024 | "version": "2.3.3", |
1932 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", | 2025 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", |
... | @@ -2655,6 +2748,15 @@ | ... | @@ -2655,6 +2748,15 @@ |
2655 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | 2748 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", |
2656 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" | 2749 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" |
2657 | }, | 2750 | }, |
2751 | + "cron-parser": { | ||
2752 | + "version": "3.5.0", | ||
2753 | + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-3.5.0.tgz", | ||
2754 | + "integrity": "sha512-wyVZtbRs6qDfFd8ap457w3XVntdvqcwBGxBoTvJQH9KGVKL/fB+h2k3C8AqiVxvUQKN1Ps/Ns46CNViOpVDhfQ==", | ||
2755 | + "requires": { | ||
2756 | + "is-nan": "^1.3.2", | ||
2757 | + "luxon": "^1.26.0" | ||
2758 | + } | ||
2759 | + }, | ||
2658 | "crypto-random-string": { | 2760 | "crypto-random-string": { |
2659 | "version": "2.0.0", | 2761 | "version": "2.0.0", |
2660 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", | 2762 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", |
... | @@ -2686,6 +2788,15 @@ | ... | @@ -2686,6 +2788,15 @@ |
2686 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", | 2788 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", |
2687 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" | 2789 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" |
2688 | }, | 2790 | }, |
2791 | + "define-properties": { | ||
2792 | + "version": "1.1.4", | ||
2793 | + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", | ||
2794 | + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", | ||
2795 | + "requires": { | ||
2796 | + "has-property-descriptors": "^1.0.0", | ||
2797 | + "object-keys": "^1.1.1" | ||
2798 | + } | ||
2799 | + }, | ||
2689 | "delayed-stream": { | 2800 | "delayed-stream": { |
2690 | "version": "1.0.0", | 2801 | "version": "1.0.0", |
2691 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | 2802 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", |
... | @@ -2952,6 +3063,14 @@ | ... | @@ -2952,6 +3063,14 @@ |
2952 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", | 3063 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", |
2953 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" | 3064 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" |
2954 | }, | 3065 | }, |
3066 | + "has-property-descriptors": { | ||
3067 | + "version": "1.0.0", | ||
3068 | + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", | ||
3069 | + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", | ||
3070 | + "requires": { | ||
3071 | + "get-intrinsic": "^1.1.1" | ||
3072 | + } | ||
3073 | + }, | ||
2955 | "has-symbols": { | 3074 | "has-symbols": { |
2956 | "version": "1.0.3", | 3075 | "version": "1.0.3", |
2957 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", | 3076 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", |
... | @@ -3070,6 +3189,15 @@ | ... | @@ -3070,6 +3189,15 @@ |
3070 | "is-path-inside": "^3.0.2" | 3189 | "is-path-inside": "^3.0.2" |
3071 | } | 3190 | } |
3072 | }, | 3191 | }, |
3192 | + "is-nan": { | ||
3193 | + "version": "1.3.2", | ||
3194 | + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", | ||
3195 | + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", | ||
3196 | + "requires": { | ||
3197 | + "call-bind": "^1.0.0", | ||
3198 | + "define-properties": "^1.1.3" | ||
3199 | + } | ||
3200 | + }, | ||
3073 | "is-npm": { | 3201 | "is-npm": { |
3074 | "version": "5.0.0", | 3202 | "version": "5.0.0", |
3075 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", | 3203 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", |
... | @@ -3136,6 +3264,11 @@ | ... | @@ -3136,6 +3264,11 @@ |
3136 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", | 3264 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", |
3137 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" | 3265 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" |
3138 | }, | 3266 | }, |
3267 | + "long-timeout": { | ||
3268 | + "version": "0.1.1", | ||
3269 | + "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", | ||
3270 | + "integrity": "sha1-lyHXiLR+C8taJMLivuGg2lXatRQ=" | ||
3271 | + }, | ||
3139 | "lowercase-keys": { | 3272 | "lowercase-keys": { |
3140 | "version": "1.0.1", | 3273 | "version": "1.0.1", |
3141 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", | 3274 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", |
... | @@ -3149,6 +3282,11 @@ | ... | @@ -3149,6 +3282,11 @@ |
3149 | "yallist": "^4.0.0" | 3282 | "yallist": "^4.0.0" |
3150 | } | 3283 | } |
3151 | }, | 3284 | }, |
3285 | + "luxon": { | ||
3286 | + "version": "1.28.0", | ||
3287 | + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.0.tgz", | ||
3288 | + "integrity": "sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ==" | ||
3289 | + }, | ||
3152 | "make-dir": { | 3290 | "make-dir": { |
3153 | "version": "3.1.0", | 3291 | "version": "3.1.0", |
3154 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", | 3292 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", |
... | @@ -3287,6 +3425,16 @@ | ... | @@ -3287,6 +3425,16 @@ |
3287 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", | 3425 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", |
3288 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" | 3426 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" |
3289 | }, | 3427 | }, |
3428 | + "node-schedule": { | ||
3429 | + "version": "2.1.0", | ||
3430 | + "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.0.tgz", | ||
3431 | + "integrity": "sha512-nl4JTiZ7ZQDc97MmpTq9BQjYhq7gOtoh7SiPH069gBFBj0PzD8HI7zyFs6rzqL8Y5tTiEEYLxgtbx034YPrbyQ==", | ||
3432 | + "requires": { | ||
3433 | + "cron-parser": "^3.5.0", | ||
3434 | + "long-timeout": "0.1.1", | ||
3435 | + "sorted-array-functions": "^1.3.0" | ||
3436 | + } | ||
3437 | + }, | ||
3290 | "nodemon": { | 3438 | "nodemon": { |
3291 | "version": "2.0.16", | 3439 | "version": "2.0.16", |
3292 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", | 3440 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", |
... | @@ -3342,6 +3490,11 @@ | ... | @@ -3342,6 +3490,11 @@ |
3342 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", | 3490 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", |
3343 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" | 3491 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" |
3344 | }, | 3492 | }, |
3493 | + "object-keys": { | ||
3494 | + "version": "1.1.1", | ||
3495 | + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", | ||
3496 | + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" | ||
3497 | + }, | ||
3345 | "on-finished": { | 3498 | "on-finished": { |
3346 | "version": "2.4.1", | 3499 | "version": "2.4.1", |
3347 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", | 3500 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", |
... | @@ -3675,6 +3828,11 @@ | ... | @@ -3675,6 +3828,11 @@ |
3675 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", | 3828 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", |
3676 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" | 3829 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" |
3677 | }, | 3830 | }, |
3831 | + "sorted-array-functions": { | ||
3832 | + "version": "1.3.0", | ||
3833 | + "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", | ||
3834 | + "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==" | ||
3835 | + }, | ||
3678 | "sqlstring": { | 3836 | "sqlstring": { |
3679 | "version": "2.3.3", | 3837 | "version": "2.3.3", |
3680 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", | 3838 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", | ... | ... |
... | @@ -20,6 +20,7 @@ | ... | @@ -20,6 +20,7 @@ |
20 | "dotenv": "^16.0.1", | 20 | "dotenv": "^16.0.1", |
21 | "express": "^4.18.1", | 21 | "express": "^4.18.1", |
22 | "mysql2": "^2.3.3", | 22 | "mysql2": "^2.3.3", |
23 | + "node-schedule": "^2.1.0", | ||
23 | "nodemon": "^2.0.16", | 24 | "nodemon": "^2.0.16", |
24 | "sequelize": "^6.20.0" | 25 | "sequelize": "^6.20.0" |
25 | } | 26 | } | ... | ... |
-
Please register or login to post a comment