diff --git a/package.json b/package.json index 291a864..1d1b687 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@types/node-cron": "^2.0.3", "@types/uuid": "^8.0.0", "axios": "^0.19.2", + "delay": "^4.4.0", "koa": "^2.13.0", "koa-bodyparser": "^4.3.0", "koa-mount": "^4.0.0", @@ -36,6 +37,7 @@ "pg": "^8.3.0", "pug": "^3.0.0", "reflect-metadata": "^0.1.10", + "rndstr": "^1.0.0", "sass": "^1.26.10", "typeorm": "0.2.25", "typescript": "^3.9.7", diff --git a/src/worker.ts b/src/worker.ts index bd433cb..7659a2b 100644 --- a/src/worker.ts +++ b/src/worker.ts @@ -1,4 +1,6 @@ import cron from 'node-cron'; +import delay from 'delay'; + import { Users } from './models'; import { api } from './misskey'; import { format } from './format'; @@ -13,13 +15,14 @@ export default (): void => { try { const text = await format(user); - const res = await api(user.host, 'notes/create', { + const res = await api>(user.host, 'notes/create', { text, visibility: 'home' }, user.token); if (res.error) { throw res.error; } + } catch (e) { if (e.code === 'NO_SUCH_USER' || e.code === 'AUTHENTICATION_FAILED') { // ユーザーが削除されている場合、レコードからも消してとりやめ @@ -28,6 +31,8 @@ export default (): void => { } else { console.error(e); } + } finally { + await delay(3000); } } }); diff --git a/yarn.lock b/yarn.lock index f4aa6ba..0d7f19a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -894,6 +894,11 @@ define-properties@^1.1.2, define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +delay@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-4.4.0.tgz#71abc745f3ce043fe7f450491236541edec4ad0c" + integrity sha512-txgOrJu3OdtOfTiEOT2e76dJVfG/1dz2NZ4F0Pyt4UGZJryssMRp5vdM5wQoLwSOBNdrJv3F9PAhp/heqd7vrA== + delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -2620,6 +2625,11 @@ qs@^6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== +rangestr@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/rangestr/-/rangestr-0.0.1.tgz#f72ff9246f10f2a7d7c16e14616f617be2c2635a" + integrity sha1-9y/5JG8Q8qfXwW4UYW9he+LCY1o= + raw-body@^2.3.3: version "2.4.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" @@ -2754,6 +2764,14 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +rndstr@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rndstr/-/rndstr-1.0.0.tgz#77e66fa8f9b4836853fdd91e50719591bb67d349" + integrity sha1-d+ZvqPm0g2hT/dkeUHGVkbtn00k= + dependencies: + rangestr "0.0.1" + seedrandom "2.4.2" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -2781,6 +2799,11 @@ sax@>=0.6.0: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +seedrandom@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.2.tgz#18d78c41287d13aff8eadb29e235938b248aa9ff" + integrity sha1-GNeMQSh9E6/46tsp4jWTiySKqf8= + semver-diff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"