diff --git a/src/components/HomeMedia.vue b/src/components/HomeMedia.vue new file mode 100644 index 0000000..87cfc14 --- /dev/null +++ b/src/components/HomeMedia.vue @@ -0,0 +1,27 @@ + + + + diff --git a/src/jfapi.ts b/src/jfapi.ts index 5b57604..417e333 100644 --- a/src/jfapi.ts +++ b/src/jfapi.ts @@ -60,6 +60,12 @@ type Item = { UserData?: UserData } +type ItemList = { + Items: Item[] + StartIndex: number + TotalRecordCount: number +} + type UserData = { UnplayedItemCount: number } @@ -76,7 +82,7 @@ type User = { Views?: View[] } -export type { User, View, Item, ViewList } +export type { User, View, Item, ViewList, ItemList } class JFApi { request(endpoint: Endpoint): Promise { @@ -122,6 +128,12 @@ class JFApi { method: 'GET', }) } + GetItemsInView(userid: string, viewId: string) { + return this.request({ + resource: `http://192.168.0.63:30013/Users/${userid}/Items?SortBy=DateCreated%2CSortName%2CProductionYear&SortOrder=Descending&IncludeItemTypes=Movie&Recursive=true&Fields=PrimaryImageAspectRatio%2CMediaSourceCount&ImageTypeLimit=1&EnableImageTypes=Primary%2CBackdrop%2CBanner%2CThumb&StartIndex=0&ParentId=${viewId}&Limit=100`, + method: 'GET', + }) + } ThumbImageUrl(itemId: string, imgTag: string) { const host = localStorage.getItem('jf_host') === null ? '' : localStorage.getItem('jf_host') return `${host}/Items/${itemId}/Images/Thumb?fillHeight=267&fillWidth=474&quality=96&tag=${imgTag}` diff --git a/src/router/index.ts b/src/router/index.ts index 0eac29c..b1418f3 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,13 +1,25 @@ import { createRouter, createWebHistory } from 'vue-router' -import HomeView from '../views/HomeView.vue' +import BrowseView from '@/views/BrowseView.vue' +import HomeMedia from '@/components/HomeMedia.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', - name: 'home', - component: HomeView, + name: 'browse', + component: BrowseView, + redirect: '/home', + children: [ + { + path: 'home', + component: HomeMedia, + }, + { + path: 'view/:id', + component: HomeMedia, + }, + ], }, { path: '/login', diff --git a/src/views/BrowseView.vue b/src/views/BrowseView.vue new file mode 100644 index 0000000..49971e8 --- /dev/null +++ b/src/views/BrowseView.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index a2919ee..4442851 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -1,7 +1,5 @@ @@ -34,10 +32,7 @@ onBeforeMount(async () => {
{{ view.Name }}
- - - +