aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin
diff options
context:
space:
mode:
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.py4
-rw-r--r--mediagoblin/db/models.py14
-rw-r--r--mediagoblin/routing.py2
-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.py4
-rw-r--r--mediagoblin/user_pages/views.py33
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}
+ )
+