diff --git a/frontend/src/assets/bluray.webp b/frontend/src/assets/bluray.webp
new file mode 100644
index 0000000..5b239da
Binary files /dev/null and b/frontend/src/assets/bluray.webp differ
diff --git a/frontend/src/components/ReleaseVersionCard.vue b/frontend/src/components/ReleaseVersionCard.vue
index 2011256..ad0a889 100644
--- a/frontend/src/components/ReleaseVersionCard.vue
+++ b/frontend/src/components/ReleaseVersionCard.vue
@@ -22,7 +22,6 @@
{{ displayCodecBadge }}
HDR
{{ displayAudioBadge }}
- 💿
@@ -34,6 +33,12 @@
+
{
);
});
+const isDisc = computed(() => {
+ if (!props.torrent.playable_file) return false;
+ const filename = props.torrent.playable_file.toLowerCase();
+ return filename.endsWith('index.bdmv') || filename.endsWith('.iso');
+});
+
+const showBlurayLogo = computed(() => {
+ if (!isDisc.value) return false;
+ const filename = (props.torrent.playable_file || '').toLowerCase();
+ if (filename.endsWith('index.bdmv')) return true;
+ return hasAnyTag(
+ blurayTagPattern,
+ props.torrent.quality,
+ props.torrent.codec,
+ props.torrent.audio,
+ props.torrent.title,
+ );
+});
+
const displayQualityBadge = computed(() => {
if (!props.torrent.quality || hasDolbyTag(props.torrent.quality)) return null;
- if (blurayTagPattern.test(props.torrent.quality) && !isDisc.value) return null;
+ if (blurayTagPattern.test(props.torrent.quality)) return null;
return props.torrent.quality;
});
@@ -164,12 +189,6 @@ const showHdrBadge = computed(() => {
return !hasHdrTag(props.torrent.quality) && !hasHdrTag(props.torrent.codec) && !hasHdrTag(props.torrent.audio);
});
-const isDisc = computed(() => {
- if (!props.torrent.playable_file) return false;
- const filename = props.torrent.playable_file.toLowerCase();
- return filename.endsWith('index.bdmv') || filename.endsWith('.iso');
-});
-
const isSelectable = computed(() => {
if (props.selectable !== undefined) return props.selectable;
return Boolean(props.torrent.playable_file);
@@ -258,6 +277,7 @@ function handleActivate(event: MouseEvent | KeyboardEvent) {
display: flex;
align-items: stretch;
justify-content: flex-end;
+ gap: 6px;
min-width: 0;
}
@@ -265,6 +285,14 @@ function handleActivate(event: MouseEvent | KeyboardEvent) {
align-self: stretch;
}
+.version-bluray-logo {
+ align-self: center;
+ width: auto;
+ height: 22px;
+ object-fit: contain;
+ filter: drop-shadow(0 0 0.4px rgba(0, 0, 0, 0.5));
+}
+
.version-badges {
display: flex;
flex-wrap: nowrap;
@@ -282,13 +310,6 @@ function handleActivate(event: MouseEvent | KeyboardEvent) {
text-transform: uppercase;
}
-.v-disc {
- display: flex;
- align-items: center;
- font-size: 1.1rem;
- line-height: 1;
-}
-
.v-badge.res {
background: #1d4ed8;
color: #eff6ff;