summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkPostForm.vue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-21 13:14:55 +0900
committerGitHub <noreply@github.com>2023-01-21 13:14:55 +0900
commit65cd605b739ae0d213b3502308e9cd523d3e1ae7 (patch)
treefe446502a4af681db8319703a6b3c14c2c8e990e /packages/frontend/src/components/MkPostForm.vue
parentadd commands for build with swc (diff)
downloadmisskey-65cd605b739ae0d213b3502308e9cd523d3e1ae7.tar.gz
misskey-65cd605b739ae0d213b3502308e9cd523d3e1ae7.tar.bz2
misskey-65cd605b739ae0d213b3502308e9cd523d3e1ae7.zip
Achievements (#9665)
* wip * Update ja-JP.yml * wip * wip * Update MkAchievements.vue * wip * :art: * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip
Diffstat (limited to 'packages/frontend/src/components/MkPostForm.vue')
-rw-r--r--packages/frontend/src/components/MkPostForm.vue31
1 files changed, 30 insertions, 1 deletions
diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue
index 6822caf4f4..c7e7e85b2e 100644
--- a/packages/frontend/src/components/MkPostForm.vue
+++ b/packages/frontend/src/components/MkPostForm.vue
@@ -93,11 +93,12 @@ import { defaultStore, notePostInterruptors, postFormActions } from '@/store';
import MkInfo from '@/components/MkInfo.vue';
import { i18n } from '@/i18n';
import { instance } from '@/instance';
-import { $i, getAccounts, openAccountMenu as openAccountMenu_ } from '@/account';
+import { $i, notesCount, incNotesCount, getAccounts, openAccountMenu as openAccountMenu_ } from '@/account';
import { uploadFile } from '@/scripts/upload';
import { deepClone } from '@/scripts/clone';
import MkRippleEffect from '@/components/MkRippleEffect.vue';
import { miLocalStorage } from '@/local-storage';
+import { claimAchievement } from '@/scripts/achievements';
const modal = inject('modal');
@@ -627,6 +628,34 @@ async function post(ev?: MouseEvent) {
}
posting = false;
postAccount = null;
+
+ incNotesCount();
+ if (notesCount === 1) {
+ claimAchievement('notes1');
+ }
+
+ const text = postData.text?.toLowerCase() ?? '';
+ if ((text.includes('love') || text.includes('❤')) && text.includes('misskey')) {
+ claimAchievement('iLoveMisskey');
+ }
+ if (text.includes('Efrlqw8ytg4'.toLowerCase()) || text.includes('XVCwzwxdHuA'.toLowerCase())) {
+ claimAchievement('brainDiver');
+ }
+
+ if (props.renote && (props.renote.userId === $i.id) && text.length > 0) {
+ claimAchievement('selfQuote');
+ }
+
+ const date = new Date();
+ const h = date.getHours();
+ const m = date.getMinutes();
+ const s = date.getSeconds();
+ if (h >= 0 && h <= 3) {
+ claimAchievement('postedAtLateNight');
+ }
+ if (m === 0 && s === 0) {
+ claimAchievement('postedAt0min0sec');
+ }
});
}).catch(err => {
posting = false;