diff options
Diffstat (limited to 'mediagoblin')
-rw-r--r-- | mediagoblin/api/__init__.py (renamed from mediagoblin/federation/__init__.py) | 0 | ||||
-rw-r--r-- | mediagoblin/api/decorators.py (renamed from mediagoblin/federation/decorators.py) | 0 | ||||
-rw-r--r-- | mediagoblin/api/routing.py (renamed from mediagoblin/federation/routing.py) | 71 | ||||
-rw-r--r-- | mediagoblin/api/views.py (renamed from mediagoblin/federation/views.py) | 41 | ||||
-rw-r--r-- | mediagoblin/db/mixin.py | 4 | ||||
-rw-r--r-- | mediagoblin/db/models.py | 14 | ||||
-rw-r--r-- | mediagoblin/routing.py | 2 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/user_pages/activity.html (renamed from mediagoblin/templates/mediagoblin/federation/activity.html) | 0 | ||||
-rw-r--r-- | mediagoblin/user_pages/routing.py | 4 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 33 |
10 files changed, 84 insertions, 85 deletions
diff --git a/mediagoblin/federation/__init__.py b/mediagoblin/api/__init__.py index 621845ba..621845ba 100644 --- a/mediagoblin/federation/__init__.py +++ b/mediagoblin/api/__init__.py diff --git a/mediagoblin/federation/decorators.py b/mediagoblin/api/decorators.py index 3dd6264e..3dd6264e 100644 --- a/mediagoblin/federation/decorators.py +++ b/mediagoblin/api/decorators.py diff --git a/mediagoblin/federation/routing.py b/mediagoblin/api/routing.py index 6d86c10e..ea231b63 100644 --- a/mediagoblin/federation/routing.py +++ b/mediagoblin/api/routing.py @@ -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 ) diff --git a/mediagoblin/federation/views.py b/mediagoblin/api/views.py index a2aa79cd..6095a721 100644 --- a/mediagoblin/federation/views.py +++ b/mediagoblin/api/views.py @@ -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} - ) - diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index 4280d128..4602c709 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -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 diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 950c5f0c..96123cf6 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -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 diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index 3ec1dba0..1fbc6e9b 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -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) diff --git a/mediagoblin/templates/mediagoblin/federation/activity.html b/mediagoblin/templates/mediagoblin/user_pages/activity.html index 14377a48..14377a48 100644 --- a/mediagoblin/templates/mediagoblin/federation/activity.html +++ b/mediagoblin/templates/mediagoblin/user_pages/activity.html diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 8eb51c8d..1a1d4139 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -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/', diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 822f359a..cc7f3684 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -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} + ) + |