diff --git a/package.json b/package.json
index 12fb5a0a..1bd9395a 100644
--- a/package.json
+++ b/package.json
@@ -91,6 +91,7 @@
"devDependencies": {
"@capacitor/assets": "^3.0.4",
"@capacitor/cli": "^5.6.0",
+ "@rollup/plugin-strip": "^3.0.4",
"@sveltejs/vite-plugin-svelte": "^4.0.0",
"@swc/core": "1.5.7",
"@tailwindcss/typography": "^0.5.10",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8dad0810..726b3c9e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -228,6 +228,9 @@ importers:
'@capacitor/cli':
specifier: ^5.6.0
version: 5.6.0
+ '@rollup/plugin-strip':
+ specifier: ^3.0.4
+ version: 3.0.4(rollup@3.29.4)
'@sveltejs/vite-plugin-svelte':
specifier: ^4.0.0
version: 4.0.0(svelte@5.1.9)(vite@5.4.9(@types/node@18.19.7))
@@ -299,7 +302,7 @@ importers:
version: 5.1.9
svelte-check:
specifier: ^4.0.5
- version: 4.0.5(svelte@5.1.9)(typescript@5.6.3)
+ version: 4.0.5(picomatch@4.0.2)(svelte@5.1.9)(typescript@5.6.3)
svelte-preprocess:
specifier: ^6.0.0
version: 6.0.3(postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@18.19.7)(typescript@5.6.3)))(postcss@8.4.33)(svelte@5.1.9)(typescript@5.6.3)
@@ -869,6 +872,15 @@ packages:
'@risuai/ccardlib@0.4.1':
resolution: {integrity: sha512-b9xL0umf772icKnKfTIyP/hU1Skfikd5/MbmUFI9PXpbpMxbGQMw0NqpTFHda2iFu6Qxhpigr8bheAE8zxoYnw==}
+ '@rollup/plugin-strip@3.0.4':
+ resolution: {integrity: sha512-LDRV49ZaavxUo2YoKKMQjCxzCxugu1rCPQa0lDYBOWLj6vtzBMr8DcoJjsmg+s450RbKbe3qI9ZLaSO+O1oNbg==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
'@rollup/plugin-virtual@3.0.2':
resolution: {integrity: sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==}
engines: {node: '>=14.0.0'}
@@ -878,6 +890,15 @@ packages:
rollup:
optional: true
+ '@rollup/pluginutils@5.1.4':
+ resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
'@rollup/rollup-android-arm-eabi@4.24.0':
resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==}
cpu: [arm]
@@ -2004,6 +2025,9 @@ packages:
esrap@1.2.2:
resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==}
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
etag@1.8.1:
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
engines: {node: '>= 0.6'}
@@ -3019,6 +3043,10 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
+ picomatch@4.0.2:
+ resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+ engines: {node: '>=12'}
+
pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
@@ -4549,10 +4577,26 @@ snapshots:
'@risuai/ccardlib@0.4.1': {}
+ '@rollup/plugin-strip@3.0.4(rollup@3.29.4)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@3.29.4)
+ estree-walker: 2.0.2
+ magic-string: 0.30.12
+ optionalDependencies:
+ rollup: 3.29.4
+
'@rollup/plugin-virtual@3.0.2(rollup@3.29.4)':
optionalDependencies:
rollup: 3.29.4
+ '@rollup/pluginutils@5.1.4(rollup@3.29.4)':
+ dependencies:
+ '@types/estree': 1.0.6
+ estree-walker: 2.0.2
+ picomatch: 4.0.2
+ optionalDependencies:
+ rollup: 3.29.4
+
'@rollup/rollup-android-arm-eabi@4.24.0':
optional: true
@@ -5695,6 +5739,8 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.5.0
'@types/estree': 1.0.6
+ estree-walker@2.0.2: {}
+
etag@1.8.1: {}
eventemitter3@4.0.7: {}
@@ -5771,7 +5817,9 @@ snapshots:
dependencies:
pend: 1.2.0
- fdir@6.4.2: {}
+ fdir@6.4.2(picomatch@4.0.2):
+ optionalDependencies:
+ picomatch: 4.0.2
fflate@0.6.10: {}
@@ -6752,6 +6800,8 @@ snapshots:
picomatch@2.3.1: {}
+ picomatch@4.0.2: {}
+
pify@2.3.0: {}
pify@3.0.0: {}
@@ -7325,11 +7375,11 @@ snapshots:
dependencies:
svelte: 5.1.9
- svelte-check@4.0.5(svelte@5.1.9)(typescript@5.6.3):
+ svelte-check@4.0.5(picomatch@4.0.2)(svelte@5.1.9)(typescript@5.6.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
chokidar: 4.0.1
- fdir: 6.4.2
+ fdir: 6.4.2(picomatch@4.0.2)
picocolors: 1.0.1
sade: 1.8.1
svelte: 5.1.9
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index 9934b31e..c4672b73 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -29,7 +29,7 @@
},
"productName": "RisuAI",
"mainBinaryName": "RisuAI",
- "version": "149.0.0",
+ "version": "149.1.0",
"identifier": "co.aiclient.risu",
"plugins": {
"updater": {
diff --git a/src/App.svelte b/src/App.svelte
index f372579b..68a3873b 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -18,7 +18,6 @@
import MobileFooter from './lib/Mobile/MobileFooter.svelte';
import CustomGUISettingMenu from './lib/Setting/Pages/CustomGUISettingMenu.svelte';
import { checkCharOrder } from './ts/globalApi.svelte';
- import Googli from './lib/UI/Googli.svelte';
let didFirstSetup: boolean = $derived(DBState.db?.didFirstSetup)
@@ -51,9 +50,6 @@
{LoadingStatusState.text}
-
-
-
{:else if $CustomGUISettingMenuStore}
diff --git a/src/lib/Others/AlertComp.svelte b/src/lib/Others/AlertComp.svelte
index 030a8412..16273635 100644
--- a/src/lib/Others/AlertComp.svelte
+++ b/src/lib/Others/AlertComp.svelte
@@ -25,6 +25,7 @@
import { getCurrentCharacter } from "src/ts/storage/database.svelte";
import { message } from "@tauri-apps/plugin-dialog";
import HypaV3Modal from './HypaV3Modal.svelte';
+ import Googli from "../UI/Googli.svelte";
let btn
let input = $state('')
let cardExportType = $state('realm')
@@ -107,10 +108,22 @@
}}>Terms of Service to continue
{:else if $alertStore.type !== 'select' && $alertStore.type !== 'requestdata' && $alertStore.type !== 'addchar' && $alertStore.type !== 'hypaV2' && $alertStore.type !== 'chatOptions'}
{$alertStore.msg}
- {#if $alertStore.submsg}
+ {#if $alertStore.submsg && $alertStore.type !== 'progress'}
{$alertStore.submsg}
{/if}
{/if}
+ {#if $alertStore.type === 'progress'}
+
+
+ {$alertStore.submsg + '%'}
+
+
+
+
+ {/if}
+
{#if $alertStore.type === 'ask'}
{
diff --git a/src/lib/Others/SavePopupIcon.svelte b/src/lib/Others/SavePopupIcon.svelte
index 493ab97e..be295dd1 100644
--- a/src/lib/Others/SavePopupIcon.svelte
+++ b/src/lib/Others/SavePopupIcon.svelte
@@ -20,23 +20,4 @@
}}>
-{/if}
-
-
\ No newline at end of file
+{/if}
\ No newline at end of file
diff --git a/src/lib/UI/Googli.svelte b/src/lib/UI/Googli.svelte
index 736c5d04..03738d80 100644
--- a/src/lib/UI/Googli.svelte
+++ b/src/lib/UI/Googli.svelte
@@ -1,27 +1,43 @@
-{#if !import.meta.env.VITE_AD_CLIENT}
-
-
-
+{#if import.meta.env.VITE_AD_CLIENT}
+ {#if import.meta.env.VITE_AD_CLIENT === 'TEST'}
+
+
728 ? "display:block !important;width:728px;height:90px" : "display:block !important;width:300px;height:100px"}
+ >TEST
+
+ {:else}
+
+ 728 ? "display:block !important;width:728px;height:90px" : "display:block !important;width:300px;height:100px"}
+ data-ad-client={window.innerWidth > 728 ? import.meta.env.VITE_AD_CLIENT : import.meta.env.VITE_AD_CLIENT_MOBILE}
+ data-ad-slot={window.innerWidth > 728 ? import.meta.env.VITE_AD_SLOT : import.meta.env.VITE_AD_SLOT_MOBILE}
+ >
+
+ {/if}
{/if}
\ No newline at end of file
diff --git a/src/lib/UI/Realm/RealmPopUp.svelte b/src/lib/UI/Realm/RealmPopUp.svelte
index 6fef1cbb..7cd78753 100644
--- a/src/lib/UI/Realm/RealmPopUp.svelte
+++ b/src/lib/UI/Realm/RealmPopUp.svelte
@@ -8,6 +8,7 @@
import RealmLicense from "./RealmLicense.svelte";
import MultiLangDisplay from "../GUI/MultiLangDisplay.svelte";
import { tooltip } from "src/ts/gui/tooltip";
+ import Googli from "../Googli.svelte";
interface Props {
openedData: hubType;
@@ -50,6 +51,7 @@
{language.popularityLevel.replace('{}', openedData.download.toString())}
+
{#if openedData.hasEmotion}
{
@@ -69,6 +71,9 @@
+
+
+
{
e.stopPropagation()
diff --git a/src/styles.css b/src/styles.css
index bad19e46..9758c7af 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -272,6 +272,23 @@ html, body{
z-index: 100;
}
+.saving-animation {
+ animation: saving-anime 1s infinite;
+ background-size: 200% auto;
+}
+
+@keyframes saving-anime {
+ 0% {
+ background-position: 0 0;
+ }
+ 50% {
+ background-position: 100% 100%;
+ }
+ 100% {
+ background-position: 0 0;
+ }
+}
+
.flexium{
display: flex;
flex-direction: row;
diff --git a/src/ts/alert.ts b/src/ts/alert.ts
index f023e7c0..c7c96a88 100644
--- a/src/ts/alert.ts
+++ b/src/ts/alert.ts
@@ -10,7 +10,7 @@ export interface alertData{
type: 'error'|'normal'|'none'|'ask'|'wait'|'selectChar'
|'input'|'toast'|'wait2'|'markdown'|'select'|'login'
|'tos'|'cardexport'|'requestdata'|'addchar'|'hypaV2'|'selectModule'
- |'chatOptions'|'pukmakkurit'|'branches'|'hypaV3',
+ |'chatOptions'|'pukmakkurit'|'branches'|'hypaV3'|'progress',
msg: string,
submsg?: string
}
diff --git a/src/ts/characterCards.ts b/src/ts/characterCards.ts
index e66b70ad..c4737140 100644
--- a/src/ts/characterCards.ts
+++ b/src/ts/characterCards.ts
@@ -120,6 +120,36 @@ export async function importCharacterProcess(f:{
let readedChara = ''
let readedCCv3 = ''
let img:Uint8Array
+ let pngChunks = 0
+ let readedPngChunks = 0
+
+ {
+
+ let readData:File | Uint8Array | ReadableStream
+ if(f.data instanceof ReadableStream){
+ const tee = f.data.tee()
+ f.data = tee[0]
+ readData = tee[1]
+ }
+ else{
+ readData = f.data
+ }
+
+ const prereader = PngChunk.readGenerator(readData, {
+
+ })
+
+ for await(const chunk of prereader){
+ if(chunk instanceof AppendableBuffer){
+ break
+ }
+ if(chunk.key.startsWith('chara-ext-asset_')){
+ pngChunks++
+ }
+ }
+ }
+
+
const readGenerator = PngChunk.readGenerator(f.data, {
returnTrimed: true
})
@@ -151,8 +181,20 @@ export async function importCharacterProcess(f:{
}
if(chunk.key.startsWith('chara-ext-asset_')){
const assetIndex = chunk.key.replace('chara-ext-asset_:', '').replace('chara-ext-asset_', '')
- alertWait('Loading... (Reading Asset ' + assetIndex + ')' )
const assetData = Buffer.from(chunk.value, 'base64')
+ if(pngChunks === 0){
+ alertWait('Loading... (Loaded ' + readedPngChunks + ' Assets)')
+ }
+ else{
+ alertStore.set({
+ type: 'progress',
+ msg: 'Loading... (Loading Assets)',
+ submsg: (readedPngChunks / pngChunks * 100).toFixed(2)
+ })
+ }
+
+ readedPngChunks++
+
if(db.account?.useSync && f.lightningRealmImport){
const id = await hasher(assetData)
const xid = 'assets/' + id + '.png'
@@ -656,8 +698,9 @@ async function importCharacterCardSpec(card:CharacterCardV2Risu|CharacterCardV3,
if(risuext.emotions){
for(let i=0;i 0){
for(let i=0;i 0){
for(let i=0;i 0){
for(let i=0;i {
if(arg.alertInfo){
- alertStore.set({
- type: 'wait',
- msg: `Loading... (Getting Data: ${Math.floor(pointer / getLength() * 100)}%)`
+ alertStore.set({
+ type: 'progress',
+ msg: `Loading...`,
+ submsg: (pointer / getLength() * 100).toFixed(2)
})
}
}
diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts
index c21bebae..1a0c632c 100644
--- a/src/ts/process/request.ts
+++ b/src/ts/process/request.ts
@@ -1738,6 +1738,10 @@ async function requestGoogleCloudVertex(arg:RequestDataArgumentExtended):Promise
}
]
+ if(arg.modelInfo.flags.includes(LLMFlags.noCivilIntegrity)){
+ uncensoredCatagory.splice(4, 1)
+ }
+
if(arg.modelInfo.flags.includes(LLMFlags.geminiBlockOff)){
for(let i=0;i {
+ return {
plugins: [
svelte({
preprocess: [
@@ -22,6 +23,9 @@ export default defineConfig({
}),
wasm(),
topLevelAwait(),
+ command === 'build' ? strip({
+ include: '**/*.(mjs|js|svelte|ts)'
+ }) : null
],
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
@@ -44,7 +48,7 @@ export default defineConfig({
minify: process.env.TAURI_DEBUG ? false : 'esbuild',
// produce sourcemaps for debug builds
sourcemap: !!process.env.TAURI_DEBUG,
- chunkSizeWarningLimit: 2000
+ chunkSizeWarningLimit: 2000,
},
optimizeDeps:{
@@ -59,4 +63,5 @@ export default defineConfig({
'modules': '/modules'
}
}
+}
});