From 3838ad57015c49277292d01d8f0c9c721d08f6c1 Mon Sep 17 00:00:00 2001 From: Alan Roberts Date: Wed, 11 Sep 2024 19:14:12 -0400 Subject: [PATCH] Adding a pre-load of threadiverse communities to the admin area --- app/admin/forms.py | 2 ++ app/admin/routes.py | 12 +++++++++--- app/templates/admin/federation.html | 7 +++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/admin/forms.py b/app/admin/forms.py index 1a1d649d..62ce7c96 100644 --- a/app/admin/forms.py +++ b/app/admin/forms.py @@ -51,6 +51,8 @@ class FederationForm(FlaskForm): blocked_actors = TextAreaField(_l('Discard all posts and comments by users with these words in their name (one per line)')) submit = SubmitField(_l('Save')) +class PreLoadCommunitiesForm(FlaskForm): + pre_load_submit = SubmitField(_l('Add Communities')) class EditCommunityForm(FlaskForm): title = StringField(_l('Title'), validators=[DataRequired()]) diff --git a/app/admin/routes.py b/app/admin/routes.py index 15312b04..bb4412ce 100644 --- a/app/admin/routes.py +++ b/app/admin/routes.py @@ -15,7 +15,7 @@ from app.activitypub.routes import process_inbox_request, process_delete_request from app.activitypub.signature import post_request, default_context from app.activitypub.util import instance_allowed, instance_blocked from app.admin.forms import FederationForm, SiteMiscForm, SiteProfileForm, EditCommunityForm, EditUserForm, \ - EditTopicForm, SendNewsletterForm, AddUserForm + EditTopicForm, SendNewsletterForm, AddUserForm, PreLoadCommunitiesForm from app.admin.util import unsubscribe_from_everything_then_delete, unsubscribe_from_community, send_newsletter, \ topics_for_form from app.community.util import save_icon_file, save_banner_file @@ -190,12 +190,17 @@ def admin_misc(): @permission_required('change instance settings') def admin_federation(): form = FederationForm() + preload_form = PreLoadCommunitiesForm() site = Site.query.get(1) if site is None: site = Site() # todo: finish form site.updated = utcnow() - if form.validate_on_submit(): + if preload_form.pre_load_submit.data and preload_form.validate(): + flash(_('add communities button clicked')) + return redirect(url_for('admin.admin_federation')) + + elif form.validate_on_submit(): if form.use_allowlist.data: set_setting('use_allowlist', True) db.session.execute(text('DELETE FROM allowed_instances')) @@ -228,7 +233,8 @@ def admin_federation(): form.blocked_phrases.data = site.blocked_phrases form.blocked_actors.data = get_setting('actor_blocked_words', '88') - return render_template('admin/federation.html', title=_('Federation settings'), form=form, + return render_template('admin/federation.html', title=_('Federation settings'), + form=form, preload_form=preload_form, moderating_communities=moderating_communities(current_user.get_id()), joined_communities=joined_communities(current_user.get_id()), menu_topics=menu_topics(), diff --git a/app/templates/admin/federation.html b/app/templates/admin/federation.html index d41cebcf..d3cf0f4e 100644 --- a/app/templates/admin/federation.html +++ b/app/templates/admin/federation.html @@ -15,6 +15,13 @@
+
+
+

Use this to "pre-load" the top 50 known threadiverse communities, as rnaked by posts and activity. The list of communities pulls from the same list as LemmyVerse. NSFW communities and communities from banned instances are excluded.

+ {{ render_form(preload_form) }} +
+
+
{% include 'admin/_nav.html' %}