Runs black

This commit is contained in:
Mouse Reeve
2021-03-08 08:49:10 -08:00
parent a07f955781
commit 70296e760b
198 changed files with 10239 additions and 8572 deletions

View File

@ -1,4 +1,4 @@
''' non-interactive pages '''
""" non-interactive pages """
from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator
from django.db.models import Q
@ -17,48 +17,54 @@ from .helpers import is_api_request, is_bookwyrm_request, object_visible_to_user
# pylint: disable= no-self-use
@method_decorator(login_required, name='dispatch')
@method_decorator(login_required, name="dispatch")
class Feed(View):
''' activity stream '''
""" activity stream """
def get(self, request, tab):
''' user's homepage with activity feed '''
""" user's homepage with activity feed """
try:
page = int(request.GET.get('page', 1))
page = int(request.GET.get("page", 1))
except ValueError:
page = 1
if tab == 'home':
if tab == "home":
activities = get_activity_feed(request.user, following_only=True)
tab_title = _("Home")
elif tab == "local":
activities = get_activity_feed(
request.user, following_only=True)
tab_title = _('Home')
elif tab == 'local':
activities = get_activity_feed(
request.user, privacy=['public', 'followers'], local_only=True)
tab_title = _('Local')
request.user, privacy=["public", "followers"], local_only=True
)
tab_title = _("Local")
else:
activities = get_activity_feed(
request.user, privacy=['public', 'followers'])
tab_title = _('Federated')
request.user, privacy=["public", "followers"]
)
tab_title = _("Federated")
paginated = Paginator(activities, PAGE_LENGTH)
data = {**feed_page_data(request.user), **{
'user': request.user,
'activities': paginated.page(page),
'tab': tab,
'tab_title': tab_title,
'goal_form': forms.GoalForm(),
'path': '/%s' % tab,
}}
return TemplateResponse(request, 'feed/feed.html', data)
data = {
**feed_page_data(request.user),
**{
"user": request.user,
"activities": paginated.page(page),
"tab": tab,
"tab_title": tab_title,
"goal_form": forms.GoalForm(),
"path": "/%s" % tab,
},
}
return TemplateResponse(request, "feed/feed.html", data)
@method_decorator(login_required, name='dispatch')
@method_decorator(login_required, name="dispatch")
class DirectMessage(View):
''' dm view '''
""" dm view """
def get(self, request, username=None):
''' like a feed but for dms only '''
""" like a feed but for dms only """
try:
page = int(request.GET.get('page', 1))
page = int(request.GET.get("page", 1))
except ValueError:
page = 1
@ -74,27 +80,33 @@ class DirectMessage(View):
queryset = queryset.filter(Q(user=user) | Q(mention_users=user))
activities = get_activity_feed(
request.user, privacy=['direct'], queryset=queryset)
request.user, privacy=["direct"], queryset=queryset
)
paginated = Paginator(activities, PAGE_LENGTH)
activity_page = paginated.page(page)
data = {**feed_page_data(request.user), **{
'user': request.user,
'partner': user,
'activities': activity_page,
'path': '/direct-messages',
}}
return TemplateResponse(request, 'feed/direct_messages.html', data)
data = {
**feed_page_data(request.user),
**{
"user": request.user,
"partner": user,
"activities": activity_page,
"path": "/direct-messages",
},
}
return TemplateResponse(request, "feed/direct_messages.html", data)
class Status(View):
''' get posting '''
""" get posting """
def get(self, request, username, status_id):
''' display a particular status (and replies, etc) '''
""" display a particular status (and replies, etc) """
try:
user = get_user_from_username(request.user, username)
status = models.Status.objects.select_subclasses().get(
id=status_id, deleted=False)
id=status_id, deleted=False
)
except ValueError:
return HttpResponseNotFound()
@ -108,18 +120,23 @@ class Status(View):
if is_api_request(request):
return ActivitypubResponse(
status.to_activity(pure=not is_bookwyrm_request(request)))
status.to_activity(pure=not is_bookwyrm_request(request))
)
data = {**feed_page_data(request.user), **{
'status': status,
}}
return TemplateResponse(request, 'feed/status.html', data)
data = {
**feed_page_data(request.user),
**{
"status": status,
},
}
return TemplateResponse(request, "feed/status.html", data)
class Replies(View):
''' replies page (a json view of status) '''
""" replies page (a json view of status) """
def get(self, request, username, status_id):
''' ordered collection of replies to a status '''
""" ordered collection of replies to a status """
# the html view is the same as Status
if not is_api_request(request):
status_view = Status.as_view()
@ -134,41 +151,39 @@ class Replies(View):
def feed_page_data(user):
''' info we need for every feed page '''
""" info we need for every feed page """
if not user.is_authenticated:
return {}
goal = models.AnnualGoal.objects.filter(
user=user, year=timezone.now().year
).first()
goal = models.AnnualGoal.objects.filter(user=user, year=timezone.now().year).first()
return {
'suggested_books': get_suggested_books(user),
'goal': goal,
'goal_form': forms.GoalForm(),
"suggested_books": get_suggested_books(user),
"goal": goal,
"goal_form": forms.GoalForm(),
}
def get_suggested_books(user, max_books=5):
''' helper to get a user's recent books '''
""" helper to get a user's recent books """
book_count = 0
preset_shelves = [
('reading', max_books), ('read', 2), ('to-read', max_books)
]
preset_shelves = [("reading", max_books), ("read", 2), ("to-read", max_books)]
suggested_books = []
for (preset, shelf_max) in preset_shelves:
limit = shelf_max if shelf_max < (max_books - book_count) \
else max_books - book_count
limit = (
shelf_max
if shelf_max < (max_books - book_count)
else max_books - book_count
)
shelf = user.shelf_set.get(identifier=preset)
shelf_books = shelf.shelfbook_set.order_by(
'-updated_date'
).all()[:limit]
shelf_books = shelf.shelfbook_set.order_by("-updated_date").all()[:limit]
if not shelf_books:
continue
shelf_preview = {
'name': shelf.name,
'identifier': shelf.identifier,
'books': [s.book for s in shelf_books]
"name": shelf.name,
"identifier": shelf.identifier,
"books": [s.book for s in shelf_books],
}
suggested_books.append(shelf_preview)
book_count += len(shelf_preview['books'])
book_count += len(shelf_preview["books"])
return suggested_books