forked from mirrors/bookwyrm
code cleanup
This commit is contained in:
parent
f828f36cc5
commit
e9bb2a04a4
7 changed files with 37 additions and 26 deletions
|
@ -46,9 +46,9 @@
|
|||
<span class="subtitle is-7 is-block">@{{ user|username }}</span>
|
||||
</a>
|
||||
<form name="follow" method="post" action="{% url 'follow' %}/?next={% url 'ostatus-success' %}?following={{ user.username }}">
|
||||
{% csrf_token %}
|
||||
<input name="user" value={{ user.username }} hidden>
|
||||
<button class="button is-link" type="submit">{% trans "Follow " %} {{ user.name }}</button>
|
||||
{% csrf_token %}
|
||||
<input name="user" value={{ user.username }} hidden>
|
||||
<button class="button is-link" type="submit">{% trans "Follow " %} {{ user.name }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -92,7 +92,6 @@
|
|||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- TODO: do we need any of this stuff? -->
|
||||
<script>
|
||||
var csrf_token = '{{ csrf_token }}';
|
||||
</script>
|
||||
|
|
|
@ -453,5 +453,7 @@ urlpatterns = [
|
|||
re_path(r"^delete-follow-request/?$", views.delete_follow_request),
|
||||
re_path(r"^ostatus_follow/?$", views.remote_follow, name="remote-follow"),
|
||||
re_path(r"^remote_follow/?$", views.remote_follow_page, name="remote-follow-page"),
|
||||
re_path(r"^ostatus_success/?$", views.ostatus_follow_success, name="ostatus-success"),
|
||||
re_path(
|
||||
r"^ostatus_success/?$", views.ostatus_follow_success, name="ostatus-success"
|
||||
),
|
||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
|
|
@ -58,7 +58,14 @@ from .author import Author, EditAuthor
|
|||
from .directory import Directory
|
||||
from .discover import Discover
|
||||
from .feed import DirectMessage, Feed, Replies, Status
|
||||
from .follow import follow, unfollow, ostatus_follow_request, ostatus_follow_success, remote_follow, remote_follow_page
|
||||
from .follow import (
|
||||
follow,
|
||||
unfollow,
|
||||
ostatus_follow_request,
|
||||
ostatus_follow_success,
|
||||
remote_follow,
|
||||
remote_follow_page,
|
||||
)
|
||||
from .follow import accept_follow_request, delete_follow_request
|
||||
from .get_started import GetStartedBooks, GetStartedProfile, GetStartedUsers
|
||||
from .goal import Goal, hide_goal
|
||||
|
|
|
@ -8,7 +8,11 @@ from django.template.response import TemplateResponse
|
|||
from django.views.decorators.http import require_POST
|
||||
|
||||
from bookwyrm import models
|
||||
from .helpers import get_user_from_username, handle_remote_webfinger, subscribe_remote_webfinger
|
||||
from .helpers import (
|
||||
get_user_from_username,
|
||||
handle_remote_webfinger,
|
||||
subscribe_remote_webfinger,
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
|
@ -32,7 +36,6 @@ def follow(request):
|
|||
return redirect(to_follow.local_path)
|
||||
|
||||
|
||||
|
||||
@login_required
|
||||
@require_POST
|
||||
def unfollow(request):
|
||||
|
@ -92,12 +95,15 @@ def delete_follow_request(request):
|
|||
follow_request.delete()
|
||||
return redirect(f"/user/{request.user.localname}")
|
||||
|
||||
|
||||
def ostatus_follow_request(request):
|
||||
"""prepare an outgoing remote follow request"""
|
||||
|
||||
# parse the acct URI into a user string
|
||||
uri = urllib.parse.unquote(request.GET.get("acct"))
|
||||
username_parts = re.search("(?:^http(?:s?):\/\/)([\w\-\.]*)(?:.)*(?:(?:\/)([\w]*))", uri)
|
||||
username_parts = re.search(
|
||||
"(?:^http(?:s?):\/\/)([\w\-\.]*)(?:.)*(?:(?:\/)([\w]*))", uri
|
||||
)
|
||||
account = f"{username_parts[2]}@{username_parts[1]}"
|
||||
user = handle_remote_webfinger(account)
|
||||
error = None
|
||||
|
@ -111,14 +117,13 @@ def ostatus_follow_request(request):
|
|||
if hasattr(user, "followers") and request.user in user.followers.all():
|
||||
error = "already_following"
|
||||
|
||||
if hasattr(user, "follower_requests") and request.user in user.follower_requests.all():
|
||||
if (
|
||||
hasattr(user, "follower_requests")
|
||||
and request.user in user.follower_requests.all()
|
||||
):
|
||||
error = "already_requested"
|
||||
|
||||
data = {
|
||||
"account": account,
|
||||
"user": user,
|
||||
"error": error
|
||||
}
|
||||
data = {"account": account, "user": user, "error": error}
|
||||
|
||||
return TemplateResponse(request, "ostatus/subscribe.html", data)
|
||||
|
||||
|
@ -127,21 +132,17 @@ def ostatus_follow_request(request):
|
|||
def ostatus_follow_success(request):
|
||||
"""display success message for remote follow"""
|
||||
user = get_user_from_username(request.user, request.GET.get("following"))
|
||||
data = {
|
||||
"account": user.name,
|
||||
"user": user,
|
||||
"error": None
|
||||
}
|
||||
data = {"account": user.name, "user": user, "error": None}
|
||||
return TemplateResponse(request, "ostatus/success.html", data)
|
||||
|
||||
|
||||
def remote_follow_page(request):
|
||||
"""Display remote follow page"""
|
||||
user = get_user_from_username(request.user, request.GET.get("user"))
|
||||
data = {
|
||||
"user": user
|
||||
}
|
||||
data = {"user": user}
|
||||
return TemplateResponse(request, "ostatus/remote_follow.html", data)
|
||||
|
||||
|
||||
@require_POST
|
||||
def remote_follow(request):
|
||||
"""direct user to follow from remote account using ostatus subscribe protocol"""
|
||||
|
|
|
@ -84,6 +84,7 @@ def handle_remote_webfinger(query):
|
|||
return None
|
||||
return user
|
||||
|
||||
|
||||
def subscribe_remote_webfinger(query):
|
||||
"""get subscribe template from other servers"""
|
||||
template = None
|
||||
|
@ -112,6 +113,7 @@ def subscribe_remote_webfinger(query):
|
|||
|
||||
return template
|
||||
|
||||
|
||||
def get_edition(book_id):
|
||||
"""look up a book in the db and return an edition"""
|
||||
book = models.Book.objects.select_subclasses().get(id=book_id)
|
||||
|
|
|
@ -32,9 +32,9 @@ def webfinger(request):
|
|||
"href": user.remote_id,
|
||||
},
|
||||
{
|
||||
"rel": "http://ostatus.org/schema/1.0/subscribe",
|
||||
"template": f"https://{DOMAIN}/ostatus_subscribe?acct={{uri}}"
|
||||
}
|
||||
"rel": "http://ostatus.org/schema/1.0/subscribe",
|
||||
"template": f"https://{DOMAIN}/ostatus_subscribe?acct={{uri}}",
|
||||
},
|
||||
],
|
||||
}
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue