This commit is contained in:
Mateusz Gruszczyński 2025-05-16 12:53:14 +02:00
parent d977ced0f5
commit 8989f2abf0
2 changed files with 20 additions and 16 deletions

11
app.py
View File

@ -40,9 +40,12 @@ def get_users(db_config):
connection = mysql.connector.connect(**db_config) connection = mysql.connector.connect(**db_config)
cursor = connection.cursor(dictionary=True) cursor = connection.cursor(dictionary=True)
query = """ query = """
SELECT u.uid, u.name, u.mail, u.access, u.created, p.points, COUNT(n.nid) AS post_count SELECT u.uid, u.name, u.mail, u.access, u.created, p.points,
COUNT(DISTINCT n.nid) AS post_count,
COUNT(DISTINCT c.cid) AS comment_count
FROM users u FROM users u
LEFT JOIN node n ON u.uid = n.uid LEFT JOIN node n ON u.uid = n.uid
LEFT JOIN comments c ON u.uid = c.uid
LEFT JOIN userpoints p ON u.uid = p.uid LEFT JOIN userpoints p ON u.uid = p.uid
WHERE u.uid > 0 WHERE u.uid > 0
GROUP BY u.uid GROUP BY u.uid
@ -229,12 +232,8 @@ def main():
skipped_veterans = 0 skipped_veterans = 0
for user in tqdm(users, desc="Analiza"): for user in tqdm(users, desc="Analiza"):
if (user.get('points') or 0) > 0:
skipped_with_points += 1
continue
if (user.get('post_count') or 0) > 0: if (user.get('post_count') or 0) > 0 or (user.get('comment_count') or 0) > 0:
# Pomijamy użytkownika, który dodał treści
continue continue
# Pomijanie aktywnych "weteranów" # Pomijanie aktywnych "weteranów"

View File

@ -2,25 +2,30 @@
<?php <?php
if ($argc < 3) { if ($argc < 3) {
echo "❌ Użycie: php delete_user.php UID /sciezka/do/drupala\n"; echo "❌ Użycie: php delete_user.php UID /ścieżka/do/drupala\n";
exit(1); exit(1);
} }
$uid = (int) $argv[1]; $uid = (int) $argv[1];
$drupal_path = $argv[2]; $drupal_path = $argv[2];
// Bootstrap Drupala // Ustaw sztuczne IP dla CLI
if (php_sapi_name() == 'cli') {
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
}
define('DRUPAL_ROOT', $drupal_path); define('DRUPAL_ROOT', $drupal_path);
chdir(DRUPAL_ROOT); chdir(DRUPAL_ROOT);
require_once DRUPAL_ROOT . '/includes/bootstrap.inc'; require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// Załaduj użytkownika // Sprawdź czy użytkownik istnieje
$account = user_load(array('uid' => $uid)); $account = db_fetch_object(db_query("SELECT uid, name, status FROM {users} WHERE uid = %d", $uid));
if (!$account) {
if ($account) {
user_delete(array('uid' => $uid));
echo "✅ Użytkownik $uid został usunięty.\n";
} else {
echo "⚠️ Użytkownik $uid nie istnieje.\n"; echo "⚠️ Użytkownik $uid nie istnieje.\n";
exit(0);
} }
// Ustaw status = 0 (soft delete)
db_query("UPDATE {users} SET status = 0 WHERE uid = %d", $uid);
echo "✅ Użytkownik $uid został zdezaktywowany (soft delete).\n";