honor discover exclusions
This commit is contained in:
parent
b855bd2eb7
commit
4fcd18cafa
3 changed files with 36 additions and 16 deletions
|
@ -139,22 +139,33 @@ class DiscoverGenerator(BaseJob):
|
|||
.values_list("pk", flat=True)[:40]
|
||||
)
|
||||
tags = TagManager.popular_tags(days=14)[:40]
|
||||
excluding_identities = Takahe.get_no_discover_identities()
|
||||
post_ids = (
|
||||
set(
|
||||
Takahe.get_popular_posts(
|
||||
28, settings.MIN_MARKS_FOR_DISCOVER
|
||||
).values_list("pk", flat=True)[:20]
|
||||
28, settings.MIN_MARKS_FOR_DISCOVER, excluding_identities
|
||||
).values_list("pk", flat=True)[:5]
|
||||
)
|
||||
| set(
|
||||
Takahe.get_popular_posts(
|
||||
7, settings.MIN_MARKS_FOR_DISCOVER
|
||||
14, settings.MIN_MARKS_FOR_DISCOVER, excluding_identities
|
||||
).values_list("pk", flat=True)[:5]
|
||||
)
|
||||
| set(
|
||||
Takahe.get_popular_posts(
|
||||
7, settings.MIN_MARKS_FOR_DISCOVER, excluding_identities
|
||||
).values_list("pk", flat=True)[:10]
|
||||
)
|
||||
| set(Takahe.get_popular_posts(1, 0).values_list("pk", flat=True)[:3])
|
||||
| set(
|
||||
Takahe.get_popular_posts(1, 0, excluding_identities).values_list(
|
||||
"pk", flat=True
|
||||
)[:3]
|
||||
)
|
||||
| set(
|
||||
Review.objects.filter(visibility=0)
|
||||
.exclude(owner_id__in=excluding_identities)
|
||||
.order_by("-created_time")
|
||||
.values_list("posts", flat=True)[:3]
|
||||
.values_list("posts", flat=True)[:5]
|
||||
)
|
||||
)
|
||||
cache.set("public_gallery", gallery_list, timeout=None)
|
||||
|
@ -163,5 +174,5 @@ class DiscoverGenerator(BaseJob):
|
|||
cache.set("popular_tags", list(tags), timeout=None)
|
||||
cache.set("popular_posts", list(post_ids), timeout=None)
|
||||
logger.info(
|
||||
f"Discover data updated, trends: {len(trends)}, collections: {len(collection_ids)}, tags: {len(tags)}, posts: {len(post_ids)}."
|
||||
f"Discover data updated, excluded: {len(excluding_identities)}, trends: {len(trends)}, collections: {len(collection_ids)}, tags: {len(tags)}, posts: {len(post_ids)}."
|
||||
)
|
||||
|
|
|
@ -166,15 +166,7 @@
|
|||
{% endif %}
|
||||
<section>
|
||||
<article>
|
||||
<details id="section-popular-posts" class="auto-keep-collapse" open>
|
||||
<summary>{% trans 'Popular Posts' %}</summary>
|
||||
<div style="font-size:80%">{% include "posts.html" with posts=popular_posts %}</div>
|
||||
</details>
|
||||
</article>
|
||||
</section>
|
||||
<section>
|
||||
<article>
|
||||
<details id="section-popular-tags" class="auto-keep-collapse" open>
|
||||
<details id="section-popular-tags" class="auto-keep-collapse">
|
||||
<summary>{% trans 'Popular Tags' %}</summary>
|
||||
<div class="tag-list">
|
||||
{% for t in popular_tags %}
|
||||
|
@ -188,6 +180,14 @@
|
|||
</details>
|
||||
</article>
|
||||
</section>
|
||||
<section>
|
||||
<article>
|
||||
<details id="section-popular-posts" class="auto-keep-collapse" open>
|
||||
<summary>{% trans 'Popular Posts' %}</summary>
|
||||
<div style="font-size:80%">{% include "posts.html" with posts=popular_posts %}</div>
|
||||
</details>
|
||||
</article>
|
||||
</section>
|
||||
</aside>
|
||||
{% else %}
|
||||
{% include "_sidebar_anonymous.html" %}
|
||||
|
|
|
@ -911,11 +911,20 @@ class Takahe:
|
|||
)
|
||||
|
||||
@staticmethod
|
||||
def get_popular_posts(days: int = 30, min_interaction: int = 1):
|
||||
def get_no_discover_identities():
|
||||
return list(
|
||||
Identity.objects.filter(discoverable=False).values_list("pk", flat=True)
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def get_popular_posts(
|
||||
days: int = 30, min_interaction: int = 1, exclude_identities: list[int] = []
|
||||
):
|
||||
since = timezone.now() - timedelta(days=days)
|
||||
domains = Takahe.get_neodb_peers() + [settings.SITE_DOMAIN]
|
||||
return (
|
||||
Post.objects.exclude(state__in=["deleted", "deleted_fanned_out"])
|
||||
.exclude(author_id__in=exclude_identities)
|
||||
.filter(
|
||||
author__domain__in=domains,
|
||||
visibility__in=[0, 1, 4],
|
||||
|
|
Loading…
Add table
Reference in a new issue