diff --git a/app/components/AppHeader.vue b/app/components/AppHeader.vue index 366bf60..6c0b854 100644 --- a/app/components/AppHeader.vue +++ b/app/components/AppHeader.vue @@ -43,6 +43,7 @@ const defaultAvatar = 'https://thumbs.dreamstime.com/b/avatar-vietnam-character- const navItems = [ { label: 'Trang chủ', to: '/' }, { label: 'Duyệt phim', to: '/phim' }, + { label: 'Lịch chiếu', to: '/lich-chieu' }, { label: 'Phim bộ', to: '/phim?type=series' }, { label: 'Phim lẻ', to: '/phim?type=single' }, ] diff --git a/app/pages/lich-chieu.vue b/app/pages/lich-chieu.vue new file mode 100644 index 0000000..d36904b --- /dev/null +++ b/app/pages/lich-chieu.vue @@ -0,0 +1,560 @@ + + + + + diff --git a/server/utils/movies.ts b/server/utils/movies.ts index dcc6d97..3db509a 100644 --- a/server/utils/movies.ts +++ b/server/utils/movies.ts @@ -16,6 +16,7 @@ export interface NormalizedMovie { lang?: string type?: string rating?: number + updatedAt?: string categories: string[] countries: string[] } @@ -182,6 +183,7 @@ export function normalizeOphimMovie(movie: any, pathImage = OPHIM_IMAGE): Normal lang: text(movie?.lang), type: text(movie?.type), rating: Number(movie?.tmdb?.vote_average || movie?.imdb?.vote_average) || undefined, + updatedAt: text(movie?.modified?.time || movie?.created), categories: toArray(movie?.category).map((item: any) => text(item?.name)).filter(Boolean), countries: toArray(movie?.country).map((item: any) => text(item?.name)).filter(Boolean), } @@ -203,6 +205,7 @@ export function normalizeKkphimMovie(movie: any, pathImage = KKPHIM_IMAGE): Norm lang: text(movie?.lang), type: text(movie?.type), rating: Number(movie?.tmdb?.vote_average || movie?.imdb?.vote_average) || undefined, + updatedAt: text(movie?.modified?.time || movie?.created), categories: toArray(movie?.category).map((item: any) => text(item?.name)).filter(Boolean), countries: toArray(movie?.country).map((item: any) => text(item?.name)).filter(Boolean), } @@ -226,6 +229,7 @@ function normalizeNguoncMovie(movie: any): NormalizedMovie { lang: text(movie?.language || movie?.lang), type: text(movie?.type), rating: Number(movie?.rating) || undefined, + updatedAt: text(movie?.modified || movie?.created), categories: toArray(movie?.category || movie?.categories).map((item: any) => text(item?.name ?? item)).filter(Boolean), countries: toArray(movie?.country || movie?.countries).map((item: any) => text(item?.name ?? item)).filter(Boolean), }