gpt4 book ai didi

getstream-io - 如何使用聚合和平面类型构建新闻提要?

转载 作者:行者123 更新时间:2023-12-04 18:03:12 26 4
gpt4 key购买 nike

Facebook 上的一个简单功能是显示您 friend 的帖子,以及您的 friend 分享的帖子。在共享帖子的情况下,它的标题为“Kelly 和 4 个其他人”共享的 XYZ 帖子。此外,如果您的多个 friend 分享了该帖子,Facebook 会将他们汇总并只向您显示该帖子一次,不会显示多次。 Facebook 似乎在同一时间线 View 中显示平面提要和聚合提要。

我想要一种方式让提要在用户的时间线(平面提要)中显示聚合和平面提要类型。我有以下提要设置:

时间线提要(平面)

用户馈送(平面)

每次用户 A 关注用户 B 时,我都会调用 getstream 来更新用户 A 的时间线提要以关注用户 B 的用户提要。

除了上述内容之外,我还想做一个向用户展示的示例时间线:

Flat Post 1(来自关注用户A)

Flat Post 2(来自以下用户 B)

聚合帖子 1(您关注的 4 个人分享了一个帖子 X)

Flat Post 3(来自关注用户A)

Flat Post 4(来自以下用户 C)

聚合帖子 2(您关注的 3 个人在帖子 Y 中点赞)

现在似乎这样做的方法是我必须从 getstream 获取时间线提要中的事件,然后还获取一个聚合提要并以某种方式在我们的后端混合两者?

最佳答案

您可以通过使用单个聚合提要并调整聚合规则来实现这一点。在您的情况下,您似乎需要的是:

  • 将相同帖子的共享组合在一起
  • 保持单例事件的帖子
  • 将相同帖子的点赞组合在一起

  • 像下面这样的聚合规则应该可以工作(未测试):
    {% if verb.infinitive == 'like' %}
    "likes"-{{ object }}
    {% elif verb.infinitive == 'share' %}
    "share"-{{ object }}
    {% elif verb.infinitive == 'post' %}
    "post"-{{ object }}
    {% else %}
    {{ actor }}-{{ verb.infinitive }}-{{ time.strftime('%H') }}
    {% endif %}

    快速解释这项工作是如何到期的。聚合规则用于确定如何将事件分组在一起。您可以将它们视为以事件作为参数执行的函数。实际上,聚合规则类似于输出字符串的 Jinja2 模板。

    如果两个事件的输出相同,则它们将属于同一个聚合事件。

    例如:事件 Tom likes post "xyz"James likes post "xyz"都将输出 likes-xyz因此将被组合在一起。另一方面,事件 Sam posts "xyz"将输出 post-xyz并假设只有一篇名为 xyz 的帖子,它永远不会与其他事件分组。

    我的建议是将一些示例数据发送到提要并使用 Stream 仪表板中提供的预览功能调整您的聚合规则。

    关于getstream-io - 如何使用聚合和平面类型构建新闻提要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38923427/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com