adjust feed

This commit is contained in:
Your Name 2024-06-18 09:11:06 -04:00 committed by Henri Dickson
parent 3bf583930e
commit e40121f400
6 changed files with 146 additions and 175 deletions

View file

@ -1,87 +1,23 @@
.feed-page {
.feed {
word-break: break-word;
.avatar {
height: calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 4 - 8px);
width: calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 4 - 8px);
.post {
.cover {
img {
height: 100%;
width: 100%;
}
}
> section {
margin-bottom: var(--pico-spacing);
display: grid;
grid-template-columns: auto 1fr;
grid-template-rows: auto;
grid-column-gap: 1em;
grid-row-gap: 0px;
// align-items: center;
// justify-content: left;
.nickname a {
word-break: break-all;
}
.time {
width: max-content;
float: right;
color: var(--pico-muted-color);
opacity: 0.5;
margin-left: 1em;
}
.rating-star {
margin: 0 0.5em;
}
.rating-star,
.rating-star>* {
color: var(--pico-primary);
}
article {
padding: calc(var(--pico-block-spacing-horizontal) / 2);
margin-bottom: var(--pico-block-spacing-horizontal);
>div.item {
column-gap: calc(var(--pico-block-spacing-horizontal) / 2);
max-width:6em;
max-height:12em;
margin:1em;
box-shadow: var(--pico-card-box-shadow);
@media (max-width: 768px) {
grid-template-columns: calc(2.5rem * var(--pico-line-height)) auto
max-width:4em;
max-height:8em;
margin:0.5em 0 0.5em 0.5em;
}
@media (min-width: 1280px) {
max-width:8em;
max-height:16em;
margin:1em 1em 2em 2em;
}
}
footer {
padding: calc(var(--pico-block-spacing-horizontal) / 2);
margin-left: calc(var(--pico-block-spacing-horizontal) * -0.5);
margin-right: calc(var(--pico-block-spacing-horizontal) * -0.5);
margin-top: calc(var(--pico-block-spacing-horizontal)/2);
}
// margin-right: 4px;
}
blockquote {
padding-top: 0;
padding-bottom: 0;
margin: 0;
color: var(--pico-muted-color);
a {
color: var(--pico-muted-color);
}
}
p:last-child {
margin-bottom: 0;
}
.spacing {
margin-bottom: calc(var(--pico-block-spacing-horizontal)/2);
}
}
}

View file

@ -1,4 +1,5 @@
@import '_header.scss';
@import '_feed.scss';
@import '_footer.scss';
@import '_dialog.scss';
@import '_rating.scss';

View file

@ -21,7 +21,7 @@
<script src="{{ cdn_url }}/npm/hyperscript.org@0.9.12"></script>
<link rel="stylesheet"
href="{{ cdn_url }}/npm/@picocss/pico@2/css/pico.min.css" />
<link href="{% sass_src 'scss/neodb.scss' %}"
<link href="{% sass_src 'scss/neodb.scss' %}?ooooodro"
rel="stylesheet"
type="text/css" />
<link href="{{ cdn_url }}/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css"

@ -1 +1 @@
Subproject commit 3f3f1ee9929f9086aecd15f5e023988f26d1ccef
Subproject commit cb53b38b3e8de79233867de3e89459ce820c1e58

View file

@ -9,6 +9,9 @@
{% load duration %}
{% for event in events %}
{% with event.subject_post as post %}
{% if not post %}
<!-- invalid data {{ event.pk }} -->
{% else %}
<section class="activity post">
{% if event.type == "boost" %}
<div class="boosted">
@ -23,15 +26,17 @@
<div style="display:flex;">
<div>
<div class="avatar" style="margin:0.6em 0.6em 0.6em 0;">
<img src="{{ post.author.icon_uri }}" alt="@{{ post.author.handle }}" />
<a href="{{ post.author.url }}">
<img src="{{ post.author.icon_uri }}" alt="@{{ post.author.handle }}">
</a>
</div>
</div>
<div style="flex-grow:1;">
<span class="action">
<span class="timestamp">{{ post.published|naturaldelta }}</span>
{% if post.piece and post.piece.item and post.piece.item.classname != 'tvepisode' %}
{% if post.piece and post.piece.item and post.piece.item.class_name != 'tvepisode' %}
<span>
{% if post.piece.item.classname == 'podcastepisode' %}
{% if post.piece.item.class_name == 'podcastepisode' %}
<a title="{% trans "play" %}"
class="episode"
data-uuid="{{ post.piece.item.uuid }}"
@ -66,7 +71,9 @@
{% endif %}
</span>
<div>{{ post.summary|default:'' }}</div>
<div {% if post.summary or post.sensitive %}class="spoiler" _="on click toggle .revealed on me"{% endif %}>
<div style="display:flex;">
<div style="flex-grow:1"
{% if post.summary or post.sensitive %}class="spoiler" _="on click toggle .revealed on me"{% endif %}>
<div class="attachments">
{% for attachment in post.attachments.all %}
{% if attachment.is_image %}
@ -93,15 +100,24 @@
{{ post.content|bleach:"a,p,span,br,div,img"|default:"" }}
{% endif %}
</div>
<div class="cover">
{% if post.piece %}
{% if post.piece.item %}
<article>{% include "_item_card.html" with item=post.piece.item allow_embed=1 %}</article>
{# <article>{% include "_item_card.html" with item=post.piece.item allow_embed=1 %}</article> #}
<a href="{{ post.piece.item.url }}" title="{{ post.piece.item.title }}">
<img src="{{ post.piece.item.cover_image_url }}"
title="{{ post.piece.item.title }}"
alt="cover">
</a>
{% endif %}
{% endif %}
</div>
</div>
</div>
</div>
<div id="replies_{{ post.pk }}"></div>
</section>
{% endif %}
{% endwith %}
{% if forloop.last %}
<div class="htmx-indicator"

View file

@ -59,10 +59,28 @@ def feed(request):
@require_http_methods(["GET"])
def data(request):
since_id = int(request.GET.get("last", 0))
events = TimelineEvent.objects.filter(
events = (
TimelineEvent.objects.filter(
identity_id=request.user.identity.pk,
type__in=[TimelineEvent.Types.post, TimelineEvent.Types.boost],
).order_by("-id")
)
.order_by("-id")
.select_related(
"subject_post",
"subject_post__author",
"subject_post__author__domain",
"subject_identity",
"subject_identity__domain",
"subject_post_interaction",
"subject_post_interaction__identity",
"subject_post_interaction__identity__domain",
)
.prefetch_related(
"subject_post__attachments",
"subject_post__mentions",
"subject_post__emojis",
)
)
if since_id:
events = events.filter(id__lt=since_id)
return render(request, "feed_events.html", {"events": events})