2021-06-16 19:14:46 +00:00
|
|
|
<template>
|
2021-06-28 19:45:03 +00:00
|
|
|
<div class="uk-text-secondary" :style="[{ background: backgroundColor }]">
|
2021-06-16 19:14:46 +00:00
|
|
|
<router-link class="uk-text-emphasis" v-bind:to="video.url">
|
2021-08-26 13:44:19 +00:00
|
|
|
<img
|
|
|
|
:height="height"
|
|
|
|
:width="width"
|
|
|
|
style="width: 100%"
|
|
|
|
v-bind:src="video.thumbnail"
|
2021-09-21 21:58:25 +00:00
|
|
|
alt=""
|
2021-08-26 13:44:19 +00:00
|
|
|
loading="lazy"
|
|
|
|
/>
|
2021-07-21 10:15:07 +00:00
|
|
|
<div class="uk-position-relative">
|
2021-07-21 12:32:17 +00:00
|
|
|
<span
|
2021-07-21 10:15:07 +00:00
|
|
|
v-if="video.duration"
|
2021-07-21 12:32:17 +00:00
|
|
|
class="uk-label uk-border-rounded uk-position-absolute video-duration"
|
2021-07-21 10:15:07 +00:00
|
|
|
style="bottom: 5px; right: 5px; background: rgba(0, 0, 0, .75); color: white; padding: 0 5px;"
|
2021-07-21 12:32:17 +00:00
|
|
|
>{{ timeFormat(video.duration) }}</span
|
|
|
|
>
|
2021-08-22 10:27:09 +00:00
|
|
|
<span
|
|
|
|
v-if="video.watched"
|
|
|
|
class="uk-label uk-border-rounded uk-position-absolute video-duration"
|
|
|
|
style="bottom: 5px; left: 5px; background: rgba(0, 0, 0, .75); color: white; padding: 0 5px;"
|
2021-09-05 13:08:26 +00:00
|
|
|
>{{ $t("video.watched") }}</span
|
2021-08-22 10:27:09 +00:00
|
|
|
>
|
2021-07-21 10:15:07 +00:00
|
|
|
</div>
|
2021-09-02 10:28:32 +00:00
|
|
|
|
|
|
|
<div>
|
2021-09-12 17:02:59 +00:00
|
|
|
<p style="padding-top: 0.5rem; margin-bottom: 0.5rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;" :title="video.title">{{ video.title }}</p>
|
2021-09-02 10:28:32 +00:00
|
|
|
</div>
|
2021-06-16 19:14:46 +00:00
|
|
|
</router-link>
|
|
|
|
|
2021-09-02 10:28:32 +00:00
|
|
|
<div class="uk-align-right" style="margin-left: 0; margin-bottom: 0; display: inline-block; width: 10%">
|
2021-09-21 21:58:25 +00:00
|
|
|
<router-link :to="video.url + '&listen=1'" :aria-label="'listen to '+video.title" :title="'listen to '+video.title">
|
2021-09-02 10:28:32 +00:00
|
|
|
<font-awesome-icon icon="headphones"></font-awesome-icon>
|
|
|
|
</router-link>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div v-if="video.uploaderUrl && video.uploaderName && !hideChannel" style="display: flex; flex-flow: row; height: 15%">
|
|
|
|
<router-link class="uk-link-muted" :to="video.uploaderUrl">
|
2021-09-21 21:58:25 +00:00
|
|
|
<img v-if="video.uploaderAvatar" :src="video.uploaderAvatar" loading="lazy" :alt="video.uploaderName" class="uk-border-circle" style="margin-right: 0.5rem; margin-top:0.5rem; width: 32px; height: 32px;" />
|
2021-09-02 10:28:32 +00:00
|
|
|
</router-link>
|
|
|
|
|
|
|
|
<div>
|
2021-06-16 19:14:46 +00:00
|
|
|
<router-link class="uk-link-muted" :to="video.uploaderUrl">
|
2021-08-17 17:30:36 +00:00
|
|
|
{{ video.uploaderName }} <font-awesome-icon
|
|
|
|
v-if="video.uploaderVerified"
|
|
|
|
icon="check"
|
|
|
|
></font-awesome-icon>
|
2021-06-16 19:14:46 +00:00
|
|
|
</router-link>
|
|
|
|
|
|
|
|
<br />
|
2021-09-02 10:28:32 +00:00
|
|
|
|
|
|
|
<b v-if="video.views >= 0 || video.uploadedDate" class="uk-text-small">
|
|
|
|
<span v-if="video.views >= 0">
|
|
|
|
<font-awesome-icon icon="eye"></font-awesome-icon>
|
|
|
|
{{ numberFormat(video.views) }} •
|
|
|
|
</span>
|
|
|
|
<span v-if="video.uploadedDate">
|
|
|
|
{{ video.uploadedDate }}
|
|
|
|
</span>
|
|
|
|
<span v-if="video.uploaded">
|
|
|
|
{{ timeAgo(video.uploaded) }}
|
|
|
|
</span>
|
|
|
|
</b>
|
2021-06-16 19:14:46 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
export default {
|
|
|
|
props: {
|
|
|
|
video: Object,
|
|
|
|
height: String,
|
|
|
|
width: String,
|
|
|
|
hideChannel: Boolean,
|
|
|
|
},
|
|
|
|
};
|
2021-07-21 12:32:17 +00:00
|
|
|
</script>
|