Skip to content

Commit

Permalink
藍モード (misskey-dev#7687)
Browse files Browse the repository at this point in the history
* wip

* wip

* シンボリックリンクやめた

* install lib dependency

* bring live2d assets from misskey-dev/assets

* refactor

* nanka iroiro

* コミット忘れ

* random motion

* wip

* run git submodule update --init

* コミット忘れ

* refactor

* fix bug

* Update misskey-assets

* lint

* lint

* lint

* 藍モード修正 (misskey-dev#7702)

* lazy load live2d script

* fix typo

* lazy load also widget

* hot link to cubism core

* https://github.com/misskey-dev/misskey/pull/7702/files#r695623821

* fix lint

* remove live2d stuff

* use iframe

* update

* Update gulpfile.ts

* update

* Update .gitattributes

* update

Co-authored-by: tamaina <[email protected]>
  • Loading branch information
syuilo and tamaina authored Sep 4, 2021
1 parent e1a8b15 commit 8407702
Show file tree
Hide file tree
Showing 20 changed files with 158 additions and 34 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "misskey-assets"]
path = misskey-assets
url = https://github.com/misskey-dev/assets.git
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 . ./
Expand Down
9 changes: 5 additions & 4 deletions docs/docker.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
9 changes: 5 additions & 4 deletions docs/docker.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
9 changes: 5 additions & 4 deletions docs/docker.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -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コマンドを実行する方法:

Expand Down
9 changes: 5 additions & 4 deletions docs/docker.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
11 changes: 6 additions & 5 deletions docs/setup.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
7 changes: 4 additions & 3 deletions docs/setup.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`

----------------------------------------------------------------

Expand Down
7 changes: 4 additions & 3 deletions docs/setup.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`すると直る場合があります。

Expand Down
11 changes: 6 additions & 5 deletions docs/setup.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
2 changes: 2 additions & 0 deletions locales/ja-JP.yml
Original file line number Diff line number Diff line change
Expand Up @@ -779,6 +779,7 @@ translate: "翻訳"
translatedFrom: "{x}から翻訳"
accountDeletionInProgress: "アカウントの削除が進行中です"
usernameInfo: "サーバー上であなたのアカウントを一意に識別するための名前。アルファベット(a~z, A~Z)、数字(0~9)、およびアンダーバー(_)が使用できます。ユーザー名は後から変更することは出来ません。"
aiChanMode: "藍モード"
keepCw: "CWを維持する"

_accountDelete:
Expand Down Expand Up @@ -1189,6 +1190,7 @@ _widgets:
jobQueue: "ジョブキュー"
serverMetric: "サーバーメトリクス"
aiscript: "AiScriptコンソール"
aichan: ""

_cw:
hide: "隠す"
Expand Down
1 change: 1 addition & 0 deletions misskey-assets
Submodule misskey-assets added at 017979
9 changes: 9 additions & 0 deletions src/client/pages/settings/general.vue
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@
</FormSwitch>
</FormGroup>

<FormGroup>
<FormSwitch v-model:value="aiChanMode">{{ $ts.aiChanMode }}</FormSwitch>
</FormGroup>

<FormRadios v-model="fontSize">
<template #desc>{{ $ts.fontSize }}</template>
<option value="small"><span style="font-size: 14px;">Aa</span></option>
Expand Down Expand Up @@ -149,6 +153,7 @@ export default defineComponent({
enableInfiniteScroll: defaultStore.makeGetterSetter('enableInfiniteScroll'),
useReactionPickerForContextMenu: defaultStore.makeGetterSetter('useReactionPickerForContextMenu'),
squareAvatars: defaultStore.makeGetterSetter('squareAvatars'),
aiChanMode: defaultStore.makeGetterSetter('aiChanMode'),
},
watch: {
Expand Down Expand Up @@ -184,6 +189,10 @@ export default defineComponent({
this.reloadAsk();
},
aiChanMode() {
this.reloadAsk();
},
showGapBetweenNotesInTimeline() {
this.reloadAsk();
},
Expand Down
4 changes: 4 additions & 0 deletions src/client/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,10 @@ export const defaultStore = markRaw(new Storage('base', {
where: 'device',
default: ''
},
aiChanMode: {
where: 'device',
default: false
},
}));

// TODO: 他のタブと永続化されたstateを同期
Expand Down
3 changes: 2 additions & 1 deletion src/client/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
"baseUrl": ".",
"paths": {
"@/*": ["../*"],
"@client/*": ["./*"]
"@client/*": ["./*"],
"@lib/*": ["../../lib/*"],
},
"typeRoots": [
"node_modules/@types",
Expand Down
31 changes: 30 additions & 1 deletion src/client/ui/default.vue
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,14 @@
<XWidgets v-if="widgetsShowing" class="tray"/>
</transition>

<iframe v-if="$store.state.aiChanMode" class="ivnzpscs" ref="live2d" src="https://misskey-dev.github.io/mascot-web/?scale=2&y=1.4"></iframe>

<XCommon/>
</div>
</template>

<script lang="ts">
import { defineComponent, defineAsyncComponent } from 'vue';
import { defineComponent, defineAsyncComponent, markRaw } from 'vue';
import { instanceName } from '@client/config';
import { StickySidebar } from '@client/scripts/sticky-sidebar';
import XSidebar from './default.sidebar.vue';
Expand Down Expand Up @@ -131,6 +133,19 @@ export default defineComponent({
this.isMobile = (window.innerWidth <= MOBILE_THRESHOLD);
this.isDesktop = (window.innerWidth >= DESKTOP_THRESHOLD);
}, { passive: true });
if (this.$store.state.aiChanMode) {
const iframeRect = this.$refs.live2d.getBoundingClientRect();
window.addEventListener('mousemove', ev => {
this.$refs.live2d.contentWindow.postMessage({
type: 'moveCursor',
body: {
x: ev.clientX - iframeRect.left,
y: ev.clientY - iframeRect.top,
}
}, '*');
}, { passive: true });
}
},
methods: {
Expand Down Expand Up @@ -201,6 +216,10 @@ export default defineComponent({
}
}], e);
},
onAiClick(ev) {
//if (this.live2d) this.live2d.click(ev);
}
}
});
</script>
Expand Down Expand Up @@ -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;
}
}
</style>
59 changes: 59 additions & 0 deletions src/client/widgets/aichan.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<template>
<MkContainer :naked="props.transparent" :show-header="false">
<iframe class="dedjhjmo" ref="live2d" @click="touched" src="https://misskey-dev.github.io/mascot-web/?scale=1.5&y=1.1&eyeY=100"></iframe>
</MkContainer>
</template>

