本文整理汇总了Python中data.DataApi.DataApi.getActivities方法的典型用法代码示例。如果您正苦于以下问题:Python DataApi.getActivities方法的具体用法?Python DataApi.getActivities怎么用?Python DataApi.getActivities使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类data.DataApi.DataApi
的用法示例。
在下文中一共展示了DataApi.getActivities方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: getUserFeed
# 需要导入模块: from data.DataApi import DataApi [as 别名]
# 或者: from data.DataApi.DataApi import getActivities [as 别名]
def getUserFeed(user):
# Get set of all userIds to fetch activities from
# This includes following ids, and own userId
follows = user.getFollows()
userIds = set()
for f in follows.followList():
userIds.add(f.userId())
userIds.add(user.id())
# Fetch activities
activities = DataApi.getActivities(userIds)
# Fetch all objects and create dictonary objects now. Might as well
# here for now since we don't need anything else yet.
# TODO: probably will need to change later
followIds = set([a.objectId for a in activities if a.action == Activity.Action.FOLLOW])
commentLikeIds = set([a.objectId for a in activities if a.action == Activity.Action.LIKE_VISION_COMMENT])
visionLikeIds = set([a.objectId for a in activities if a.action == Activity.Action.LIKE_VISION])
followModels = DataApi.getFollowsById(followIds)
commentLikeModels = DataApi.getVisionCommentLikesById(commentLikeIds)
visionLikeModels = DataApi.getVisionLikesById(visionLikeIds)
idToFollow = dict([(f.id, f) for f in followModels])
idToCommentLike = dict([(l.id, l) for l in commentLikeModels])
idToVisionLike = dict([(l.id, l) for l in visionLikeModels])
commentIds = set([a.objectId for a in activities if a.action == Activity.Action.COMMENT_ON_VISION])
for l in commentLikeModels:
commentIds.add(l.visionCommentId)
commentModels = DataApi.getVisionCommentsById(commentIds)
idToComment = dict([(c.id, c) for c in commentModels])
visionIds = set([a.objectId for a in activities if a.action == Activity.Action.ADD_VISION])
for c in commentModels:
visionIds.add(c.visionId)
for l in visionLikeModels:
visionIds.add(l.visionId)
unfilteredVisionsModels = DataApi.getVisionsById(visionIds, allowRemovedVisions=True)
userIds = set([a.subjectId for a in activities if a.action == Activity.Action.JOIN_SITE])
for c in commentModels:
userIds.add(c.authorId)
for l in visionLikeModels:
userIds.add(l.userId)
for l in commentLikeModels:
userIds.add(l.userId)
for f in followModels:
userIds.add(f.followerId)
userIds.add(f.userId)
userModels = DataApi.getUsersFromIds(userIds)
idToUser = dict([(u.id, u) for u in userModels])
# At this point we have all the visions models for the activities
# We need to remove the visions that we shouldn't allow this user to
# see
filteredVisionModels = []
for vision in unfilteredVisionsModels:
# vision should not be removed, and be either public, or a
# private vision you own
if vision.removed == False and (vision.privacy == VisionPrivacy.PUBLIC or vision.userId == user.id()):
filteredVisionModels.append(vision)
visionList = VisionList(filteredVisionModels)
# Now we have a list of all
visionObjs = visionList.toDictionary(
options=[
Vision.Options.PICTURE,
Vision.Options.USER,
Vision.Options.PARENT_USER,
Vision.Options.COMMENTS,
Vision.Options.COMMENT_PICTURES,
Vision.Options.LIKES,
Vision.Options.COMMENT_LIKES,
],
user=user,
)
idToVisionObj = dict([(v[Vision.Key.ID], v) for v in visionObjs])
# Now build activities!
feedObjList = []
visionIdToFeedObj = dict()
for activity in activities:
# JOIN SITE
if activity.action == Activity.Action.JOIN_SITE:
# Already have enough info to render this activity
newUser = User(idToUser[activity.subjectId])
obj = dict()
obj[Activity.Key.TYPE] = Activity.FeedItem.JOIN
obj[Activity.Key.USER] = newUser.toDictionary()
obj[Activity.Key.CREATED] = activity.created.isoformat()
feedObjList.append(obj)
# FOLLOW
elif activity.action == Activity.Action.FOLLOW:
follow = idToFollow[activity.objectId]
follower = User(idToUser[follow.followerId])
following = User(idToUser[follow.userId])
#.........这里部分代码省略.........