diff --git a/CALCKEY.md b/CALCKEY.md
index 4a60466e4d..f977f35aba 100644
--- a/CALCKEY.md
+++ b/CALCKEY.md
@@ -57,6 +57,7 @@
- Quotes have solid border
- Reply limit bug fixed
- Make showing the update popup optional
+- Obliteration of Ai-chan
- [Make showing ads optional](https://github.com/misskey-dev/misskey/pull/8996)
- [OAuth bearer token authentication](https://github.com/misskey-dev/misskey/pull/9021)
- [Styled Repair Tools](https://github.com/misskey-dev/misskey/pull/8956)
diff --git a/cypress/e2e/widgets.cy.js b/cypress/e2e/widgets.cy.js
index 56ad95ee94..db35a60b5a 100644
--- a/cypress/e2e/widgets.cy.js
+++ b/cypress/e2e/widgets.cy.js
@@ -61,5 +61,4 @@ describe('After user signed in', () => {
buildWidgetTest('jobQueue');
buildWidgetTest('button');
buildWidgetTest('aiscript');
- buildWidgetTest('aichan');
});
diff --git a/locales/en-US.yml b/locales/en-US.yml
index 4ba09a0343..c5c43bf1a6 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -1,6 +1,6 @@
---
_lang_: "English"
-headlineMisskey: "A network connected by notes"
+headlineMisskey: "An open source, decentralized social media platform that's free forever! 🚀"
introMisskey: "Welcome! Calckey is an open source, decentralized microblogging service.\nCreate \"notes\" to share your thoughts with everyone around you. 📡\nWith \"reactions\", you can also quickly express your feelings about everyone's notes. 👍\nLet's explore a new world! 🚀"
monthAndDay: "{month}/{day}"
search: "Search"
diff --git a/packages/backend/src/models/schema/user.ts b/packages/backend/src/models/schema/user.ts
index 1c8fe97858..218d861e5b 100644
--- a/packages/backend/src/models/schema/user.ts
+++ b/packages/backend/src/models/schema/user.ts
@@ -15,7 +15,7 @@ export const packedUserLiteSchema = {
username: {
type: 'string',
nullable: false, optional: false,
- example: 'ai',
+ example: 'calc',
},
host: {
type: 'string',
diff --git a/packages/backend/src/server/api/openapi/errors.ts b/packages/backend/src/server/api/openapi/errors.ts
index d7f791c6da..e632b4a0fd 100644
--- a/packages/backend/src/server/api/openapi/errors.ts
+++ b/packages/backend/src/server/api/openapi/errors.ts
@@ -34,11 +34,11 @@ export const errors = {
},
},
'418': {
- 'I_AM_AI': {
+ 'I_AM_CALC': {
value: {
error: {
- message: 'You sent a request to Ai-chan, Misskey\'s showgirl, instead of the server.',
- code: 'I_AM_AI',
+ message: 'You sent a request to Calc, Calckey\'s resident stoner furry, instead of the server.',
+ code: 'I_AM_CALC',
id: '60c46cd1-f23a-46b1-bebe-5d2b73951a84',
},
},
diff --git a/packages/backend/src/server/api/openapi/gen-spec.ts b/packages/backend/src/server/api/openapi/gen-spec.ts
index 5c48373d52..00769d1009 100644
--- a/packages/backend/src/server/api/openapi/gen-spec.ts
+++ b/packages/backend/src/server/api/openapi/gen-spec.ts
@@ -156,7 +156,7 @@ export function genOpenapiSpec() {
},
},
'418': {
- description: 'I\'m Ai',
+ description: 'I\'m Calc',
content: {
'application/json': {
schema: {
diff --git a/packages/client/src/components/sample.vue b/packages/client/src/components/sample.vue
index fddadd6e9a..48c7fe844a 100644
--- a/packages/client/src/components/sample.vue
+++ b/packages/client/src/components/sample.vue
@@ -59,7 +59,7 @@ export default defineComponent({
async openDialog() {
os.alert({
type: 'warning',
- title: 'Oh my Aichan',
+ title: 'Oh my Calc',
text: 'Lorem ipsum dolor sit amet, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
});
},
diff --git a/packages/client/src/pages/settings/general.vue b/packages/client/src/pages/settings/general.vue
index 021f19b12a..22b27fad02 100644
--- a/packages/client/src/pages/settings/general.vue
+++ b/packages/client/src/pages/settings/general.vue
@@ -57,7 +57,6 @@
{{ i18n.ts.disableDrawer }}
{{ i18n.ts.showUpdates }}
- {{ i18n.ts.aiChanMode }}
{{ i18n.ts.fontSize }}
@@ -146,7 +145,6 @@ const enterSendsMessage = computed(defaultStore.makeGetterSetter('enterSendsMess
const useReactionPickerForContextMenu = computed(defaultStore.makeGetterSetter('useReactionPickerForContextMenu'));
const squareAvatars = computed(defaultStore.makeGetterSetter('squareAvatars'));
const showUpdates = computed(defaultStore.makeGetterSetter('showUpdates'));
-const aiChanMode = computed(defaultStore.makeGetterSetter('aiChanMode'));
watch(lang, () => {
localStorage.setItem('lang', lang.value as string);
@@ -175,7 +173,6 @@ watch([
useSystemFont,
enableInfiniteScroll,
squareAvatars,
- aiChanMode,
showGapBetweenNotesInTimeline,
instanceTicker,
overridedDeviceKind,
diff --git a/packages/client/src/pages/settings/preferences-backups.vue b/packages/client/src/pages/settings/preferences-backups.vue
index c7b4ee4169..b3aad708d1 100644
--- a/packages/client/src/pages/settings/preferences-backups.vue
+++ b/packages/client/src/pages/settings/preferences-backups.vue
@@ -84,7 +84,6 @@ const defaultStoreSaveKeys: (keyof typeof defaultStore['state'])[] = [
'squareAvatars',
'numberOfPageCache',
'showUpdates',
- 'aiChanMode',
];
const coldDeviceStorageSaveKeys: (keyof typeof ColdDeviceStorage.default)[] = [
'lightTheme',
diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts
index 3b95e65313..1f141b2c15 100644
--- a/packages/client/src/store.ts
+++ b/packages/client/src/store.ts
@@ -247,10 +247,6 @@ export const defaultStore = markRaw(new Storage('base', {
where: 'device',
default: 5,
},
- aiChanMode: {
- where: 'device',
- default: false,
- },
enterSendsMessage: {
where: 'device',
default: true,
diff --git a/packages/client/src/ui/classic.vue b/packages/client/src/ui/classic.vue
index c42407f5b0..3c2ca8e5d8 100644
--- a/packages/client/src/ui/classic.vue
+++ b/packages/client/src/ui/classic.vue
@@ -34,8 +34,6 @@
-
-
@@ -146,28 +144,6 @@ onMounted(() => {
window.addEventListener('resize', () => {
isDesktop = (window.innerWidth >= DESKTOP_THRESHOLD);
}, { passive: true });
-
- if (defaultStore.state.aiChanMode) {
- const iframeRect = live2d.getBoundingClientRect();
- window.addEventListener('mousemove', ev => {
- live2d.contentWindow.postMessage({
- type: 'moveCursor',
- body: {
- x: ev.clientX - iframeRect.left,
- y: ev.clientY - iframeRect.top,
- },
- }, '*');
- }, { passive: true });
- window.addEventListener('touchmove', ev => {
- live2d.contentWindow.postMessage({
- type: 'moveCursor',
- body: {
- x: ev.touches[0].clientX - iframeRect.left,
- y: ev.touches[0].clientY - iframeRect.top,
- },
- }, '*');
- }, { passive: true });
- }
});
diff --git a/packages/client/src/widgets/aichan.vue b/packages/client/src/widgets/aichan.vue
deleted file mode 100644
index 828490fd9c..0000000000
--- a/packages/client/src/widgets/aichan.vue
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/packages/client/src/widgets/index.ts b/packages/client/src/widgets/index.ts
index 66bec7c83f..82d0f5ec8e 100644
--- a/packages/client/src/widgets/index.ts
+++ b/packages/client/src/widgets/index.ts
@@ -22,7 +22,6 @@ export default function(app: App) {
app.component('MkwInstanceCloud', defineAsyncComponent(() => import('./instance-cloud.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 = [
@@ -47,5 +46,4 @@ export const widgets = [
'jobQueue',
'button',
'aiscript',
- 'aichan',
];