Change 'federation' name to 'api' which is more suitable
This commit is contained in:
parent
4aaa7fac14
commit
4fd520364f
@ -18,134 +18,127 @@ from mediagoblin.tools.routing import add_route
|
||||
|
||||
# Add user profile
|
||||
add_route(
|
||||
"mediagoblin.federation.user",
|
||||
"media.api.user",
|
||||
"/api/user/<string:username>/",
|
||||
"mediagoblin.federation.views:user_endpoint",
|
||||
"mediagoblin.api.views:user_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.user.profile",
|
||||
"mediagoblin.api.user.profile",
|
||||
"/api/user/<string:username>/profile/",
|
||||
"mediagoblin.federation.views:profile_endpoint",
|
||||
"mediagoblin.api.views:profile_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
# Inbox and Outbox (feed)
|
||||
add_route(
|
||||
"mediagoblin.federation.feed",
|
||||
"mediagoblin.api.feed",
|
||||
"/api/user/<string:username>/feed/",
|
||||
"mediagoblin.federation.views:feed_endpoint",
|
||||
"mediagoblin.api.views:feed_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.feed_major",
|
||||
"mediagoblin.api.feed_major",
|
||||
"/api/user/<string:username>/feed/major/",
|
||||
"mediagoblin.federation.views:feed_major_endpoint",
|
||||
"mediagoblin.api.views:feed_major_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.feed_minor",
|
||||
"mediagoblin.api.feed_minor",
|
||||
"/api/user/<string:username>/feed/minor/",
|
||||
"mediagoblin.federation.views:feed_minor_endpoint",
|
||||
"mediagoblin.api.views:feed_minor_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.user.uploads",
|
||||
"mediagoblin.api.user.uploads",
|
||||
"/api/user/<string:username>/uploads/",
|
||||
"mediagoblin.federation.views:uploads_endpoint",
|
||||
"mediagoblin.api.views:uploads_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.inbox",
|
||||
"mediagoblin.api.inbox",
|
||||
"/api/user/<string:username>/inbox/",
|
||||
"mediagoblin.federation.views:inbox_endpoint",
|
||||
"mediagoblin.api.views:inbox_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.inbox_minor",
|
||||
"mediagoblin.api.inbox_minor",
|
||||
"/api/user/<string:username>/inbox/minor/",
|
||||
"mediagoblin.federation.views:inbox_minor_endpoint",
|
||||
"mediagoblin.api.views:inbox_minor_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.inbox_major",
|
||||
"mediagoblin.api.inbox_major",
|
||||
"/api/user/<string:username>/inbox/major/",
|
||||
"mediagoblin.federation.views:inbox_major_endpoint",
|
||||
"mediagoblin.api.views:inbox_major_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.inbox_direct",
|
||||
"mediagoblin.api.inbox_direct",
|
||||
"/api/user/<string:username>/inbox/direct/",
|
||||
"mediagoblin.federation.views:inbox_endpoint",
|
||||
"mediagoblin.api.views:inbox_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.inbox_direct_minor",
|
||||
"mediagoblin.api.inbox_direct_minor",
|
||||
"/api/user/<string:username>/inbox/direct/minor/",
|
||||
"mediagoblin.federation.views:inbox_minor_endpoint",
|
||||
"mediagoblin.api.views:inbox_minor_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.inbox_direct_major",
|
||||
"mediagoblin.api.inbox_direct_major",
|
||||
"/api/user/<string:username>/inbox/direct/major/",
|
||||
"mediagoblin.federation.views:inbox_major_endpoint",
|
||||
"mediagoblin.api.views:inbox_major_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
# object endpoints
|
||||
add_route(
|
||||
"mediagoblin.federation.object",
|
||||
"mediagoblin.api.object",
|
||||
"/api/<string:object_type>/<string:id>/",
|
||||
"mediagoblin.federation.views:object_endpoint",
|
||||
"mediagoblin.api.views:object_endpoint",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.object.comments",
|
||||
"mediagoblin.api.object.comments",
|
||||
"/api/<string:object_type>/<string:id>/comments/",
|
||||
"mediagoblin.federation.views:object_comments",
|
||||
"mediagoblin.api.views:object_comments",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.webfinger.well-known.host-meta",
|
||||
"/.well-known/host-meta",
|
||||
"mediagoblin.federation.views:host_meta"
|
||||
"mediagoblin.api.views:host_meta"
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.webfinger.well-known.host-meta.json",
|
||||
"/.well-known/host-meta.json",
|
||||
"mediagoblin.federation.views:host_meta"
|
||||
"mediagoblin.api.views:host_meta"
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.webfinger.well-known.webfinger",
|
||||
"/.well-known/webfinger/",
|
||||
"mediagoblin.federation.views:lrdd_lookup",
|
||||
"mediagoblin.api.views:lrdd_lookup",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.webfinger.whoami",
|
||||
"/api/whoami/",
|
||||
"mediagoblin.federation.views:whoami",
|
||||
match_slash=False
|
||||
)
|
||||
|
||||
add_route(
|
||||
"mediagoblin.federation.activity_view",
|
||||
"/<string:username>/activity/<string:id>/",
|
||||
"mediagoblin.federation.views:activity_view",
|
||||
"mediagoblin.api.views:whoami",
|
||||
match_slash=False
|
||||
)
|
@ -21,7 +21,7 @@ import mimetypes
|
||||
from werkzeug.datastructures import FileStorage
|
||||
|
||||
from mediagoblin.decorators import oauth_required, require_active_login
|
||||
from mediagoblin.federation.decorators import user_has_privilege
|
||||
from mediagoblin.api.decorators import user_has_privilege
|
||||
from mediagoblin.db.models import User, MediaEntry, MediaComment, Activity
|
||||
from mediagoblin.tools.federation import create_activity, create_generator
|
||||
from mediagoblin.tools.routing import extract_url_arguments
|
||||
@ -641,7 +641,7 @@ def object_comments(request):
|
||||
"totalItems": 0,
|
||||
"items": [],
|
||||
"url": request.urlgen(
|
||||
"mediagoblin.federation.object.comments",
|
||||
"mediagoblin.api.object.comments",
|
||||
object_type=media.object_type,
|
||||
id=media.id,
|
||||
qualified=True
|
||||
@ -721,7 +721,7 @@ def host_meta(request):
|
||||
# provide XML+XRD
|
||||
return render_to_response(
|
||||
request,
|
||||
"mediagoblin/federation/host-meta.xml",
|
||||
"mediagoblin/api/host-meta.xml",
|
||||
{"links": links},
|
||||
mimetype="application/xrd+xml"
|
||||
)
|
||||
@ -762,7 +762,7 @@ def lrdd_lookup(request):
|
||||
{
|
||||
"rel": "self",
|
||||
"href": request.urlgen(
|
||||
"mediagoblin.federation.user",
|
||||
"mediagoblin.api.user",
|
||||
username=user.username,
|
||||
qualified=True
|
||||
)
|
||||
@ -770,7 +770,7 @@ def lrdd_lookup(request):
|
||||
{
|
||||
"rel": "activity-outbox",
|
||||
"href": request.urlgen(
|
||||
"mediagoblin.federation.feed",
|
||||
"mediagoblin.api.feed",
|
||||
username=user.username,
|
||||
qualified=True
|
||||
)
|
||||
@ -786,40 +786,11 @@ def whoami(request):
|
||||
return json_error("Not logged in.", status=401)
|
||||
|
||||
profile = request.urlgen(
|
||||
"mediagoblin.federation.user.profile",
|
||||
"mediagoblin.api.user.profile",
|
||||
username=request.user.username,
|
||||
qualified=True
|
||||
)
|
||||
|
||||
return redirect(request, location=profile)
|
||||
|
||||
@require_active_login
|
||||
def activity_view(request):
|
||||
""" /<username>/activity/<id> - Display activity
|
||||
|
||||
This should display a HTML presentation of the activity
|
||||
this is NOT an API endpoint.
|
||||
"""
|
||||
# Get the user object.
|
||||
username = request.matchdict["username"]
|
||||
user = User.query.filter_by(username=username).first()
|
||||
|
||||
activity_id = request.matchdict["id"]
|
||||
|
||||
if request.user is None:
|
||||
return render_404(request)
|
||||
|
||||
activity = Activity.query.filter_by(
|
||||
id=activity_id,
|
||||
author=user.id
|
||||
).first()
|
||||
if activity is None:
|
||||
return render_404(request)
|
||||
|
||||
return render_to_response(
|
||||
request,
|
||||
"mediagoblin/federation/activity.html",
|
||||
{"activity": activity}
|
||||
)
|
||||
|
||||
|
@ -388,7 +388,7 @@ class ActivityMixin(object):
|
||||
|
||||
def get_url(self, request):
|
||||
return request.urlgen(
|
||||
"mediagoblin.federation.activity_view",
|
||||
"mediagoblin.user_pages.activity_view",
|
||||
username=self.get_actor.username,
|
||||
id=self.id,
|
||||
qualified=True
|
||||
@ -473,7 +473,7 @@ class ActivityMixin(object):
|
||||
|
||||
def serialize(self, request):
|
||||
href = request.urlgen(
|
||||
"mediagoblin.federation.object",
|
||||
"mediagoblin.api.object",
|
||||
object_type=self.object_type,
|
||||
id=self.id,
|
||||
qualified=True
|
||||
|
@ -228,21 +228,21 @@ class User(Base, UserMixin):
|
||||
"links": {
|
||||
"self": {
|
||||
"href": request.urlgen(
|
||||
"mediagoblin.federation.user.profile",
|
||||
"mediagoblin.api.user.profile",
|
||||
username=self.username,
|
||||
qualified=True
|
||||
),
|
||||
},
|
||||
"activity-inbox": {
|
||||
"href": request.urlgen(
|
||||
"mediagoblin.federation.inbox",
|
||||
"mediagoblin.api.inbox",
|
||||
username=self.username,
|
||||
qualified=True
|
||||
)
|
||||
},
|
||||
"activity-outbox": {
|
||||
"href": request.urlgen(
|
||||
"mediagoblin.federation.feed",
|
||||
"mediagoblin.api.feed",
|
||||
username=self.username,
|
||||
qualified=True
|
||||
)
|
||||
@ -532,7 +532,7 @@ class MediaEntry(Base, MediaEntryMixin):
|
||||
def serialize(self, request, show_comments=True):
|
||||
""" Unserialize MediaEntry to object """
|
||||
href = request.urlgen(
|
||||
"mediagoblin.federation.object",
|
||||
"mediagoblin.api.object",
|
||||
object_type=self.object_type,
|
||||
id=self.id,
|
||||
qualified=True
|
||||
@ -584,7 +584,7 @@ class MediaEntry(Base, MediaEntryMixin):
|
||||
"totalItems": total,
|
||||
"items": comments,
|
||||
"url": request.urlgen(
|
||||
"mediagoblin.federation.object.comments",
|
||||
"mediagoblin.api.object.comments",
|
||||
object_type=self.object_type,
|
||||
id=self.id,
|
||||
qualified=True
|
||||
@ -778,7 +778,7 @@ class MediaComment(Base, MediaCommentMixin):
|
||||
def serialize(self, request):
|
||||
""" Unserialize to python dictionary for API """
|
||||
href = request.urlgen(
|
||||
"mediagoblin.federation.object",
|
||||
"mediagoblin.api.object",
|
||||
object_type=self.object_type,
|
||||
id=self.id,
|
||||
qualified=True
|
||||
@ -1243,7 +1243,7 @@ class Generator(Base):
|
||||
|
||||
def serialize(self, request):
|
||||
href = request.urlgen(
|
||||
"mediagoblin.federation.object",
|
||||
"mediagoblin.api.object",
|
||||
object_type=self.object_type,
|
||||
id=self.id,
|
||||
qualified=True
|
||||
|
@ -38,7 +38,7 @@ def get_url_map():
|
||||
import mediagoblin.listings.routing
|
||||
import mediagoblin.notifications.routing
|
||||
import mediagoblin.oauth.routing
|
||||
import mediagoblin.federation.routing
|
||||
import mediagoblin.api.routing
|
||||
|
||||
for route in PluginManager().get_routes():
|
||||
add_route(*route)
|
||||
|
@ -31,6 +31,10 @@ add_route('mediagoblin.user_pages.media_confirm_delete',
|
||||
'/u/<string:user>/m/<int:media_id>/confirm-delete/',
|
||||
'mediagoblin.user_pages.views:media_confirm_delete')
|
||||
|
||||
add_route('mediagoblin.user_pages.activity_view',
|
||||
'/<string:username>/activity/<string:id>/',
|
||||
'mediagoblin.user_pages.views:activity_view')
|
||||
|
||||
# Submission handling of new comments. TODO: only allow for POST methods
|
||||
add_route('mediagoblin.user_pages.media_post_comment',
|
||||
'/u/<string:user>/m/<int:media_id>/comment/add/',
|
||||
|
@ -22,7 +22,7 @@ import six
|
||||
|
||||
from mediagoblin import messages, mg_globals
|
||||
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
|
||||
CollectionItem, User)
|
||||
CollectionItem, User, Activity)
|
||||
from mediagoblin.tools.response import render_to_response, render_404, \
|
||||
redirect, redirect_obj
|
||||
from mediagoblin.tools.text import cleaned_markdown_conversion
|
||||
@ -695,3 +695,34 @@ def file_a_report(request, media, comment):
|
||||
request,
|
||||
'mediagoblin/user_pages/report.html',
|
||||
context)
|
||||
|
||||
@require_active_login
|
||||
def activity_view(request):
|
||||
""" /<username>/activity/<id> - Display activity
|
||||
|
||||
This should display a HTML presentation of the activity
|
||||
this is NOT an API endpoint.
|
||||
"""
|
||||
# Get the user object.
|
||||
username = request.matchdict["username"]
|
||||
user = User.query.filter_by(username=username).first()
|
||||
|
||||
activity_id = request.matchdict["id"]
|
||||
|
||||
if request.user is None:
|
||||
return render_404(request)
|
||||
|
||||
activity = Activity.query.filter_by(
|
||||
id=activity_id,
|
||||
author=user.id
|
||||
).first()
|
||||
|
||||
if activity is None:
|
||||
return render_404(request)
|
||||
|
||||
return render_to_response(
|
||||
request,
|
||||
"mediagoblin/api/activity.html",
|
||||
{"activity": activity}
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user