<script lang="ts">
import { defineComponent, markRaw } from 'vue';
import define from './define';
import MkContainer from '@client/components/ui/container.vue';
import * as os from '@client/os';
const widget = define({
name: 'ai',
props: () => ({
transparent: {
type: 'boolean',
default: false,
},
})
});
export default defineComponent({
extends: widget,
components: {
MkContainer,
},
data() {
return {
};
},
mounted() {
window.addEventListener('mousemove', ev => {
const iframeRect = this.$refs.live2d.getBoundingClientRect();
this.$refs.live2d.contentWindow.postMessage({
type: 'moveCursor',
body: {
x: ev.clientX - iframeRect.left,
y: ev.clientY - iframeRect.top,
}
}, '*');
}, { passive: true });
},
methods: {
touched() {
//if (this.live2d) this.live2d.changeExpression('gurugurume');
}
}
});
</script>

<style lang="scss" scoped>
.dedjhjmo {
width: 100%;
height: 350px;
border: none;
pointer-events: none;
}
</style>
2 changes: 2 additions & 0 deletions src/client/widgets/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [
Expand All @@ -40,4 +41,5 @@ export const widgets = [
'jobQueue',
'button',
'aiscript',
'aichan',
];
1 change: 1 addition & 0 deletions webpack.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ module.exports = {
],
alias: {
'@client': __dirname + '/src/client',
'@lib': __dirname + '/lib',
'@': __dirname + '/src',
'const.styl': __dirname + '/src/client/const.styl'
}
Expand Down

0 comments on commit 8407702

Please sign in to comment.