From 132bf2d2004b15bf09cccd743ee74ae9917309cb Mon Sep 17 00:00:00 2001 From: ShittyKopper Date: Thu, 1 Feb 2024 17:06:00 +0300 Subject: [PATCH 1/2] feat: oneko --- locales/en-US.yml | 1 + locales/index.d.ts | 4 + locales/ja-JP.yml | 1 + packages/frontend/assets/oneko.gif | Bin 0 -> 3316 bytes packages/frontend/src/components/SkOneko.vue | 240 ++++++++++++++++++ .../frontend/src/pages/settings/general.vue | 2 + .../pages/settings/preferences-backups.vue | 1 + packages/frontend/src/store.ts | 4 + packages/frontend/src/ui/_common_/common.vue | 3 + 9 files changed, 256 insertions(+) create mode 100644 packages/frontend/assets/oneko.gif create mode 100644 packages/frontend/src/components/SkOneko.vue diff --git a/locales/en-US.yml b/locales/en-US.yml index 6c1cfc9940..913525d7ba 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -1095,6 +1095,7 @@ accountMoved: "This user has moved to a new account:" accountMovedShort: "This account has been migrated." operationForbidden: "Operation forbidden" forceShowAds: "Always show ads" +oneko: "Cat friend :3" addMemo: "Add memo" editMemo: "Edit memo" reactionsList: "Reactions" diff --git a/locales/index.d.ts b/locales/index.d.ts index 138c87b765..b9935ae6c9 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -4425,6 +4425,10 @@ export interface Locale extends ILocale { * 常に広告を表示する */ "forceShowAds": string; + /** + * 猫友達 :3 + */ + "oneko": string; /** * メモを追加 */ diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index a154acca68..b63624f674 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1102,6 +1102,7 @@ accountMoved: "このユーザーは新しいアカウントに移行しまし accountMovedShort: "このアカウントは移行されています" operationForbidden: "この操作はできません" forceShowAds: "常に広告を表示する" +oneko: "猫友達 :3" addMemo: "メモを追加" editMemo: "メモを編集" reactionsList: "リアクション一覧" diff --git a/packages/frontend/assets/oneko.gif b/packages/frontend/assets/oneko.gif new file mode 100644 index 0000000000000000000000000000000000000000..a009c2cc19c96b001ac76e96f27e5fa1a9e56577 GIT binary patch literal 3316 zcmZ?wbhEHbWMFJyn8?Jyz`*eT|9=q0z@Ye(g^_`Qi9rXY$QwiVS# z+$5wMse0`3*VkEjOYf?GQPy+b{J>?MM$hc&+c$Q^&EGa_=gxo2*;1cf{Z=4$>Bv+8 z501$vLQF%_*e#xZzs6|jZW?*w>+wX9bR&!9rixsZ7KhSyoV;bqIZN@j`RkXrDg;++ zM0HhOKe5}~Eg~ydvYdvS?PZ5ia4`k_RA1HU&URI zW%zcS>w0^3Z^p}*FUw_4rLAjTcGE0)AOeoI@mPwtlE>U~g`=ovH z|8MBX)f@>-P&c`rbn*7o5Aqu%j8wkd{GiXYIRBQ7UW>LJMw4GAERWG(Kr=7xJFa?zf?F zt~CbDhq9|aBrnqLI`St!GD-4i-wEp2q#aH@jewR9xhQ z*H!N?xy{>qD=$2MU(U%*Mzf+i-{)XI*@@l%&2~+Uf5db6des}rANRtSTP}+Y9%s%f3xT<&pNDIb44 zoas~dM6j&#r}>4cbB;WIS`l??#q-WWt;(6&^>tgHIe&aQbGhN+rOj~**E_l?Ol_G} za#<SE>?*#S*FEyHxFo%d7@5;btRHEl1zz&`e!cFvjigw>l%koB*Dl%@ zc{6OKQKWXy#7$a@ROcM{#ae#nf8#ZAyHj}^Gd6#hoZho8rbr@oL(NIXwPn$2UcS7~ z)&|C`JSlKZY3`vNvlQnX-1MrWxV7%|jM7_etFLWd`m$Sg|J6^o*YEqU#mz4C;gHLR z1AUK97aZmj7JhM9$lu3sA9r|9;jtY{6fOt%#jG*(R_yON#w9C1=l%BYlm47MrDMD> zSL8RBm2#E7^BbdM`zJAS7oEO$EWXI_f6n1^S(2}oiMd=qsCeSQIpeF%OWvJoG;vkG z($Dwwz{FM~Kjk%fM=CmN7hd2_bz0G8AgT1uN4Cw^Y_@&Ytj+mHCI8+!wd7luRBfU8 z6(Qb0S<@e~HzqZ0S`{rV_vCuc(zo|+EPrV%cyH4G+sUhDW{KZOdcuBf`Hv}ajME=a zpH{Eb5Zty`#Om3>+U1q=`zJ-G+jsXovxsSWDkgElqws54Ro;bXb7P9;x+WW3c=||L38=Tm-e_@AK+ii~X zE1O#$Jk0F>_1)I)>enCXB9DCac@Ahz>p8b{uSVrFp7Kdk`o4%8PTs*4e8uo$&nowx zyuAw}CO9Qb)cdjTN6Rrife?|Uek-JdE6)~|9e!|Y!m@+US}&CT&J6hEc5+4U^>;Cm$#7P;H{sWMZX_Uy}8R+?#};-D(&aHIo^MJ z#3rdH7(4y)++Pe+ZN8K)Z$I=?>Fux0n?+k!cX&8zL_zhMtDhFXM+jf!=C<*fF%oM_PQ&%h)pb+<9%^)!E%X55}S1Vvx3ep z6BBow$ToR;byDOh7Q3}Rm!_yNsd}9o+>*o?GL(IV=5p)onYed;9F;x_eEpSFn7){i5o{tX zuei-(|E=e1O8%)Kpn$Dhf3ll|QL^JPMBE_m{$obSM@HyP8`)?D4V;;&-%XQR~bk>}D_N`l^)5WwB*^0v}PnDNwEetEG-+cG`QimN3dwf+EYMm^wN}IfH z&6DznnN}5FFYWm5I?H6fqu-4hll|Wdgf&(QX}HQwnsg>Qfa`Ea(9K=bx{vJbyRc~H z9jQFN3GaPxbsbT2H>!Aj@+|0hk>e4cV>?K$T?qN*R0*UC42Tt4xg=ydTAfvDJP z=StpaZs>V^qEbxlWZGuG#r#sc4K04nWD@ljdHK>=%-^bi!<#S5x1CG~Opa*(aB$+L z2kxPv#zyo0bDKCl?)04SXVNNeRjwO(bKZ1zZS%X)`m89tvM=+orRNLo_8%M0TK}47 zk`t}?f!&!mJ6yk7)4VLtbno>2(r3Rmy)*kbeczruvuM#1TNSz4(hVPrKM-So@vg=4_2PCf=Xt*#yLZp~THK_Uy>HbEucWTHC4MpoHoe(;+4H5L zC(ovB9oe@U9FxCieg2mB?(NSDe^|{FmbGl~v=Ec6S*^BQ>-%vxCjVs38(9WD+Ri5D zbZ#uGF7M0r@w*bc?z!$W{f69csjP2TKQ*j2onrBA!>sVvk95NxUOhc;<;?op!!_2w z@4VjE>vOnvO__ctYqVE-x$>Tv)izZ!bLze?4flFJ^}>9$;;NqySpNlPH|>zWGSzIK zL0xm#n~))U)Y1m#){Y{}k1imig;j%PTe2o6ZG2FWPliv|s%nP#%%e z!D*DZ^=Mo3w3g}DWHfdZuHG7F!V$0SDqs?*dP_ug>b6W>q4!#`4JXN}Qv9}$2*#A;9zeU<1&caDkYbp;1E4WK?J)gAVk%{5+X1?_D-(iz? zG^s5ynZ9Y_bcV^MP2xGz#mh68lQxFO=9SpZ(CkhTZxj7tFj?IrFvCEtqJGB13XW#I zTiYhjb0}{WuUh0@D;hDIi^KW6o58e|kvmV;6sJ~tm+~LVtUbwDwSLK*voGgd31DEb F1^`&`O8o!; literal 0 HcmV?d00001 diff --git a/packages/frontend/src/components/SkOneko.vue b/packages/frontend/src/components/SkOneko.vue new file mode 100644 index 0000000000..fbf50067a9 --- /dev/null +++ b/packages/frontend/src/components/SkOneko.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/packages/frontend/src/pages/settings/general.vue b/packages/frontend/src/pages/settings/general.vue index 2c9c1697e3..3b2946e2b7 100644 --- a/packages/frontend/src/pages/settings/general.vue +++ b/packages/frontend/src/pages/settings/general.vue @@ -145,6 +145,7 @@ SPDX-License-Identifier: AGPL-3.0-only {{ i18n.ts.useSystemFont }} {{ i18n.ts.disableDrawer }} {{ i18n.ts.forceShowAds }} + {{ i18n.ts.oneko }} {{ i18n.ts.seasonalScreenEffect }}
@@ -332,6 +333,7 @@ const emojiStyle = computed(defaultStore.makeGetterSetter('emojiStyle')); const disableDrawer = computed(defaultStore.makeGetterSetter('disableDrawer')); const disableShowingAnimatedImages = computed(defaultStore.makeGetterSetter('disableShowingAnimatedImages')); const forceShowAds = computed(defaultStore.makeGetterSetter('forceShowAds')); +const oneko = computed(defaultStore.makeGetterSetter('oneko')); const loadRawImages = computed(defaultStore.makeGetterSetter('loadRawImages')); const highlightSensitiveMedia = computed(defaultStore.makeGetterSetter('highlightSensitiveMedia')); const imageNewTab = computed(defaultStore.makeGetterSetter('imageNewTab')); diff --git a/packages/frontend/src/pages/settings/preferences-backups.vue b/packages/frontend/src/pages/settings/preferences-backups.vue index 5fccf15df6..ad0903caee 100644 --- a/packages/frontend/src/pages/settings/preferences-backups.vue +++ b/packages/frontend/src/pages/settings/preferences-backups.vue @@ -98,6 +98,7 @@ const defaultStoreSaveKeys: (keyof typeof defaultStore['state'])[] = [ 'showClipButtonInNoteFooter', 'reactionsDisplaySize', 'forceShowAds', + 'oneko', 'numberOfReplies', 'aiChanMode', 'devMode', diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 3c39288d5b..4dad6ce406 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -407,6 +407,10 @@ export const defaultStore = markRaw(new Storage('base', { where: 'device', default: false, }, + oneko: { + where: 'device', + default: false, + }, clickToOpen: { where: 'device', default: true, diff --git a/packages/frontend/src/ui/_common_/common.vue b/packages/frontend/src/ui/_common_/common.vue index 0ec036c5cb..ffdb4fa2d8 100644 --- a/packages/frontend/src/ui/_common_/common.vue +++ b/packages/frontend/src/ui/_common_/common.vue @@ -42,6 +42,8 @@ SPDX-License-Identifier: AGPL-3.0-only
DEV BUILD
{{ i18n.ts.loggedInAsBot }}
+ +