diff --git a/src/auto-imports.d.ts b/src/auto-imports.d.ts
index 10f6f225..913b102e 100644
--- a/src/auto-imports.d.ts
+++ b/src/auto-imports.d.ts
@@ -220,6 +220,7 @@ declare global {
const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
const useParallax: typeof import('@vueuse/core')['useParallax']
const usePermission: typeof import('@vueuse/core')['usePermission']
+ const usePlayerStore: typeof import('./store/player')['usePlayerStore']
const usePointer: typeof import('@vueuse/core')['usePointer']
const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
diff --git a/src/components.d.ts b/src/components.d.ts
index 415117f1..c494a931 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -39,6 +39,7 @@ declare module '@vue/runtime-core' {
ConfigNotification: typeof import('./views/config-notification.vue')['default']
ConfigNotificcation: typeof import('./views/config-notificcation.vue')['default']
ConfigParser: typeof import('./views/config-parser.vue')['default']
+ ConfigPlayer: typeof import('./views/config-player.vue')['default']
ConfigProxy: typeof import('./views/config-proxy.vue')['default']
copy: typeof import('./basic/ab-switch copy.vue')['default']
Login: typeof import('./pages/login.vue')['default']
diff --git a/src/pages/index/config.vue b/src/pages/index/config.vue
index e2b85722..857c64ba 100644
--- a/src/pages/index/config.vue
+++ b/src/pages/index/config.vue
@@ -22,6 +22,8 @@ definePage({
+
+
Cancel
Apply
diff --git a/src/pages/index/player.vue b/src/pages/index/player.vue
index 58559801..c97ec45a 100644
--- a/src/pages/index/player.vue
+++ b/src/pages/index/player.vue
@@ -2,11 +2,22 @@
definePage({
name: 'Player',
});
+
+const { url } = storeToRefs(usePlayerStore());
+
+
+ Please set up the media player
+
+
+
-
-
diff --git a/src/router/index.ts b/src/router/index.ts
index 502ea848..8a9ff55a 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -6,6 +6,8 @@ const router = createRouter({
router.beforeEach((to) => {
const { isLogin } = useAuth();
+ const { type, url } = storeToRefs(usePlayerStore());
+
if (!isLogin.value && to.path !== '/login') {
return { name: 'Login' };
}
@@ -14,6 +16,11 @@ router.beforeEach((to) => {
return { name: 'Index' };
}
+ if (type.value === 'jump' && url.value !== '' && to.path === '/player') {
+ open(url.value);
+ return false;
+ }
+
watch(isLogin, (val) => {
if (to.path === '/login' && val) {
router.replace({ name: 'Index' });
diff --git a/src/store/player.ts b/src/store/player.ts
new file mode 100644
index 00000000..3e403406
--- /dev/null
+++ b/src/store/player.ts
@@ -0,0 +1,13 @@
+type MediaPlayerType = 'jump' | 'iframe';
+
+export const usePlayerStore = defineStore('player', () => {
+ const types = ref
(['jump', 'iframe']);
+ const type = useLocalStorage('media-player-type', 'jump');
+ const url = useLocalStorage('media-player-url', '');
+
+ return {
+ types,
+ type,
+ url,
+ };
+});
diff --git a/src/views/ab-sidebar.vue b/src/views/ab-sidebar.vue
index 4524760f..715fafcf 100644
--- a/src/views/ab-sidebar.vue
+++ b/src/views/ab-sidebar.vue
@@ -49,6 +49,7 @@ const items = [
icon: Download,
label: 'Downloader',
path: '/downloader',
+ hidden: true,
},
{
id: 5,
diff --git a/src/views/config-player.vue b/src/views/config-player.vue
new file mode 100644
index 00000000..888a07ff
--- /dev/null
+++ b/src/views/config-player.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+