Fixes bugs in model task

This commit is contained in:
Mouse Reeve 2022-02-24 17:33:22 -08:00
parent 1aa6b99d1f
commit eb8b9fdaed

View file

@ -84,19 +84,17 @@ def automod_users(reporter):
user_rules = AutoMod.objects.filter(flag_users=True).values_list( user_rules = AutoMod.objects.filter(flag_users=True).values_list(
"string_match", flat=True "string_match", flat=True
) )
if not user_rules:
return []
filters = [] filters = []
for field in ["username", "summary", "name"]: for field in ["username", "summary", "name"]:
filters += [{f"{field}__icontains": r} for r in user_rules] filters += [{f"{field}__icontains": r} for r in user_rules]
users = ( users = User.objects.filter(
User.objects.filter(
reduce(operator.or_, (Q(**f) for f in filters)), reduce(operator.or_, (Q(**f) for f in filters)),
is_active=True, is_active=True,
report__isnull=True, # don't flag users that already have reports report__isnull=True, # don't flag users that already have reports
) ).distinct()
.distinct()
.values_list("id", flat=True)
)
report_model = apps.get_model("bookwyrm", "Report", require_ready=True) report_model = apps.get_model("bookwyrm", "Report", require_ready=True)
@ -118,6 +116,9 @@ def automod_statuses(reporter):
"string_match", flat=True "string_match", flat=True
) )
if not status_rules:
return []
filters = [] filters = []
for field in ["content", "content_warning", "quotation__quote", "review__name"]: for field in ["content", "content_warning", "quotation__quote", "review__name"]:
filters += [{f"{field}__icontains": r} for r in status_rules] filters += [{f"{field}__icontains": r} for r in status_rules]