[update] いい感じ™にした

READMEをnodev18に合わせて変更
package.jsonからDockerの記述を削除
Dockerfileではpnpm fetchを使うようにした
This commit is contained in:
CaffeinePower 2023-02-12 18:30:05 +09:00
parent a0ae935ada
commit 6699f54776
No known key found for this signature in database
GPG Key ID: 12B657CEA84ADF85
4 changed files with 37 additions and 45 deletions

View File

@ -5,15 +5,15 @@ WORKDIR /app
RUN apt-get update
RUN apt-get install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
COPY package.json .
COPY package.json ./
RUN corepack enable
RUN pnpm install --prod
RUN pnpm i --frozen-lockfile --prod
FROM module AS build
RUN pnpm install
RUN pnpm i --frozen-lockfile
COPY . .

View File

@ -1,5 +1,7 @@
## これってなに?
Misskey用の[Aiベース](https://github.com/syuilo/ai)のBotです。
```
_ __ ____ __ ________ __
/ | / /_ __/ / /________ _/ /_/ ____/ /_ ____ _____ / /
@ -9,6 +11,7 @@ Misskey用の[Aiベース](https://github.com/syuilo/ai)のBotです。
```
## 大きな変更点
- 自動投稿の内容
- pingに対する返答の内容
- 自動返信の内容
@ -23,10 +26,21 @@ Misskey用の[Aiベース](https://github.com/syuilo/ai)のBotです。
- 怪レい曰本语に変換してくれる機能
## 導入方法
> Node.js と npm と MeCab がインストールされている必要があります。
まず適当なディレクトリに `git clone` します。
次にそのディレクトリに `config.json` を作成します。中身は次のようにします:
### Dockerを使わずに動かす
#### 必要要件
- [Node.js](https://nodejs.org/) v18
- [pnpm](https://pnpm.io/) v7
- [MeCab](https://taku910.github.io/mecab/)
#### インストール
まず適当なディレクトリにこのリポジトリをクローンします。
次にそのディレクトリに`config.json`を作成します。中身は次のようにします。
``` json
{
"host": "https:// + あなたのインスタンスのURL (末尾の / は除く)",
@ -41,12 +55,22 @@ Misskey用の[Aiベース](https://github.com/syuilo/ai)のBotです。
"shellgeiUrl": "シェル芸BotのAPIのURLですデフォルトではhttps://websh.jiro4989.com/api/shellgei"
}
```
`npm install` して `npm run build` して `npm start` すれば起動できます。
`pnpm fetch`して`pnpm build`して`pnpm start`すれば起動できます。
### Dockerで動かす
まず適当なディレクトリに `git clone` します。<br>
次にそのディレクトリに `config.json` を作成します。中身は次のようにします:
#### 必要要件
- [Docker](https://www.docker.com/)
- [Docker Compose](https://docs.docker.com/compose/) v2
#### インストール
まず適当なディレクトリにこのリポジトリをクローンします。
次にそのディレクトリに`config.json`を作成します。中身は次のようにします。
MeCabの設定、memoryDirについては触らないでください
``` json
{
"host": "https:// + あなたのインスタンスのURL (末尾の / は除く)",
@ -55,13 +79,13 @@ Misskey用の[Aiベース](https://github.com/syuilo/ai)のBotです。
"notingEnabled": "ランダムにートを投稿する機能。true(on) or false(off)",
"keywordEnabled": "キーワードを覚える機能 (MeCab が必要) true or false",
"mecab": "/usr/bin/mecab",
"mecabDic": "/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/",
"mecabDic": "/min",
"memoryDir": "data",
"shellgeiUrl": "シェル芸BotのAPIのURLですデフォルトではhttps://websh.jiro4989.com/api/shellgei"
}
```
`npm install` して `npm run docker` すれば起動できます。<br>
`docker-compose.yml` の `enable_mecab``0` にすると、MeCabをインストールしないようにもできます。メモリが少ない環境など
`docker compose up -d`すれば起動できます。
#### 一部の機能にはフォントが必要です。NullcatChan!にはフォントは同梱されていないので、ご自身でフォントをインストールしてそのフォントを`font.ttf`という名前でインストールディレクトリに設置してください。
#### NullcatChan!は記憶の保持にインメモリデータベースを使用しており、僕のインストールディレクトリに `memory.json` という名前で永続化されます。

View File

@ -1,10 +1,8 @@
{
"version": "2.2.0",
"version": "2.3.0",
"main": "./built/index.js",
"packageManager": "pnpm@7.26.3",
"scripts": {
"docker:dev": "cross-env DOCKER_ENV=development docker-compose -f docker-compose.yml -f docker-compose_development.yml up -d --build && docker-compose logs -f",
"docker": "cross-env DOCKER_ENV=production docker-compose up -d --build && docker-compose logs -f",
"dev": "cross-env NODE_ENV=development nodemon --exec ts-node -r tsconfig-paths/register src",
"start": "cross-env NODE_ENV=production node ./built",
"lint": "prettier --write ./src/",

30
pnpm-lock.yaml generated
View File

@ -278,7 +278,6 @@ packages:
/@babel/parser/7.20.13:
resolution: {integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.20.7
dev: true
@ -745,7 +744,6 @@ packages:
/@mapbox/node-pre-gyp/1.0.10:
resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==}
hasBin: true
dependencies:
detect-libc: 2.0.1
https-proxy-agent: 5.0.1
@ -1226,7 +1224,6 @@ packages:
/acorn/8.8.2:
resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
/agent-base/6.0.2:
@ -1457,7 +1454,6 @@ packages:
/browserslist/4.21.5:
resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
caniuse-lite: 1.0.30001449
electron-to-chromium: 1.4.284
@ -1697,7 +1693,6 @@ packages:
/color-support/1.1.3:
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
hasBin: true
dev: false
/commander/2.20.3:
@ -1760,7 +1755,6 @@ packages:
/cross-env/7.0.3:
resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
hasBin: true
dependencies:
cross-spawn: 7.0.3
dev: false
@ -2062,7 +2056,6 @@ packages:
/esprima/4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
dev: true
/execa/0.7.0:
@ -2375,7 +2368,6 @@ packages:
/gomamayo-js/0.2.1:
resolution: {integrity: sha512-3g4sA3TuhYc0uMEyj1cZL2qcqUP4kRcP+DPVstGOj7Nm0RKe28Mwi0IJ4O4F43gUa7dDEhoMdh7TehMx4ILwPQ==}
hasBin: true
dependencies:
mecab-async: 0.1.2
dev: false
@ -2529,7 +2521,6 @@ packages:
/import-local/3.1.0:
resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
engines: {node: '>=8'}
hasBin: true
dependencies:
pkg-dir: 4.2.0
resolve-cwd: 3.0.0
@ -3130,7 +3121,6 @@ packages:
/js-yaml/3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
dependencies:
argparse: 1.0.10
esprima: 4.0.1
@ -3139,7 +3129,6 @@ packages:
/jsesc/2.5.2:
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
engines: {node: '>=4'}
hasBin: true
dev: true
/json-buffer/3.0.0:
@ -3157,7 +3146,6 @@ packages:
/json5/2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
hasBin: true
dev: true
/keygrip/1.1.0:
@ -3406,7 +3394,6 @@ packages:
/mkdirp/1.0.4:
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
engines: {node: '>=10'}
hasBin: true
dev: false
/module-alias/2.2.2:
@ -3461,7 +3448,6 @@ packages:
/node-gyp-build/4.6.0:
resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==}
hasBin: true
dev: false
/node-int64/0.4.0:
@ -3475,7 +3461,6 @@ packages:
/nodemon/2.0.20:
resolution: {integrity: sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==}
engines: {node: '>=8.10.0'}
hasBin: true
dependencies:
chokidar: 3.5.3
debug: 3.2.7_supports-color@5.5.0
@ -3491,7 +3476,6 @@ packages:
/nopt/1.0.10:
resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==}
hasBin: true
dependencies:
abbrev: 1.1.1
dev: true
@ -3499,7 +3483,6 @@ packages:
/nopt/5.0.0:
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
engines: {node: '>=6'}
hasBin: true
dependencies:
abbrev: 1.1.1
dev: false
@ -3748,7 +3731,6 @@ packages:
/prettier/2.8.3:
resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==}
engines: {node: '>=10.13.0'}
hasBin: true
dev: true
/pretty-format/29.4.1:
@ -3909,7 +3891,6 @@ packages:
/resolve/1.22.1:
resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
hasBin: true
dependencies:
is-core-module: 2.11.0
path-parse: 1.0.7
@ -3934,7 +3915,6 @@ packages:
/rimraf/3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
dependencies:
glob: 7.2.3
dev: false
@ -3962,7 +3942,6 @@ packages:
/seek-bzip/1.0.6:
resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==}
hasBin: true
dependencies:
commander: 2.20.3
dev: true
@ -3981,22 +3960,18 @@ packages:
/semver/5.7.1:
resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
hasBin: true
dev: true
/semver/6.3.0:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
hasBin: true
/semver/7.0.0:
resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
hasBin: true
dev: true
/semver/7.3.8:
resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
@ -4309,7 +4284,6 @@ packages:
/touch/3.1.0:
resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==}
hasBin: true
dependencies:
nopt: 1.0.10
dev: true
@ -4453,7 +4427,6 @@ packages:
/typescript/4.9.5:
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
engines: {node: '>=4.2.0'}
hasBin: true
dev: true
/unbzip2-stream/1.4.3:
@ -4508,7 +4481,6 @@ packages:
/uuid/9.0.0:
resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==}
hasBin: true
dev: false
/v8-compile-cache-lib/3.0.1:
@ -4562,7 +4534,6 @@ packages:
/which/1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true
dependencies:
isexe: 2.0.0
dev: true
@ -4570,7 +4541,6 @@ packages:
/which/2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
dependencies:
isexe: 2.0.0