1
0
mirror of https://gitlab.com/brutaldon/brutaldon.git synced 2024-12-04 14:46:24 -05:00

Add back support for backwards paging

This commit is contained in:
Jason McBrayer 2019-05-03 10:00:42 -04:00
parent 8dbebea29a
commit 5c11d3c871
2 changed files with 21 additions and 14 deletions

View File

@ -40,7 +40,7 @@
{% if next %} {% if next %}
<p class="column is-one-quarter"></p> <p class="column is-one-quarter"></p>
<p class="column"> <p class="column">
<a class="pagination-previous is-fullwidth button" <a class="pagination-previous is-one-quarter"
href="{% url 'home_next' next.max_id %}" href="{% url 'home_next' next.max_id %}"
{% if preferences.click_to_load %} {% if preferences.click_to_load %}
ic-get-from="{% url 'home_next' next.max_id %}" ic-get-from="{% url 'home_next' next.max_id %}"
@ -53,7 +53,14 @@
Older Older
</a> </a>
</p> </p>
<p class="column is-one-quarter"></p> {% endif %}
{% if prev %}
<p class="column is-one-quarter">
<a class="pagination-next iss-fullwidth button"
href="{% url 'home_prev' prev.min_id %}">
Newer
</a>
</p>
{% endif %} {% endif %}
</div> </div>
</div> </div>

View File

@ -117,16 +117,16 @@ def user_search_inner(request, query):
{'active_users': "\n".join([ user.acct for user in results.accounts ]), {'active_users': "\n".join([ user.acct for user in results.accounts ]),
'preferences': account.preferences }) 'preferences': account.preferences })
def timeline(request, timeline='home', timeline_name='Home', max_id=None, since_id=None, filter_context='home'): def timeline(request, timeline='home', timeline_name='Home', max_id=None, min_id=None, filter_context='home'):
account, mastodon = get_usercontext(request) account, mastodon = get_usercontext(request)
data = mastodon.timeline(timeline, limit=40, max_id=max_id, since_id=since_id) data = mastodon.timeline(timeline, limit=40, max_id=max_id, min_id=min_id)
form = PostForm(initial={'visibility': request.session['active_user'].source.privacy}) form = PostForm(initial={'visibility': request.session['active_user'].source.privacy})
try: try:
prev = data[0]._pagination_prev prev = data[0]._pagination_prev
if len(mastodon.timeline(since_id=prev['since_id'])) == 0: if len(mastodon.timeline(min_id=prev['min_id'])) == 0:
prev = None prev = None
else: else:
prev['since_id'] = data[0].id prev['min_id'] = data[0].id
except (IndexError, AttributeError, KeyError): except (IndexError, AttributeError, KeyError):
prev = None prev = None
try: try:
@ -236,15 +236,15 @@ def notes_count(request):
@br_login_required @br_login_required
def home(request, next=None, prev=None): def home(request, next=None, prev=None):
return timeline(request, 'home', 'Home', max_id=next, since_id=prev, filter_context='home') return timeline(request, 'home', 'Home', max_id=next, min_id=prev, filter_context='home')
@br_login_required @br_login_required
def local(request, next=None, prev=None, filter_context='public'): def local(request, next=None, prev=None, filter_context='public'):
return timeline(request, 'local', 'Local', max_id=next, since_id=prev) return timeline(request, 'local', 'Local', max_id=next, min_id=prev)
@br_login_required @br_login_required
def fed(request, next=None, prev=None, filter_context='public'): def fed(request, next=None, prev=None, filter_context='public'):
return timeline(request, 'public', 'Federated', max_id=next, since_id=prev) return timeline(request, 'public', 'Federated', max_id=next, min_id=prev)
@br_login_required @br_login_required
def tag(request, tag): def tag(request, tag):
@ -457,7 +457,7 @@ def note(request, next=None, prev=None):
account.note_seen = last_seen.id account.note_seen = last_seen.id
account.save() account.save()
notes = mastodon.notifications(limit=40, max_id=next, since_id=prev) notes = mastodon.notifications(limit=40, max_id=next, min_id=prev)
filters = get_filters(mastodon, context='notifications') filters = get_filters(mastodon, context='notifications')
if account.preferences.filter_notifications: if account.preferences.filter_notifications:
@ -468,7 +468,7 @@ def note(request, next=None, prev=None):
try: try:
prev = notes[0]._pagination_prev prev = notes[0]._pagination_prev
if len(mastodon.notifications(since_id=prev['since_id'])) == 0: if len(mastodon.notifications(min_id=prev['min_id'])) == 0:
prev = None prev = None
except (IndexError, AttributeError, KeyError): except (IndexError, AttributeError, KeyError):
prev = None prev = None
@ -520,13 +520,13 @@ def user(request, username, prev=None, next=None):
username.split('@')[1] == account.username.split('@')[1]))][0] username.split('@')[1] == account.username.split('@')[1]))][0]
except (IndexError, AttributeError): except (IndexError, AttributeError):
raise Http404(_("The user %s could not be found.") % username) raise Http404(_("The user %s could not be found.") % username)
data = mastodon.account_statuses(user_dict.id, max_id=next, since_id=prev) data = mastodon.account_statuses(user_dict.id, max_id=next, min_id=prev)
relationship = mastodon.account_relationships(user_dict.id)[0] relationship = mastodon.account_relationships(user_dict.id)[0]
notifications = _notes_count(account, mastodon) notifications = _notes_count(account, mastodon)
try: try:
prev = data[0]._pagination_prev prev = data[0]._pagination_prev
if len(mastodon.account_statuses(user_dict.id, if len(mastodon.account_statuses(user_dict.id,
since_id=prev['since_id'])) == 0: min_id=prev['min_id'])) == 0:
prev = None prev = None
except (IndexError, AttributeError, KeyError): except (IndexError, AttributeError, KeyError):
prev = None prev = None