diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 7220b545c..1cc30092d 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -276,6 +276,7 @@ urlpatterns = [ # users re_path(rf"{USER_PATH}\.json$", views.User.as_view()), re_path(rf"{USER_PATH}/?$", views.User.as_view(), name="user-feed"), + re_path(rf"@(?P{regex.USERNAME})$", views.user_redirect), re_path(rf"{USER_PATH}/rss/?$", views.rss_feed.RssFeed(), name="user-rss"), re_path( rf"{USER_PATH}/followers(.json)?/?$", diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index 8b1f56488..f77a3b502 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -94,7 +94,7 @@ from .search import Search from .status import CreateStatus, EditStatus, DeleteStatus, update_progress from .status import edit_readthrough from .updates import get_notification_count, get_unread_status_count -from .user import User, Followers, Following, hide_suggestions +from .user import User, Followers, Following, hide_suggestions, user_redirect from .wellknown import * from .annual_summary import ( AnnualSummary, diff --git a/bookwyrm/views/user.py b/bookwyrm/views/user.py index 188f8e66e..92ab9737f 100644 --- a/bookwyrm/views/user.py +++ b/bookwyrm/views/user.py @@ -151,3 +151,8 @@ def hide_suggestions(request): request.user.show_suggested_users = False request.user.save(broadcast=False, update_fields=["show_suggested_users"]) return redirect(request.headers.get("Referer", "/")) + + +def user_redirect(request, username): + """redirect to a user's feed""" + return redirect("user-feed", username=username)