Apprezzo le risposte finora.
Disabilitando le registrazioni per un giorno, siamo riusciti a riprendere fiato.
@RGJ Mi piace la tua idea di creare degli ostacoli per essere aggiunti a un gruppo che ha i permessi di pubblicazione, è qualcosa che esploreremo.
Utilizzando il data explorer sono riuscito a identificare circa 5.000 account bot aggiuntivi che finora sono passati inosservati.
@MikeNolan Non sono sicuro di avere ancora accesso alla console rails. Stiamo ospitando direttamente con discourse e non ho partecipato al processo di acquisto/on-boarding, quindi sto inoltrando questa domanda alla catena per determinare a quali accessi abbiamo diritto.
Immagino di poter effettuare eliminazioni anche tramite API? Vedo che posso generarmi facilmente le credenziali API.
Qualcosa del tipo:
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) # Aggiunge un ritardo per evitare di sovraccaricare il server con richieste