diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml
index c6e5329c2..9a32dac94 100644
--- a/.github/workflows/nodejs.yml
+++ b/.github/workflows/nodejs.yml
@@ -29,6 +29,8 @@ jobs:
steps:
- uses: actions/checkout@v2
+ with:
+ submodules: true
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
@@ -48,6 +50,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
+ with:
+ submodules: true
- uses: actions/setup-node@v1
with:
node-version: 12.x
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000..9246e09b8
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "misskey-assets"]
+ path = misskey-assets
+ url = https://github.com/misskey-dev/assets.git
diff --git a/Dockerfile b/Dockerfile
index 1e8584551..8c655c4c4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -20,6 +20,7 @@ RUN apk add --no-cache \
python3 \
zlib-dev
+RUN git submodule update --init
COPY package.json yarn.lock .yarnrc ./
RUN yarn install
COPY . ./
diff --git a/docs/docker.en.md b/docs/docker.en.md
index 93eee8e4b..adeafe3d3 100644
--- a/docs/docker.en.md
+++ b/docs/docker.en.md
@@ -83,10 +83,11 @@ Just `docker-compose up -d`. GLHF!
1. `git stash`
2. `git checkout master`
3. `git pull`
-4. `git stash pop`
-5. `docker-compose build`
-6. Check [ChangeLog](../CHANGELOG.md) for migration information
-7. `docker-compose stop && docker-compose up -d`
+4. `git submodule update --init`
+5. `git stash pop`
+6. `docker-compose build`
+7. Check [ChangeLog](../CHANGELOG.md) for migration information
+8. `docker-compose stop && docker-compose up -d`
### How to execute [cli commands](manage.en.md):
`docker-compose run --rm web node built/tools/mark-admin @example`
diff --git a/docs/docker.fr.md b/docs/docker.fr.md
index 7abd46335..840e5b5a2 100644
--- a/docs/docker.fr.md
+++ b/docs/docker.fr.md
@@ -50,10 +50,11 @@ Utilisez la commande `docker-compose up -d`. GLHF!
1. `git stash`
2. `git checkout master`
3. `git pull`
-4. `git stash pop`
-5. `docker-compose build`
-6. Consultez le [ChangeLog](../CHANGELOG.md) pour avoir les éventuelles informations de migration
-7. `docker-compose stop && docker-compose up -d`
+4. `git submodule update --init`
+5. `git stash pop`
+6. `docker-compose build`
+7. Consultez le [ChangeLog](../CHANGELOG.md) pour avoir les éventuelles informations de migration
+8. `docker-compose stop && docker-compose up -d`
### Comment exécuter des [commandes](manage.fr.md)
`docker-compose run --rm web node built/tools/mark-admin @example`
diff --git a/docs/docker.ja.md b/docs/docker.ja.md
index 15b1a944a..c660a9041 100644
--- a/docs/docker.ja.md
+++ b/docs/docker.ja.md
@@ -83,10 +83,11 @@ docker-compose run --rm web yarn run init
1. `git stash`
2. `git checkout master`
3. `git pull`
-4. `git stash pop`
-5. `docker-compose build`
-6. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
-7. `docker-compose stop && docker-compose up -d`
+4. `git submodule update --init`
+5. `git stash pop`
+6. `docker-compose build`
+7. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
+8. `docker-compose stop && docker-compose up -d`
### cliコマンドを実行する方法:
diff --git a/docs/docker.zh.md b/docs/docker.zh.md
index a842fcb0c..5a494ea11 100644
--- a/docs/docker.zh.md
+++ b/docs/docker.zh.md
@@ -83,10 +83,11 @@ docker-compose run --rm web yarn run init
1. `git stash`
2. `git checkout master`
3. `git pull`
-4. `git stash pop`
-5. `docker-compose build`
-6. 检查 [更新日志](../CHANGELOG.md) 以获取升级迁移信息。
-7. `docker-compose stop && docker-compose up -d`
+4. `git submodule update --init`
+5. `git stash pop`
+6. `docker-compose build`
+7. 检查 [更新日志](../CHANGELOG.md) 以获取升级迁移信息。
+8. `docker-compose stop && docker-compose up -d`
### 如何执行 [控制台指令](manage.zh.md):
`docker-compose run --rm web node built/tools/mark-admin @example`
diff --git a/docs/setup.en.md b/docs/setup.en.md
index bb72fcda1..dfe50a660 100644
--- a/docs/setup.en.md
+++ b/docs/setup.en.md
@@ -131,11 +131,12 @@ You can check if the service is running with `systemctl status misskey`.
### How to update your Misskey server to the latest version
1. `git checkout master`
2. `git pull`
-3. `yarn install`
-4. `NODE_ENV=production yarn build`
-5. `yarn migrate`
-6. Restart your Misskey process to apply changes
-7. Enjoy
+3. `git submodule update --init`
+4. `yarn install`
+5. `NODE_ENV=production yarn build`
+6. `yarn migrate`
+7. Restart your Misskey process to apply changes
+8. Enjoy
If you encounter any problems with updating, please try the following:
1. `yarn clean` or `yarn cleanall`
diff --git a/docs/setup.fr.md b/docs/setup.fr.md
index 7f4795eec..f38c7a8ea 100644
--- a/docs/setup.fr.md
+++ b/docs/setup.fr.md
@@ -126,9 +126,10 @@ Vous pouvez vérifier si le service a démarré en utilisant la commande `system
### Méthode de mise à jour vers la plus récente version de Misskey
1. `git checkout master`
2. `git pull`
-3. `yarn install`
-4. `NODE_ENV=production yarn build`
-5. `yarn migrate`
+3. `git submodule update --init`
+4. `yarn install`
+5. `NODE_ENV=production yarn build`
+6. `yarn migrate`
----------------------------------------------------------------
diff --git a/docs/setup.ja.md b/docs/setup.ja.md
index e8bae56f4..5681ee8c5 100644
--- a/docs/setup.ja.md
+++ b/docs/setup.ja.md
@@ -133,9 +133,10 @@ yarn run init
### Misskeyを最新バージョンにアップデートする方法:
1. `git checkout master`
2. `git pull`
-3. `yarn install`
-4. `NODE_ENV=production yarn build`
-5. `yarn migrate`
+3. `git submodule update --init`
+4. `yarn install`
+5. `NODE_ENV=production yarn build`
+6. `yarn migrate`
なにか問題が発生した場合は、`yarn clean`または`yarn cleanall`すると直る場合があります。
diff --git a/docs/setup.zh.md b/docs/setup.zh.md
index 50664706b..26a72f0d0 100644
--- a/docs/setup.zh.md
+++ b/docs/setup.zh.md
@@ -131,11 +131,12 @@ yarn run init
### 如何将您的 Misskey 服务器升级至最新版本
1. `git checkout master`
2. `git pull`
-3. `yarn install`
-4. `NODE_ENV=production yarn build`
-5. `yarn migrate`
-6. 重启您的 Misskey 进程来应用改变。
-7. 尽情享受吧!
+3. `git submodule update --init`
+4. `yarn install`
+5. `NODE_ENV=production yarn build`
+6. `yarn migrate`
+7. 重启您的 Misskey 进程来应用改变。
+8. 尽情享受吧!
如果您在更新时遇到任何问题,请尝试以下操作:
1. `yarn clean` 或是 `yarn cleanall`
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index b456f7b1d..428cfc1fd 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -779,6 +779,7 @@ translate: "翻訳"
translatedFrom: "{x}から翻訳"
accountDeletionInProgress: "アカウントの削除が進行中です"
usernameInfo: "サーバー上であなたのアカウントを一意に識別するための名前。アルファベット(a~z, A~Z)、数字(0~9)、およびアンダーバー(_)が使用できます。ユーザー名は後から変更することは出来ません。"
+aiChanMode: "藍モード"
keepCw: "CWを維持する"
_accountDelete:
@@ -1189,6 +1190,7 @@ _widgets:
jobQueue: "ジョブキュー"
serverMetric: "サーバーメトリクス"
aiscript: "AiScriptコンソール"
+ aichan: "藍"
_cw:
hide: "隠す"
diff --git a/misskey-assets b/misskey-assets
new file mode 160000
index 000000000..0179793ec
--- /dev/null
+++ b/misskey-assets
@@ -0,0 +1 @@
+Subproject commit 0179793ec891856d6f37a3be16ba4c22f67a81b5
diff --git a/src/client/pages/settings/general.vue b/src/client/pages/settings/general.vue
index cfa8107d2..f8e8e6b24 100644
--- a/src/client/pages/settings/general.vue
+++ b/src/client/pages/settings/general.vue
@@ -45,6 +45,10 @@
+
+ {{ $ts.aiChanMode }}
+
+
{{ $ts.fontSize }}
@@ -149,6 +153,7 @@ export default defineComponent({
enableInfiniteScroll: defaultStore.makeGetterSetter('enableInfiniteScroll'),
useReactionPickerForContextMenu: defaultStore.makeGetterSetter('useReactionPickerForContextMenu'),
squareAvatars: defaultStore.makeGetterSetter('squareAvatars'),
+ aiChanMode: defaultStore.makeGetterSetter('aiChanMode'),
},
watch: {
@@ -184,6 +189,10 @@ export default defineComponent({
this.reloadAsk();
},
+ aiChanMode() {
+ this.reloadAsk();
+ },
+
showGapBetweenNotesInTimeline() {
this.reloadAsk();
},
diff --git a/src/client/store.ts b/src/client/store.ts
index 4c4a7d93e..e4b762873 100644
--- a/src/client/store.ts
+++ b/src/client/store.ts
@@ -210,6 +210,10 @@ export const defaultStore = markRaw(new Storage('base', {
where: 'device',
default: ''
},
+ aiChanMode: {
+ where: 'device',
+ default: false
+ },
}));
// TODO: 他のタブと永続化されたstateを同期
diff --git a/src/client/tsconfig.json b/src/client/tsconfig.json
index ac7ef7ddf..7a26047dd 100644
--- a/src/client/tsconfig.json
+++ b/src/client/tsconfig.json
@@ -21,7 +21,8 @@
"baseUrl": ".",
"paths": {
"@/*": ["../*"],
- "@client/*": ["./*"]
+ "@client/*": ["./*"],
+ "@lib/*": ["../../lib/*"],
},
"typeRoots": [
"node_modules/@types",
diff --git a/src/client/ui/default.vue b/src/client/ui/default.vue
index 23b63114c..eef693fae 100644
--- a/src/client/ui/default.vue
+++ b/src/client/ui/default.vue
@@ -54,12 +54,14 @@
+
+
@@ -458,5 +477,15 @@ export default defineComponent({
overflow: auto;
background: var(--bg);
}
+
+ > .ivnzpscs {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ width: 300px;
+ height: 600px;
+ border: none;
+ pointer-events: none;
+ }
}
diff --git a/src/client/widgets/aichan.vue b/src/client/widgets/aichan.vue
new file mode 100644
index 000000000..06c49090a
--- /dev/null
+++ b/src/client/widgets/aichan.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/client/widgets/index.ts b/src/client/widgets/index.ts
index 38cb85494..51a82af08 100644
--- a/src/client/widgets/index.ts
+++ b/src/client/widgets/index.ts
@@ -19,6 +19,7 @@ export default function(app: App) {
app.component('MkwJobQueue', defineAsyncComponent(() => import('./job-queue.vue')));
app.component('MkwButton', defineAsyncComponent(() => import('./button.vue')));
app.component('MkwAiscript', defineAsyncComponent(() => import('./aiscript.vue')));
+ app.component('MkwAichan', defineAsyncComponent(() => import('./aichan.vue')));
}
export const widgets = [
@@ -40,4 +41,5 @@ export const widgets = [
'jobQueue',
'button',
'aiscript',
+ 'aichan',
];
diff --git a/webpack.config.ts b/webpack.config.ts
index 296813caa..e9f3aa6e4 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -164,6 +164,7 @@ module.exports = {
],
alias: {
'@client': __dirname + '/src/client',
+ '@lib': __dirname + '/lib',
'@': __dirname + '/src',
'const.styl': __dirname + '/src/client/const.styl'
}