From 0d1dd45cdfeadd75cafa8231d8e75631ee81c375 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sun, 31 Dec 2023 22:19:57 +0900 Subject: [PATCH] [feat] new year --- public/sun.webp | Bin 0 -> 6410 bytes src/lib/UI/Title.svelte | 52 ++++++++++++++++++++++++++++++++++++- src/styles.css | 4 +++ src/ts/storage/database.ts | 7 +++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 public/sun.webp diff --git a/public/sun.webp b/public/sun.webp new file mode 100644 index 0000000000000000000000000000000000000000..9b780e82bc05197e7c7bddf1c7c01821970e211c GIT binary patch literal 6410 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 z zzO%6(4U7c&nXOtxg~UbuEbRIv_6ojr58j&JBE#xeL_9pl`Za*Wxc{6EQjWM+)^H(uaMzmGOtjDB zMgq?bZVwVV#IZD(YMg^^(n}u2>?PwItex{m9w<`U&Ns~6(9$MVoM%;%nHN$5^iqrE zBJzyTD`OvqSVAP{Zgvrl?-7<2kXJy%I_xW zOJnZ1jCVaHf%(x!2(V9<_GqGvs9&mRyzPxlla;^94~t{-0rmN02~u{g{8iwa-Jzcr zHd;yQ=_~Y(%DQGfz!-Ln=pO+m7NOhY@XjvW5MxnWEiu*WG*=d)QZ4nA80devInFoY+uupRa+l18~$}$48DH1j$%ND{E z6;BJMo(hb9L*tErZ;#sICNZ7z9XokzFHc%qBh9QBT%W`K=FhxJEBTid{14XT zJG~8kDO+LIv0BDPFv?jK{avbPb%%scYx{p5q=FQjY-4Wx2b5@~D9t^KDe4!^?}|)Z zE9`pAt{3`P5UTleA-UFqL`DuP;WnudysxT zv3kg+?#N|tk(KAB>G1_8&+_kmqVUQr)Ld$PL_XlkN8-E>J>AZn7=LbJ z)#_vUMoN~9ebxbmDj!KR(VuI%^szG1Cz5aHwb4ZhehKF9NCoBoIZ2dI&A|bkh&h+^ z_rGMt$fj3b0j9WvyVm*LRv#5O;Wt8?M`0m(DC79~+KY8BgD`?Rew!FG&Azt1BBvp$ z5mNvJmJR)q7~nL#u5#Pd2+Q?*z*aC3>i)t*@KT+}P;44A#G@vbp;`p5WHN4dSa|g$ zi!|ctb!UPC7GNP^Ug_^>v@^g<1-=$v)b;Azlz0Y;I9SD}iWM_YZ4l#A;2dfDSUD_c zy+g%@xgCOB=vcL<$hnEHAlF1lhz(8E0}!qz!b{HbrI@I6ySG*>_ZoMD>s^r+z@hat zH*ixOCJr_94Jv1s-#d3m*3x{TkmHp2S23|xMBQP&oxtDstK3yZe(*HWAF>&V(Zr7y zzM=OEy1icH@v+k1xINV_8B@iE##s9fkNg7kmYa~@kNgO!BrZ_TqsNtK+5BI6vElU% z&IkYITf5%YDJOZf;BO9RJIB9aB|r2%_5i1|&^d-GdVkHd-e!|`FbZ@Qc0n}>8-?mUKB1(#MF*S#E!LKXqe$cHv@o(b5ni zP73)OTFI9PJTE1^{M(NjKGgF@2S-}z{kLBBWJ_!O4M&8Z%pPxeU?2trY$Cs>Q~ei* z`NFfjz_PMnYr5i0f~MBc+(eoW&Q>_Ze*9I_wL%<^_(}{v`Z5l$aE8!M;XL=|z)2xM zZ=HwUEM)*Tz7BXFk_0NBhKq6)s>u(< zqoT}ekIZ(Bh$D|J~H+z)534W;cGSAkt36i{iW`4msg{ z%*Yf}kLRQGxYuM;o*rmA0T?Rl=OBZrWV)|uAm?2Wy1vlw3g^r_IM`4yfPF~|)mCN!W;AXz=otI*FKa(KVr#S))fEaU9H4QivVF-Bv~tb0`@hJNa+pk~EQ zjG65{)!-Kr0s0c047ypg8_dE?jLoSx@Hu&?u%Rj$aJ3%91~wv$GAuZ_);4D+fL8^o z4|5rlIw*fH+f&S#5+xZ;T@uOWEYm5|uav?G-%UBUNm%t+9>&47sTrAu377utnuJe- zH;lHuovai)r7G?Uh*6W@GvH+A9MxYdcAdI3Ep@S-qb7-}Q;wEL56%$lW}l})tLNR* z|N1yg?9x48a1U7--N@E2t8yUgsv + import { alertMd, alertNormal } from "src/ts/alert"; + import { DataBase } from "src/ts/storage/database"; import { openURL } from "src/ts/storage/globalApi"; let specialDay = '' + specialDay = 'newYear' // for testing const today = new Date() if (today.getMonth() === 11 && today.getDate() >= 19 && today.getDate() <= 25) { specialDay = 'christmas' } + if( today.getMonth() === 1 && today.getDate() < 4){ + specialDay = 'newYear' + } let iconAnimation = 0 let clicks = 0 let score = 0 let time = 20 let miniGameStart = false + const onClick = () => { + if(specialDay === 'newYear'){ + const db = $DataBase + let messages = 0 + let chats = 0 + if(db.statistics?.newYear2024){ + const markdown = ` +# Happy New Year! +You've had: +- Sent over ${db.statistics.newYear2024.messages} messages +- Played over ${db.statistics.newYear2024.chats} chats + ` + alertMd(markdown) + return + } + db.characters.map((c) => { + c.chats.map((chat) => { + messages += chat.message.length + }) + chats += c.chats.length + }) + const markdown = ` +# Happy New Year! +You've had: +- Sent over ${messages} messages +- Played over ${chats} chats + ` + db.statistics.newYear2024 = { + messages, + chats + } + alertMd(markdown) + } + } + -

RisuAI + +

RisuAI {#if specialDay === 'christmas'} {#if clicks < 5} @@ -31,6 +73,14 @@ > {/if} {/if} + {#if specialDay === 'newYear'} + + sun + {/if}

{#if clicks >= 5} diff --git a/src/styles.css b/src/styles.css index c85a6aff..6219fd08 100644 --- a/src/styles.css +++ b/src/styles.css @@ -158,4 +158,8 @@ html, body{ .bgc{ border-top: 1px solid rgba(98, 114, 164, 0.7); +} + +.text-bordered{ + -webkit-text-stroke: 1px #000; } \ No newline at end of file diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 5d296273..fe053ba9 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -348,6 +348,7 @@ export function setDatabase(data:Database){ data.newOAIHandle ??= true data.gptVisionQuality ??= 'low' data.huggingfaceKey ??= '' + data.statistics ??= {} data.reverseProxyOobaArgs ??= { mode: 'instruct' } @@ -575,6 +576,12 @@ export interface Database{ genTime:number proomptSettings: ProomptSettings keiServerURL:string + statistics: { + newYear2024?: { + messages: number + chats: number + } + } } export interface customscript{