Fix #1064 - Add major and minor feed for outbox/feed
This commit is contained in:
parent
4dec1cd695
commit
9a51bf1ebc
@ -39,6 +39,20 @@ add_route(
|
|||||||
match_slash=False
|
match_slash=False
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_route(
|
||||||
|
"mediagoblin.federation.feed_major",
|
||||||
|
"/api/user/<string:username>/feed/major/",
|
||||||
|
"mediagoblin.federation.views:feed_major_endpoint",
|
||||||
|
match_slash=False
|
||||||
|
)
|
||||||
|
|
||||||
|
add_route(
|
||||||
|
"mediagoblin.federation.feed_minor",
|
||||||
|
"/api/user/<string:username>/feed/minor/",
|
||||||
|
"mediagoblin.federation.views:feed_minor_endpoint",
|
||||||
|
match_slash=False
|
||||||
|
)
|
||||||
|
|
||||||
add_route(
|
add_route(
|
||||||
"mediagoblin.federation.user.uploads",
|
"mediagoblin.federation.user.uploads",
|
||||||
"/api/user/<string:username>/uploads/",
|
"/api/user/<string:username>/uploads/",
|
||||||
@ -76,14 +90,14 @@ add_route(
|
|||||||
|
|
||||||
add_route(
|
add_route(
|
||||||
"mediagoblin.federation.inbox_direct_minor",
|
"mediagoblin.federation.inbox_direct_minor",
|
||||||
"/api/user/<string:username>/inbox/direct/minor",
|
"/api/user/<string:username>/inbox/direct/minor/",
|
||||||
"mediagoblin.federation.views:inbox_minor_endpoint",
|
"mediagoblin.federation.views:inbox_minor_endpoint",
|
||||||
match_slash=False
|
match_slash=False
|
||||||
)
|
)
|
||||||
|
|
||||||
add_route(
|
add_route(
|
||||||
"mediagoblin.federation.inbox_direct_major",
|
"mediagoblin.federation.inbox_direct_major",
|
||||||
"/api/user/<string:username>/inbox/direct/major",
|
"/api/user/<string:username>/inbox/direct/major/",
|
||||||
"mediagoblin.federation.views:inbox_major_endpoint",
|
"mediagoblin.federation.views:inbox_major_endpoint",
|
||||||
match_slash=False
|
match_slash=False
|
||||||
)
|
)
|
||||||
|
@ -210,7 +210,7 @@ def inbox_major_endpoint(request):
|
|||||||
|
|
||||||
@oauth_required
|
@oauth_required
|
||||||
@csrf_exempt
|
@csrf_exempt
|
||||||
def feed_endpoint(request):
|
def feed_endpoint(request, outbox=None):
|
||||||
""" Handles the user's outbox - /api/user/<username>/feed """
|
""" Handles the user's outbox - /api/user/<username>/feed """
|
||||||
username = request.matchdict["username"]
|
username = request.matchdict["username"]
|
||||||
requested_user = User.query.filter_by(username=username).first()
|
requested_user = User.query.filter_by(username=username).first()
|
||||||
@ -524,7 +524,10 @@ def feed_endpoint(request):
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Create outbox
|
# Create outbox
|
||||||
outbox = Activity.query.filter_by(actor=request.user.id)
|
if outbox is None:
|
||||||
|
outbox = Activity.query.filter_by(actor=request.user.id)
|
||||||
|
else:
|
||||||
|
outbox = outbox.filter_by(actor=request.user.id)
|
||||||
|
|
||||||
# We want the newest things at the top (issue: #1055)
|
# We want the newest things at the top (issue: #1055)
|
||||||
outbox = outbox.order_by(Activity.published.desc())
|
outbox = outbox.order_by(Activity.published.desc())
|
||||||
@ -549,6 +552,28 @@ def feed_endpoint(request):
|
|||||||
|
|
||||||
return json_response(feed)
|
return json_response(feed)
|
||||||
|
|
||||||
|
@oauth_required
|
||||||
|
def feed_minor_endpoint(request):
|
||||||
|
""" Outbox for minor activities such as updates """
|
||||||
|
# If it's anything but GET pass it along
|
||||||
|
if request.method != "GET":
|
||||||
|
return feed_endpoint(request)
|
||||||
|
|
||||||
|
outbox = Activity.query.filter(
|
||||||
|
(Activity.verb == "update") | (Activity.verb == "delete")
|
||||||
|
)
|
||||||
|
return feed_endpoint(request, outbox=outbox)
|
||||||
|
|
||||||
|
@oauth_required
|
||||||
|
def feed_major_endpoint(request):
|
||||||
|
""" Outbox for all major activities """
|
||||||
|
# If it's anything but a GET pass it along
|
||||||
|
if request.method != "GET":
|
||||||
|
return feed_endpoint(request)
|
||||||
|
|
||||||
|
outbox = Activity.query.filter_by(verb="post")
|
||||||
|
return feed_endpoint(request, outbox=outbox)
|
||||||
|
|
||||||
@oauth_required
|
@oauth_required
|
||||||
def object_endpoint(request):
|
def object_endpoint(request):
|
||||||
""" Lookup for a object type """
|
""" Lookup for a object type """
|
||||||
|
Loading…
x
Reference in New Issue
Block a user