Add direct link to thumbnail
This commit is contained in:
parent
bf6245a505
commit
6dbd002acd
@ -106,6 +106,7 @@ async fn parse_post(json: &serde_json::Value) -> Post {
|
|||||||
stickied: post["data"]["stickied"].as_bool().unwrap_or(false),
|
stickied: post["data"]["stickied"].as_bool().unwrap_or(false),
|
||||||
},
|
},
|
||||||
media,
|
media,
|
||||||
|
domain: val(post, "domain"),
|
||||||
time: OffsetDateTime::from_unix_timestamp(unix_time).format("%b %d %Y %H:%M UTC"),
|
time: OffsetDateTime::from_unix_timestamp(unix_time).format("%b %d %Y %H:%M UTC"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ pub struct Post {
|
|||||||
pub flags: Flags,
|
pub flags: Flags,
|
||||||
pub thumbnail: String,
|
pub thumbnail: String,
|
||||||
pub media: String,
|
pub media: String,
|
||||||
|
pub domain: String,
|
||||||
pub time: String,
|
pub time: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,6 +170,9 @@ pub async fn media(data: &serde_json::Value) -> (String, String) {
|
|||||||
} else if data["post_hint"].as_str().unwrap_or("") == "image" {
|
} else if data["post_hint"].as_str().unwrap_or("") == "image" {
|
||||||
post_type = "image";
|
post_type = "image";
|
||||||
format_url(data["preview"]["images"][0]["source"]["url"].as_str().unwrap_or_default().to_string())
|
format_url(data["preview"]["images"][0]["source"]["url"].as_str().unwrap_or_default().to_string())
|
||||||
|
} else if data["is_self"].as_bool().unwrap_or_default() {
|
||||||
|
post_type = "self";
|
||||||
|
data["permalink"].as_str().unwrap_or_default().to_string()
|
||||||
} else {
|
} else {
|
||||||
post_type = "link";
|
post_type = "link";
|
||||||
data["url"].as_str().unwrap_or_default().to_string()
|
data["url"].as_str().unwrap_or_default().to_string()
|
||||||
@ -240,6 +244,7 @@ pub async fn fetch_posts(path: &str, fallback_title: String) -> Result<(Vec<Post
|
|||||||
post_type,
|
post_type,
|
||||||
thumbnail: format_url(val(post, "thumbnail")),
|
thumbnail: format_url(val(post, "thumbnail")),
|
||||||
media,
|
media,
|
||||||
|
domain: val(post, "domain"),
|
||||||
flair: Flair(
|
flair: Flair(
|
||||||
val(post, "link_flair_text"),
|
val(post, "link_flair_text"),
|
||||||
val(post, "link_flair_background_color"),
|
val(post, "link_flair_background_color"),
|
||||||
|
@ -453,11 +453,35 @@ input[type="submit"]:hover { color: var(--accent); }
|
|||||||
}
|
}
|
||||||
|
|
||||||
.post_thumbnail {
|
.post_thumbnail {
|
||||||
object-fit: cover;
|
|
||||||
width: auto;
|
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
border: 1px solid var(--foreground);
|
border: 1px solid var(--foreground);
|
||||||
max-width: 20%;
|
width: 20%;
|
||||||
|
max-width: 140px;
|
||||||
|
display: grid;
|
||||||
|
overflow: hidden;
|
||||||
|
flex-shrink: 0;
|
||||||
|
background-color: var(--highlighted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.post_thumbnail img {
|
||||||
|
grid-area: 1 / 1 / 2 / 2;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
align-self: center;
|
||||||
|
justify-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post_thumbnail span {
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-align: center;
|
||||||
|
background-color: rgba(0,0,0,0.8);
|
||||||
|
color: white;
|
||||||
|
grid-area: 1 / 1 / 2 / 2;
|
||||||
|
padding: 5px;
|
||||||
|
align-self: end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.post_flair {
|
.post_flair {
|
||||||
@ -634,19 +658,19 @@ input[type="submit"]:hover { color: var(--accent); }
|
|||||||
}
|
}
|
||||||
|
|
||||||
.compact .post_thumbnail {
|
.compact .post_thumbnail {
|
||||||
max-width: 75px;
|
width: 75px;
|
||||||
max-height: 75px;
|
height: 75px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.compact footer {
|
.compact footer {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card .post_right {
|
.card_post .post_right {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card .post:not(.highlighted) .post_media {
|
.card_post:not(.highlighted) .post_media {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
<div id="posts">
|
<div id="posts">
|
||||||
{% for post in posts %}
|
{% for post in posts %}
|
||||||
{% if !(post.flags.nsfw && prefs.hide_nsfw == "on") %}
|
{% if !(post.flags.nsfw && prefs.hide_nsfw == "on") %}
|
||||||
<div class="post {% if post.flags.stickied %}stickied{% endif %}">
|
<div class="post {% if post.flags.stickied %}stickied{% endif %} {% if prefs.layout == "card" && post.post_type == "image" %} card_post {% endif %}">
|
||||||
<div class="post_left">
|
<div class="post_left">
|
||||||
<p class="post_score">{{ post.score }}</p>
|
<p class="post_score">{{ post.score }}</p>
|
||||||
{% if post.flags.nsfw %}<div class="nsfw">NSFW</div>{% endif %}
|
{% if post.flags.nsfw %}<div class="nsfw">NSFW</div>{% endif %}
|
||||||
@ -56,8 +56,10 @@
|
|||||||
<!-- POST MEDIA/THUMBNAIL -->
|
<!-- POST MEDIA/THUMBNAIL -->
|
||||||
{% if prefs.layout == "card" && post.post_type == "image" %}
|
{% if prefs.layout == "card" && post.post_type == "image" %}
|
||||||
<img class="post_media" src="{{ post.media }}"/>
|
<img class="post_media" src="{{ post.media }}"/>
|
||||||
{% else if prefs.layout != "card" %}
|
{% else if post.post_type == "link" %}
|
||||||
<img class="post_thumbnail" src="{{ post.thumbnail }}">
|
<a class="post_thumbnail" href="{{ post.media }}"><img src="{{ post.thumbnail }}"><span>{{ post.domain }}</span></a>
|
||||||
|
{% else if post.post_type != "self" %}
|
||||||
|
<a class="post_thumbnail" href="{{ post.permalink }}"><img src="{{ post.thumbnail }}"><span>{{ post.post_type }}</span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user