J’apprécie les réponses jusqu’à présent.
En désactivant les inscriptions pendant une journée, nous avons pu reprendre notre souffle.
@RGJ J’aime votre idée de passer par des étapes pour être ajouté à un groupe qui a des permissions de publication, c’est quelque chose que nous allons explorer.
En utilisant l’explorateur de données, j’ai pu identifier environ 5 000 comptes de bots supplémentaires qui étaient passés sous le radar jusqu’à présent.
@MikeNolan Je ne suis pas sûr d’avoir encore accès à la console Rails. Nous hébergeons directement avec Discourse et je ne faisais pas partie du processus d’achat / d’intégration, donc je remonte cette question à la hiérarchie pour déterminer quel accès nous avons.
J’imagine que je peux également effectuer des suppressions via l’API ? Je vois que je peux facilement générer mes propres identifiants API.
Quelque chose comme :
import csv
import requests
import time
api_key = 'api_key'
api_username = 'api_username'
base_url = 'https://mydomain.com'
headers = {
'Api-Key': api_key,
'Api-Username': api_username
}
def delete_user(user_id):
delete_url = f'{base_url}/admin/users/{user_id}.json'
response = requests.delete(delete_url, headers=headers)
if response.status_code == 200:
print(f'Successfully deleted user {user_id}')
else:
print(f'Failed to delete user {user_id}. Status code: {response.status_code}, Response: {response.text}')
with open('user_ids_to_delete.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
user_id = row[0]
try:
delete_user(user_id)
except Exception as e:
print(f'Error occurred while deleting user {user_id}: {e}')
time.sleep(1) # Add a delay to avoid overwhelming the server with requests