cleanup comment

This commit is contained in:
xiaomlove
2025-01-27 14:57:24 +08:00
parent efb635c12b
commit 076aeeb576
2 changed files with 41 additions and 22 deletions
+40 -21
View File
@@ -175,7 +175,7 @@ function ban_user_with_leech_warning_expired()
->where('enabled', \App\Models\User::ENABLED_YES) ->where('enabled', \App\Models\User::ENABLED_YES)
->where('leechwarn', 'yes') ->where('leechwarn', 'yes')
->where('leechwarnuntil', '<', $dt) ->where('leechwarnuntil', '<', $dt)
->get(['id', 'username', 'modcomment', 'lang']); ->get(['id', 'username', 'lang']);
if ($results->isEmpty()) { if ($results->isEmpty()) {
return []; return [];
} }
@@ -206,28 +206,37 @@ function ban_user_with_leech_warning_expired()
function disable_user(\Illuminate\Database\Eloquent\Builder $query, $reasonKey) function disable_user(\Illuminate\Database\Eloquent\Builder $query, $reasonKey)
{ {
$results = $query->where('enabled', \App\Models\User::ENABLED_YES)->get(['id', 'username', 'modcomment', 'lang']); $results = $query->where('enabled', \App\Models\User::ENABLED_YES)->get(['id', 'username', 'lang']);
if ($results->isEmpty()) { if ($results->isEmpty()) {
return []; return [];
} }
$results->load('language'); $results->load('language');
$uidArr = []; $uidArr = [];
$userBanLogData = []; $userBanLogData = [];
$userModifyLogs = [];
foreach ($results as $user) { foreach ($results as $user) {
$uid = $user->id; $uid = $user->id;
$uidArr[] = $uid; $uidArr[] = $uid;
$reason = nexus_trans($reasonKey, [], $user->locale);
$userBanLogData[] = [ $userBanLogData[] = [
'uid' => $uid, 'uid' => $uid,
'username' => $user->username, 'username' => $user->username,
'reason' => nexus_trans($reasonKey, [], $user->locale), 'reason' => $reason,
];
$userModifyLogs[] = [
'user_id' => $uid,
'content' => sprintf("[CLEANUP] %s", $reason),
'created_at' => date("Y-m-d H:i:s"),
'updated_at' => date("Y-m-d H:i:s"),
]; ];
} }
$sql = sprintf( $sql = sprintf(
"update users set enabled = '%s', modcomment = concat_ws('\n', '%s [CLEANUP] %s', modcomment) where id in (%s)", "update users set enabled = '%s' where id in (%s)",
\App\Models\User::ENABLED_NO, date('Y-m-d'), addslashes($reasonKey), implode(', ', $uidArr) \App\Models\User::ENABLED_NO, implode(', ', $uidArr)
); );
sql_query($sql); sql_query($sql);
\App\Models\UserBanLog::query()->insert($userBanLogData); \App\Models\UserBanLog::query()->insert($userBanLogData);
\App\Models\UserModifyLog::query()->insert($userModifyLogs);
do_log("[DISABLE_USER]($reasonKey): " . implode(', ', $uidArr)); do_log("[DISABLE_USER]($reasonKey): " . implode(', ', $uidArr));
return $uidArr; return $uidArr;
} }
@@ -697,31 +706,36 @@ function docleanup($forceAll = 0, $printProgress = false) {
} }
//remove VIP status if time's up //remove VIP status if time's up
$res = sql_query("SELECT id, modcomment, class FROM users WHERE vip_added='yes' AND vip_until < NOW()") or sqlerr(__FILE__, __LINE__); $res = sql_query("SELECT id, class FROM users WHERE vip_added='yes' AND vip_until < NOW()") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) > 0) $userModifyLogs = [];
if (mysql_num_rows($res) > 0)
{ {
while ($arr = mysql_fetch_assoc($res)) while ($arr = mysql_fetch_assoc($res))
{ {
$dt = sqlesc(date("Y-m-d H:i:s")); $dt = sqlesc(date("Y-m-d H:i:s"));
$subject = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_vip_status_removed']); $subject = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_vip_status_removed']);
$msg = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_vip_status_removed_body']); $msg = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_vip_status_removed_body']);
///---AUTOSYSTEM MODCOMMENT---// $userModifyLogs[] = [
$modcomment = htmlspecialchars($arr["modcomment"]); 'user_id' => $arr['id'],
$modcomment = date("Y-m-d") . " - VIP status removed by - AutoSystem.\n". $modcomment; 'content' => "VIP status removed by - AutoSystem",
$modcom = sqlesc($modcomment); 'created_at' => date("Y-m-d H:i:s"),
///---end 'updated_at' => date("Y-m-d H:i:s"),
];
if ($arr['class'] > \App\Models\User::CLASS_VIP) { if ($arr['class'] > \App\Models\User::CLASS_VIP) {
/** /**
* @since 1.8 * @since 1.8
* never demotion VIP above * never demotion VIP above
*/ */
sql_query("UPDATE users SET vip_added = 'no', vip_until = null, modcomment = $modcom WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__); sql_query("UPDATE users SET vip_added = 'no', vip_until = null WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
} else { } else {
sql_query("UPDATE users SET class = '1', vip_added = 'no', vip_until = null, modcomment = $modcom WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__); sql_query("UPDATE users SET class = '1', vip_added = 'no', vip_until = null WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__); sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__);
} }
} }
} }
if (!empty($userModifyLogs)) {
\App\Models\UserModifyLog::query()->insert($userModifyLogs);
}
$log = "remove VIP status if time's up"; $log = "remove VIP status if time's up";
do_log($log); do_log($log);
if ($printProgress) { if ($printProgress) {
@@ -729,7 +743,8 @@ function docleanup($forceAll = 0, $printProgress = false) {
} }
//remove donor status if time's up //remove donor status if time's up
$res = sql_query("SELECT id, modcomment FROM users WHERE donor='yes' AND donoruntil is not null and donoruntil != '0000-00-00 00:00:00' and donoruntil < NOW()") or sqlerr(__FILE__, __LINE__); $userModifyLogs = [];
$res = sql_query("SELECT id FROM users WHERE donor='yes' AND donoruntil is not null and donoruntil != '0000-00-00 00:00:00' and donoruntil < NOW()") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) > 0) if (mysql_num_rows($res) > 0)
{ {
while ($arr = mysql_fetch_assoc($res)) while ($arr = mysql_fetch_assoc($res))
@@ -737,15 +752,19 @@ function docleanup($forceAll = 0, $printProgress = false) {
$dt = sqlesc(date("Y-m-d H:i:s")); $dt = sqlesc(date("Y-m-d H:i:s"));
$subject = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_donor_status_removed']); $subject = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_donor_status_removed']);
$msg = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_donor_status_removed_body']); $msg = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_donor_status_removed_body']);
///---AUTOSYSTEM MODCOMMENT---// $userModifyLogs[] = [
$modcomment = htmlspecialchars($arr["modcomment"]); 'user_id' => $arr['id'],
$modcomment = date("Y-m-d") . " - donor status removed by - AutoSystem.\n". $modcomment; 'content' => "donor status removed by - AutoSystem",
$modcom = sqlesc($modcomment); 'created_at' => date("Y-m-d H:i:s"),
///---end 'updated_at' => date("Y-m-d H:i:s"),
sql_query("UPDATE users SET donor = 'no', modcomment = $modcom WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__); ];
sql_query("UPDATE users SET donor = 'no' WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__); sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__);
} }
} }
if (!empty($userModifyLogs)) {
\App\Models\UserModifyLog::query()->insert($userModifyLogs);
}
$log = "remove donor status if time's up"; $log = "remove donor status if time's up";
do_log($log); do_log($log);
if ($printProgress) { if ($printProgress) {
+1 -1
View File
@@ -3366,7 +3366,7 @@ function linkcolor($num) {
} }
function writecomment($userid, $comment, $oldModcomment = null) { function writecomment($userid, $comment, $oldModcomment = null) {
\App\Models\UserModifyLog::query()->create(['user_id' => $userid, 'content' => date("Y-m-d") . " - " . $comment]); \App\Models\UserModifyLog::query()->create(['user_id' => $userid, 'content' => $comment]);
// if (is_null($oldModcomment)) { // if (is_null($oldModcomment)) {
// $res = sql_query("SELECT modcomment FROM users WHERE id = '$userid'") or sqlerr(__FILE__, __LINE__); // $res = sql_query("SELECT modcomment FROM users WHERE id = '$userid'") or sqlerr(__FILE__, __LINE__);
// $arr = mysql_fetch_assoc($res); // $arr = mysql_fetch_assoc($res);