Necesito ayuda con una gran cantidad de spam

Agradezco las respuestas hasta ahora.

Con el registro deshabilitado por un día, pudimos volver a tomar aire.

@RGJ Me gusta tu idea de tener obstáculos que superar para poder ser añadido a un grupo que tenga permisos de publicación, eso es algo que vamos a explorar.

Usando el explorador de datos, he podido identificar unas 5.000 cuentas de bots adicionales que han estado pasando desapercibidas hasta ahora.

@MikeNolan No estoy seguro de si todavía tengo acceso a la consola de rails. Estamos alojando directamente con discourse y no participé en el proceso de compra / incorporación, así que estoy escalando esta pregunta para determinar qué acceso tenemos.

Imagino que también puedo realizar eliminaciones a través de la API. Veo que puedo generar credenciales de API fácilmente.

Algo como:

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'Usuario {user_id} eliminado con éxito')
    else:
        print(f'Error al eliminar usuario {user_id}. Código de estado: {response.status_code}, Respuesta: {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'Ocurrió un error al eliminar el usuario {user_id}: {e}')
        
        time.sleep(1)  # Añade un retraso para evitar sobrecargar el servidor con solicitudes
1 me gusta