This commit is contained in:
parent
14aedb07aa
commit
f8c414aafc
8 changed files with 39 additions and 11 deletions
|
@ -550,6 +550,8 @@ desktop/views/components/settings.profile.vue:
|
|||
description: "自己紹介"
|
||||
birthday: "誕生日"
|
||||
save: "保存"
|
||||
is-bot: "このアカウントはBotです"
|
||||
is-cat: "このアカウントはCatです"
|
||||
|
||||
desktop/views/components/sub-note-content.vue:
|
||||
hidden: "(この投稿は非公開です)"
|
||||
|
@ -814,6 +816,7 @@ mobile/views/pages/settings/settings.profile.vue:
|
|||
avatar: "アイコン"
|
||||
banner: "バナー"
|
||||
is-bot: "このアカウントはBotです"
|
||||
is-cat: "このアカウントはCatです"
|
||||
save: "保存"
|
||||
saved: "プロフィールを保存しました"
|
||||
uploading: "アップロード中"
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
<div class="main">
|
||||
<header>
|
||||
<router-link class="name" :to="p.user | userPage" v-user-preview="p.user.id">{{ p.user | userName }}</router-link>
|
||||
<span class="is-bot" v-if="p.user.host === null && p.user.isBot">bot</span>
|
||||
<span class="is-bot" v-if="p.user.isBot">bot</span>
|
||||
<span class="is-cat" v-if="p.user.isCat">cat</span>
|
||||
<span class="username"><mk-acct :user="p.user"/></span>
|
||||
<div class="info">
|
||||
<span class="app" v-if="p.app">via <b>{{ p.app.name }}</b></span>
|
||||
|
@ -431,6 +432,7 @@ root(isDark)
|
|||
text-decoration underline
|
||||
|
||||
> .is-bot
|
||||
> .is-cat
|
||||
margin 0 .5em 0 0
|
||||
padding 1px 6px
|
||||
font-size 12px
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
<button class="ui primary" @click="save">%i18n:@save%</button>
|
||||
<section>
|
||||
<h2>その他</h2>
|
||||
<mk-switch v-model="os.i.isBot" @change="onChangeIsBot" text="このアカウントはbotです"/>
|
||||
<mk-switch v-model="os.i.isBot" @change="onChangeIsBot" text="%i18n:@is-bot%"/>
|
||||
<mk-switch v-model="os.i.isCat" @change="onChangeIsCat" text="%i18n:@is-cat%"/>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -65,6 +66,11 @@ export default Vue.extend({
|
|||
(this as any).api('i/update', {
|
||||
isBot: (this as any).os.i.isBot
|
||||
});
|
||||
},
|
||||
onChangeIsCat() {
|
||||
(this as any).api('i/update', {
|
||||
isCat: (this as any).os.i.isCat
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -17,7 +17,8 @@
|
|||
<header>
|
||||
<mk-avatar class="avatar" :user="p.user" v-if="$store.state.device.postStyle == 'smart'"/>
|
||||
<router-link class="name" :to="p.user | userPage">{{ p.user | userName }}</router-link>
|
||||
<span class="is-bot" v-if="p.user.host === null && p.user.isBot">bot</span>
|
||||
<span class="is-bot" v-if="p.user.isBot">bot</span>
|
||||
<span class="is-cat" v-if="p.user.isCat">cat</span>
|
||||
<span class="username"><mk-acct :user="p.user"/></span>
|
||||
<div class="info">
|
||||
<span class="mobile" v-if="p.viaMobile">%fa:mobile-alt%</span>
|
||||
|
@ -386,6 +387,7 @@ root(isDark)
|
|||
text-decoration underline
|
||||
|
||||
> .is-bot
|
||||
> .is-cat
|
||||
margin 0 0.5em 0 0
|
||||
padding 1px 6px
|
||||
font-size 12px
|
||||
|
|
|
@ -50,7 +50,11 @@
|
|||
md-content="%18n:!@uploading%"/>
|
||||
|
||||
<div>
|
||||
<md-switch v-model="os.i.isBot" @change="onChangeIsBot">%i18n:@is-bot%</md-switch>
|
||||
<md-switch v-model="isBot">%i18n:@is-bot%</md-switch>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<md-switch v-model="isCat">%i18n:@is-cat%</md-switch>
|
||||
</div>
|
||||
</md-card-content>
|
||||
|
||||
|
@ -75,6 +79,8 @@ export default Vue.extend({
|
|||
birthday: null,
|
||||
avatarId: null,
|
||||
bannerId: null,
|
||||
isBot: false,
|
||||
isCat: false,
|
||||
saving: false,
|
||||
uploading: false
|
||||
};
|
||||
|
@ -88,15 +94,11 @@ export default Vue.extend({
|
|||
this.birthday = (this as any).os.i.profile.birthday;
|
||||
this.avatarId = (this as any).os.i.avatarId;
|
||||
this.bannerId = (this as any).os.i.bannerId;
|
||||
this.isBot = (this as any).os.i.isBot;
|
||||
this.isCat = (this as any).os.i.isCat;
|
||||
},
|
||||
|
||||
methods: {
|
||||
onChangeIsBot() {
|
||||
(this as any).api('i/update', {
|
||||
isBot: (this as any).os.i.isBot
|
||||
});
|
||||
},
|
||||
|
||||
onAvatarChange([file]) {
|
||||
this.uploading = true;
|
||||
|
||||
|
@ -150,7 +152,9 @@ export default Vue.extend({
|
|||
description: this.description || null,
|
||||
birthday: this.birthday || null,
|
||||
avatarId: this.avatarId,
|
||||
bannerId: this.bannerId
|
||||
bannerId: this.bannerId,
|
||||
isBot: this.isBot,
|
||||
isCat: this.isCat
|
||||
}).then(i => {
|
||||
this.saving = false;
|
||||
(this as any).os.i.avatarId = i.avatarId;
|
||||
|
|
|
@ -324,6 +324,10 @@ export const pack = async (
|
|||
// resolve promises in _note object
|
||||
_note = await rap(_note);
|
||||
|
||||
if (_note.user.isCat && _note.text) {
|
||||
_note.text = _note.text.replace(/な/g, 'にゃ').replace(/ナ/g, 'ニャ');
|
||||
}
|
||||
|
||||
if (hide) {
|
||||
_note.mediaIds = [];
|
||||
_note.text = null;
|
||||
|
|
|
@ -77,6 +77,7 @@ export interface ILocalUser extends IUserBase {
|
|||
};
|
||||
lastUsedAt: Date;
|
||||
isBot: boolean;
|
||||
isCat: boolean;
|
||||
isPro: boolean;
|
||||
twoFactorSecret: string;
|
||||
twoFactorEnabled: boolean;
|
||||
|
|
|
@ -47,6 +47,11 @@ module.exports = async (params, user, app) => new Promise(async (res, rej) => {
|
|||
if (isBotErr) return rej('invalid isBot param');
|
||||
if (isBot != null) user.isBot = isBot;
|
||||
|
||||
// Get 'isCat' parameter
|
||||
const [isCat, isCatErr] = $.bool.optional().get(params.isCat);
|
||||
if (isCatErr) return rej('invalid isCat param');
|
||||
if (isCat != null) user.isCat = isCat;
|
||||
|
||||
// Get 'autoWatch' parameter
|
||||
const [autoWatch, autoWatchErr] = $.bool.optional().get(params.autoWatch);
|
||||
if (autoWatchErr) return rej('invalid autoWatch param');
|
||||
|
@ -82,6 +87,7 @@ module.exports = async (params, user, app) => new Promise(async (res, rej) => {
|
|||
bannerColor: user.bannerColor,
|
||||
profile: user.profile,
|
||||
isBot: user.isBot,
|
||||
isCat: user.isCat,
|
||||
settings: user.settings
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue