diff --git a/packages/frontend/src/lib/i18n/locales/en.ts b/packages/frontend/src/lib/i18n/locales/en.ts
index 18c9e3f..356d0ee 100644
--- a/packages/frontend/src/lib/i18n/locales/en.ts
+++ b/packages/frontend/src/lib/i18n/locales/en.ts
@@ -274,6 +274,8 @@ export default {
trending: "Trending",
recent: "Most Recent",
popular: "Most Liked",
+ most_liked: "Most Liked",
+ most_played: "Most Played",
duration: "By Duration",
name: "A-Z",
},
diff --git a/packages/frontend/src/routes/models/[slug]/+page.svelte b/packages/frontend/src/routes/models/[slug]/+page.svelte
index 2c1505e..3c8df20 100644
--- a/packages/frontend/src/routes/models/[slug]/+page.svelte
+++ b/packages/frontend/src/routes/models/[slug]/+page.svelte
@@ -27,6 +27,14 @@ let images = $derived(
thumbnail: getAssetUrl(p.id, "thumbnail"),
})),
);
+
+// Calculate total likes and plays from all videos
+let totalLikes = $derived(
+ data.videos.reduce((sum, video) => sum + (video.likes_count || 0), 0)
+);
+let totalPlays = $derived(
+ data.videos.reduce((sum, video) => sum + (video.plays_count || 0), 0)
+);
{data.commentsCount}
@@ -267,15 +269,18 @@ let images = $derived(
>
{video.title}
-
+
+
+ {video.likes_count || 0}
+
+
{/each}
diff --git a/packages/frontend/src/routes/videos/+page.svelte b/packages/frontend/src/routes/videos/+page.svelte
index e2d27ed..ad55264 100644
--- a/packages/frontend/src/routes/videos/+page.svelte
+++ b/packages/frontend/src/routes/videos/+page.svelte
@@ -17,7 +17,7 @@ import { formatVideoDuration } from "$lib/utils";
const timeAgo = new TimeAgo("en");
let searchQuery = $state("");
-let sortBy = $state("trending");
+let sortBy = $state("recent");
let categoryFilter = $state("all");
let durationFilter = $state("all");
@@ -42,20 +42,14 @@ const filteredVideos = $derived(() => {
return matchesSearch && matchesCategory && matchesDuration;
})
.sort((a, b) => {
- // if (sortBy === "trending")
- // return (
- // parseInt(b.views.replace(/[^\d]/g, "")) -
- // parseInt(a.views.replace(/[^\d]/g, ""))
- // );
if (sortBy === "recent")
return (
new Date(b.upload_date).getTime() - new Date(a.upload_date).getTime()
);
- // if (sortBy === "popular")
- // return (
- // parseInt(b.likes.replace(/[^\d]/g, "")) -
- // parseInt(a.likes.replace(/[^\d]/g, ""))
- // );
+ if (sortBy === "most_liked")
+ return (b.likes_count || 0) - (a.likes_count || 0);
+ if (sortBy === "most_played")
+ return (b.plays_count || 0) - (a.plays_count || 0);
if (sortBy === "duration") return b.movie.duration - a.movie.duration;
return a.title.localeCompare(b.title);
});
@@ -175,23 +169,23 @@ const filteredVideos = $derived(() => {
- {sortBy === 'trending'
- ? $_('videos.sort.trending')
- : sortBy === 'recent'
- ? $_('videos.sort.recent')
- : sortBy === 'popular'
- ? $_('videos.sort.popular')
+ {sortBy === 'recent'
+ ? $_('videos.sort.recent')
+ : sortBy === 'most_liked'
+ ? $_('videos.sort.most_liked')
+ : sortBy === 'most_played'
+ ? $_('videos.sort.most_played')
: sortBy === 'duration'
? $_('videos.sort.duration')
: $_('videos.sort.name')}
- {$_('videos.sort.trending')}
{$_('videos.sort.recent')}
- {$_('videos.sort.popular')}{$_('videos.sort.most_liked')}
+ {$_('videos.sort.most_played')}
{$_('videos.sort.duration')}