Assistenza necessaria con enormi quantità di spam

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
1 Mi Piace