list trusted instances

This commit is contained in:
rimu 2024-09-24 09:36:19 +12:00
parent 7e4163db6b
commit 8fcd4c7de7
2 changed files with 26 additions and 67 deletions

View file

@ -1079,19 +1079,35 @@ def admin_permissions():
menu_topics=menu_topics(),
site=g.site
)
@bp.route('/instances', methods=['GET', 'POST'])
@login_required
@permission_required('change instance settings')
def admin_instances():
page = request.args.get('page', 1, type=int)
search = request.args.get('search', '')
filter = request.args.get('filter', '')
low_bandwidth = request.cookies.get('low_bandwidth', '0') == '1'
instances = Instance.query.order_by(Instance.domain)
if search:
instances = instances.filter(Instance.domain.ilike(f"%{search}%"))
title = 'Instances'
if filter:
if filter == 'trusted':
instances = instances.filter(Instance.trusted == True)
title = 'Trusted instances'
elif filter == 'online':
instances = instances.filter(Instance.dormant == False, Instance.gone_forever == False)
title = 'Online instances'
elif filter == 'dormant':
instances = instances.filter(Instance.dormant == True, Instance.gone_forever == False)
title = 'Dormant instances'
elif filter == 'gone_forever':
instances = instances.filter(Instance.gone_forever == True)
title = 'Gone forever instances'
# Pagination
instances = instances.paginate(page=page,
@ -1101,69 +1117,9 @@ def admin_instances():
prev_url = url_for('admin.admin_instances', page=instances.prev_num) if instances.has_prev and page != 1 else None
return render_template('admin/instances.html', instances=instances,
title=_('Instances'), search=search,
title=_(title), search=search,
next_url=next_url, prev_url=prev_url,
low_bandwidth=low_bandwidth,
moderating_communities=moderating_communities(current_user.get_id()),
joined_communities=joined_communities(current_user.get_id()),
menu_topics=menu_topics(), site=g.site)
@bp.route('/instances/dormant', methods=['GET', 'POST'])
@login_required
@permission_required('change instance settings')
def admin_instances_dormant():
page = request.args.get('page', 1, type=int)
search = request.args.get('search', '')
low_bandwidth = request.cookies.get('low_bandwidth', '0') == '1'
instances = Instance.query.order_by(Instance.domain)
instances = instances.filter(Instance.dormant == True, Instance.gone_forever == False)
if search:
instances = instances.filter(Instance.domain.ilike(f"%{search}%"))
# Pagination
instances = instances.paginate(page=page,
per_page=250 if current_user.is_authenticated and not low_bandwidth else 50,
error_out=False)
next_url = url_for('admin.admin_instances', page=instances.next_num) if instances.has_next else None
prev_url = url_for('admin.admin_instances', page=instances.prev_num) if instances.has_prev and page != 1 else None
return render_template('admin/instances.html', instances=instances,
title=_('Dormant Instances'), search=search,
next_url=next_url, prev_url=prev_url,
low_bandwidth=low_bandwidth,
moderating_communities=moderating_communities(current_user.get_id()),
joined_communities=joined_communities(current_user.get_id()),
menu_topics=menu_topics(), site=g.site)
@bp.route('/instances/gone-forever', methods=['GET', 'POST'])
@login_required
@permission_required('change instance settings')
def admin_instances_gone_forever():
page = request.args.get('page', 1, type=int)
search = request.args.get('search', '')
low_bandwidth = request.cookies.get('low_bandwidth', '0') == '1'
instances = Instance.query.order_by(Instance.domain)
instances = instances.filter(Instance.gone_forever == True)
if search:
instances = instances.filter(Instance.domain.ilike(f"%{search}%"))
# Pagination
instances = instances.paginate(page=page,
per_page=250 if current_user.is_authenticated and not low_bandwidth else 50,
error_out=False)
next_url = url_for('admin.admin_instances', page=instances.next_num) if instances.has_next else None
prev_url = url_for('admin.admin_instances', page=instances.prev_num) if instances.has_prev and page != 1 else None
return render_template('admin/instances.html', instances=instances,
title=_('Gone Forever Instances'), search=search,
next_url=next_url, prev_url=prev_url,
low_bandwidth=low_bandwidth,
moderating_communities=moderating_communities(current_user.get_id()),
joined_communities=joined_communities(current_user.get_id()),
menu_topics=menu_topics(), site=g.site)

View file

@ -14,19 +14,21 @@
<input type="search" name="search"> <input type="submit" name="submit" value="Search">
</form>
Status Filter:
<a href="{{ url_for('admin.admin_instances') }}">Online</a> |
<a href="{{ url_for('admin.admin_instances_dormant') }}">Dormant</a> |
<a href="{{ url_for('admin.admin_instances_gone_forever') }}">Gone Forever</a> |
<a href="{{ url_for('admin.admin_instances', filter='online') }}">Online</a> |
<a href="{{ url_for('admin.admin_instances', filter='dormant') }}">Dormant</a> |
<a href="{{ url_for('admin.admin_instances', filter='gone_forever') }}">Gone Forever</a> |
<a href="{{ url_for('admin.admin_instances', filter='trusted') }}">Trusted</a>
<table class="table table-striped">
<tr>
<th>Domain</th>
<th>Software</th>
<th>Version</th>
<th title="{{ _('Known Communities') }}">Communities</td>
<th title="{{ _('Known Users') }}">Users</td>
<th title="{{ _('Known Communities') }}">Communities</th>
<th title="{{ _('Known Users') }}">Users</th>
<th>Posts</th>
<th>Post Replies</th>
<th>Vote Weight</th>
<th>Trusted</th>
<th title="{{ _('When an Activity was received from them') }}">Seen</th>
<th title="{{ _('When we successfully sent them an Activity') }}">Sent</th>
<th title="{{ _('How many times we failed to send (reset to 0 after every successful send)') }}">Failed</th>
@ -42,6 +44,7 @@
<td>{{ instance.post_count() }}</td>
<td>{{ instance.post_replies_count() }}</td>
<td>{{ instance.vote_weight }}</td>
<td>{{ 'Yes' if instance.trusted }}</td>
<td>{{ arrow.get(instance.last_seen).humanize(locale=locale) if instance.last_seen }}</td>
<td>{{ arrow.get(instance.last_successful_send).humanize(locale=locale) if instance.last_successful_send }}</td>
<td>{{ instance.failures }}</td>