Bitte kurze Ruby-Skript zur Sperrung inaktiver Benutzer auswerten

Vielen Dank für Ihr Interesse, @pfaffman!

Es gibt Benutzereinträge ohne last_seen_at, die vor Monaten erstellt wurden, approved=False, active=False, und sie werden nicht gelöscht.
Es gibt Benutzereinträge mit last_seen_at > 7 Tagen (Monate alt) und 0 Aufrufen, und sie werden nicht gelöscht.

Welche Kriterien auch immer für dieses Grace-Period-Flag verwendet werden, sie wählen diese Einträge nicht aus.
Kann jemand die genaue Abfrage posten, die dort verwendet wird, damit ich verstehen kann, welche anderen Faktoren dabei eine Rolle spielen?

Nein, wenn ich die Datenbank direkt betrachte, gibt es Benutzereinträge, die jedes Kriterium erfüllen, aber nicht alle. Es scheint, dass die Benutzertabelle in der Datenbank inkonsistent ist. Es gibt Einträge mit non-zero topics_entered oder posts_read_count, aber mit views=0. Es gibt Einträge mit topics_entered=0 und posts_read_count=0, aber views ist non-zero.

Der wichtigste Punkt, den man sich merken muss, ist, dass während der Entwicklung dieser Website die Einstellungen nicht optimal waren und Menschen und Bots registriert wurden. Die OR-Klausel scheint all diese zu erfassen. Jetzt, da die Website stabilisiert ist mit (hoffentlich) vernünftigen Einstellungen, erwarte ich nicht, dass neue Registrierungen zu den gleichen Anomalien führen.

Ich beabsichtige, das Skript viele Male mit unterschiedlichen Kriterien auszuführen. Ich werde zuerst Einträge abfragen, außerhalb der Umgebung, und dann das Stille-Skript ausführen, um nur die Einträge anzusprechen, die ich wirklich will. In ein paar Wochen werde ich einen letzten Durchlauf machen, nur die stillgelegten Einträge auswählen (jeder, der tatsächlich zurückkam, wird das Flag entfernt bekommen) und alle davon löschen:

UserDestroyer.new(admin_user).destroy(user, reassign_to: archive_user)

Meine allgemeine Frage ist, ob das v0.0.2-Skript mit seinem Ansatz zur Auswahl, Protokollierung und Stummschaltung für ein Discourse-System korrekt ist. Ich weiß nicht, ob in einer solchen Schleife noch etwas anderes getan werden muss. Ich habe noch nie ein eigenes Skript erstellt und ausgeführt, daher ist dies eine Bitte, mich auf Noob-Fehler zu überprüfen.

Danke!!