diff --git a/bun.lockb b/bun.lockb index b401fec..7bba183 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/index.html b/index.html index 54d1d57..b42436a 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ Vite App diff --git a/package.json b/package.json index f3929ca..4ef70ef 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,8 @@ "@fortawesome/free-solid-svg-icons": "^6.7.1", "@fortawesome/vue-fontawesome": "^3.0.8", "@jellyfin/sdk": "^0.11.0", + "@vueuse/components": "^12.0.0", + "hls.js": "^1.5.17", "pinia": "^2.2.6", "vue": "^3.5.13", "vue-router": "^4.4.5" diff --git a/src/App.vue b/src/App.vue index 7d758fb..43967c3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,6 +2,7 @@ import { RouterLink, RouterView } from 'vue-router' import { ref } from 'vue' import jfapi from './jfapi' +import { OnClickOutside } from '@vueuse/components' const menuOpen = ref(false) const logout = () => { @@ -14,18 +15,27 @@ const logout = () => { } @@ -40,8 +50,8 @@ const logout = () => { .menu-toggle { position: absolute; - top: 30px; - left: 30px; + top: 20px; + left: 20px; } .menu-toggle:hover { cursor: pointer; diff --git a/src/components/EpisodeThumb.vue b/src/components/EpisodeThumb.vue new file mode 100644 index 0000000..28ce588 --- /dev/null +++ b/src/components/EpisodeThumb.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/components/HomeMedia.vue b/src/components/HomeMedia.vue index 87cfc14..8338345 100644 --- a/src/components/HomeMedia.vue +++ b/src/components/HomeMedia.vue @@ -3,25 +3,21 @@ import type { View } from '@/jfapi' import NextUp from './NextUp.vue' import LatestMedia from './LatestMedia.vue' import { onBeforeMount, ref } from 'vue' - -// const props = defineProps<{ -// views: View[] -// }>() +import jfapi from '@/jfapi' const views = ref() const viewstring = ref('') views.value = undefined onBeforeMount(() => { viewstring.value = localStorage.getItem('jf_views') - views.value = JSON.parse(viewstring.value ? viewstring.value : '') + views.value = JSON.parse(viewstring.value) }) -console.log('HomeMedia =>', views.value) diff --git a/src/components/LatestMedia.vue b/src/components/LatestMedia.vue index 6e88be5..4ee3f6c 100644 --- a/src/components/LatestMedia.vue +++ b/src/components/LatestMedia.vue @@ -3,7 +3,7 @@ import jfapi from '@/jfapi' import MediaScroller from './MediaScroller.vue' import type { FeedItem } from '@/feed' import type { View } from '@/jfapi' -import { getDisplayDuration, getImageLink } from './utils' +import { getDisplayDuration, getImageLink } from '../utils' const props = defineProps<{ view: View @@ -17,29 +17,22 @@ const Items = async (): Promise => { if (data !== null) { console.log(data) for (const item of data) { - const summary = '' if (userid === null) { window.location.href = '/login' } - // const fullitem = await jfapi.GetItem(userid, item.Id) - // if (fullitem === null) { - // continue - // } else { - // summary = fullitem.Overview - // } feed.push({ title: item.SeriesName || item.Name, subtext: item.SeriesName ? `S${item.ParentIndexNumber}:E${item.IndexNumber} - ${item.Name}` : String(item.ProductionYear), image: getImageLink(item), - summary: summary, - // infoSubtext: item.SeriesName - // ? `S${item.ParentIndexNumber}:E${item.IndexNumber} - ${item.Name}` - // : fullitem.OriginalTitle != item.Name - // ? fullitem.OriginalTitle - // : '', - infoSubtext: '', + summary: item.Overview, + infoSubtext: + item.Type === 'Episode' + ? `S${item.ParentIndexNumber}:E${item.IndexNumber} - ${item.Name}` + : item.OriginalTitle != item.Name + ? item.OriginalTitle + : '', imdbRating: String(item.CommunityRating), runtime: getDisplayDuration(item.RunTimeTicks), date: String(item.ProductionYear), @@ -49,6 +42,7 @@ const Items = async (): Promise => { ? String(item.UserData.UnplayedItemCount) : '', itemId: item.Id, + type: item.Type, }) } console.log('LatestMedia.vue =>', feed) diff --git a/src/components/MediaGrid.vue b/src/components/MediaGrid.vue index 7d8ef82..9716f3a 100644 --- a/src/components/MediaGrid.vue +++ b/src/components/MediaGrid.vue @@ -1,25 +1,32 @@ diff --git a/src/views/ItemView.vue b/src/views/ItemView.vue index 1472dcd..043428f 100644 --- a/src/views/ItemView.vue +++ b/src/views/ItemView.vue @@ -1,8 +1,9 @@ + + + +