diff --git a/.github/workflows/github-actions-builder.yml b/.github/workflows/github-actions-builder.yml index 103016b7..015bd1ce 100644 --- a/.github/workflows/github-actions-builder.yml +++ b/.github/workflows/github-actions-builder.yml @@ -15,9 +15,9 @@ jobs: runs-on: ${{ matrix.platform }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 21 - id: set_var_win @@ -29,13 +29,9 @@ jobs: run: | echo "VERSION_JSON=$(jq -c . < version.json)" >> $GITHUB_ENV - name: install pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v3 with: - version: 8 - - name: install Rust stable - uses: actions-rs/toolchain@v1 - with: - toolchain: stable + version: latest - name: install dependencies (ubuntu only) if: matrix.platform == 'ubuntu-latest' run: | @@ -46,7 +42,7 @@ jobs: shell: bash run: | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} @@ -58,7 +54,7 @@ jobs: - if: matrix.platform == 'ubuntu-latest' run: pnpm tauri build --target x86_64-unknown-linux-gnu - if: matrix.platform == 'ubuntu-latest' - uses: "softprops/action-gh-release@v1" + uses: "softprops/action-gh-release@v2" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: "latest" @@ -75,7 +71,7 @@ jobs: - if: matrix.platform == 'macos-latest' run: pnpm tauri build --target aarch64-apple-darwin - if: matrix.platform == 'macos-latest' - uses: "softprops/action-gh-release@v1" + uses: "softprops/action-gh-release@v2" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: "latest" @@ -88,7 +84,7 @@ jobs: - if: matrix.platform == 'windows-latest' run: pnpm tauri build - if: matrix.platform == 'windows-latest' - uses: "softprops/action-gh-release@v1" + uses: "softprops/action-gh-release@v2" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: "latest" @@ -103,7 +99,7 @@ jobs: run: zip -r built_code.zip dist # then, publish the zip file - if: matrix.platform == 'ubuntu-latest' - uses: "softprops/action-gh-release@v1" + uses: "softprops/action-gh-release@v2" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: "latest" diff --git a/src/main.ts b/src/main.ts index f8f0c128..f5d95a04 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,6 +4,7 @@ import App from "./App.svelte"; import { loadData } from "./ts/storage/globalApi"; import { initHotkey } from "./ts/hotkey"; import { polyfill } from "./ts/polyfill"; +import { preLoadCheck } from "./preload"; const errorHandler = (event: ErrorEvent) => { console.error(event.error) @@ -23,18 +24,21 @@ export const removeDefaultHandler = () => { } let app: App; -try { - polyfill() - app = new App({ - target: document.getElementById("app"), - }); +if(preLoadCheck()){ + try { + polyfill() - loadData() - initHotkey() -} catch (error) { - console.error(error, error.stack) - alert(error) + app = new App({ + target: document.getElementById("app"), + }); + + loadData() + initHotkey() + } catch (error) { + console.error(error, error.stack) + alert(error) + } } export default app; \ No newline at end of file diff --git a/src/preload.ts b/src/preload.ts new file mode 100644 index 00000000..ecfef40e --- /dev/null +++ b/src/preload.ts @@ -0,0 +1,29 @@ + +export function preLoadCheck(){ + const searchParams = new URLSearchParams(location.search); + + //@ts-ignore + const isTauri = !!window.__TAURI__ + //@ts-ignore + const isNodeServer = !!globalThis.__NODE__ + + const isWeb = !isTauri && !isNodeServer && location.hostname !== 'risuai.xyz'; + + + // Check if the user has visited the main page + if(!isWeb) { + localStorage.setItem('mainpage', 'visited'); + } + else if(searchParams.has('mainpage')) { + localStorage.setItem('mainpage', searchParams.get('main-page')); + } + + + // Redirect to the main page if the user has not visited the main page + if(localStorage.getItem('mainpage') !== 'visited') { + localStorage.setItem('mainpage', 'visited'); + location.replace('https://risuai.net'); + return false; + } + return true; +} \ No newline at end of file