加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 04:54:25 所属栏目:百科 来源:网络整理
导读:Facebook上的一个简单功能是显示朋友的帖子,以及朋友分享的帖子.在共享帖子的情况下,它被标题为“Kelly和4个其他人”共享的XYZ帖子.此外,如果你的几个朋友分享了这个帖子,Facebook汇总了它们,只显示一次帖子,它不会多次显示. Facebook似乎在同一时间线视图中
Facebook上的一个简单功能是显示朋友的帖子,以及朋友分享的帖子.在共享帖子的情况下,它被标题为“Kelly和4个其他人”共享的XYZ帖子.此外,如果你的几个朋友分享了这个帖子,Facebook汇总了它们,只显示一次帖子,它不会多次显示. Facebook似乎在同一时间线视图中显示平面Feed和聚合Feed.

我想要一种方法,用于在用户的时间轴(平面Feed)中显示聚合和平面Feed类型.我有以下Feed设置:

时间线馈送(扁平)

用户提要(平)

每次用户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获取时间轴提要中的活动,然后还获取聚合提要并以某种方式将两者混合在我们的后端上?

解决方法

您可以通过使用单个聚合Feed并调整聚合规则来实现此目的.在你的情况下,你似乎需要的是:

>将同一职位的股份分组在一起
>在单项活动上保留帖子
>小组喜欢同一个帖子

如下所示的聚合规则应该有效(未经过测试):

{% 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 %}

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

如果两个活动的输出相同,则它们将属于同一个聚合活动.

例如:Tom喜欢发布“xyz”的活动,James喜欢发布“xyz”的活动将输出like-xyz,因此将被组合在一起.另一方面,Sam发布的“xyz”活动将输出post-xyz并假设只有一个名为xyz的帖子,它将永远不会与其他活动分组.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读