Fix #1055 - API feed should be sorted in order of newest first

This commit is contained in:
Jessica Tallon 2014-12-11 16:35:10 +00:00
parent 4a09d5956a
commit 058964bce7

View File

@ -436,38 +436,32 @@ def feed_endpoint(request):
status=501 status=501
) )
feed_url = request.urlgen(
"mediagoblin.federation.feed",
username=request.user.username,
qualified=True
)
feed = { feed = {
"displayName": "Activities by {user}@{host}".format( "displayName": "Activities by {user}@{host}".format(
user=request.user.username, user=request.user.username,
host=request.host host=request.host
), ),
"objectTypes": ["activity"], "objectTypes": ["activity"],
"url": feed_url, "url": request.base_url,
"links": { "links": {"self": {"href": request.url}},
"first": {
"href": feed_url,
},
"self": {
"href": request.url,
},
"prev": {
"href": feed_url,
},
"next": {
"href": feed_url,
}
},
"author": request.user.serialize(request), "author": request.user.serialize(request),
"items": [], "items": [],
} }
for activity in Activity.query.filter_by(actor=request.user.id): # Create outbox
outbox = Activity.query.filter_by(actor=request.user.id)
# We want the newest things at the top (issue: #1055)
outbox = outbox.order_by(Activity.published.desc())
# Limit by the "count" (default: 20)
outbox = outbox.limit(request.args.get("count", 20))
# Offset (default: no offset - first <count> result)
outbox = outbox.offset(request.args.get("offset", 0))
# Build feed.
for activity in outbox:
try: try:
feed["items"].append(activity.serialize(request)) feed["items"].append(activity.serialize(request))
except AttributeError: except AttributeError: