Benötige Hilfe bei massenhaftem Spam

Ich schätze die bisherigen Antworten.

Da die Registrierungen für einen Tag deaktiviert waren, konnten wir uns wieder über Wasser halten.

@RGJ Mir gefällt deine Idee mit den Hürden, die man überwinden muss, um zu einer Gruppe mit Posting-Berechtigungen hinzugefügt zu werden. Das werden wir uns genauer ansehen.

Mithilfe des Datenexplorers konnte ich etwa 5.000 zusätzliche Bot-Konten identifizieren, die bisher unter dem Radar geflogen sind.

@MikeNolan Ich bin mir nicht sicher, ob ich bereits Zugriff auf die Rails-Konsole habe. Wir hosten direkt bei Discourse und ich war nicht am Kauf-/Onboarding-Prozess beteiligt, daher leite ich diese Frage weiter, um herauszufinden, auf welchen Zugriff wir haben.

Ich stelle mir vor, dass ich Löschungen auch über die API durchführen kann? Ich sehe, dass ich mir ganz einfach API-Anmeldeinformationen generieren kann.

Etwas in der Art von:

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'Benutzer {user_id} erfolgreich gelöscht')
    else:
        print(f'Fehler beim Löschen des Benutzers {user_id}. Statuscode: {response.status_code}, Antwort: {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'Fehler beim Löschen des Benutzers {user_id}: {e}')
        
        time.sleep(1)  # Füge eine Verzögerung hinzu, um den Server nicht mit Anfragen zu überlasten
1 „Gefällt mir“