<?php # Каждую полночь use Core\Db; require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php'; /** * CRON Очистки сервера от ненужной информации * Действия: * 1. Очистка чата * 2. Очистка заявок в поединки * 3. Очистка заявок в пещеры * 4. Очистка походов * */ // ЕБИИИИИИИЧЕСКАЯ СИИИИЛА!!!!! (с) Инс. // forign_keys! Никто не знает про foreign_keys! function clearUsersFromDb(array $uidsArray, array $loginsArray) { $uids = implode(',', $uidsArray); $logins = implode(',', $loginsArray); Db::sql('delete from aaa_znahar where uid in (?)', [$uids]); Db::sql('delete from actions where uid in (?)', [$uids]); Db::sql('delete from add_smiles where uid in (?)', [$uids]); Db::sql('delete from a_com_act where uid in (?)', [$uids]); Db::sql('delete from bandit where uid in (?)', [$uids]); Db::sql('delete from bank_alh where uid in (?)', [$uids]); Db::sql('delete from battle_actions where uid in (?)', [$uids]); Db::sql('delete from battle_cache where uid in (?)', [$uids]); Db::sql('delete from battle_last where uid in (?)', [$uids]); Db::sql('delete from battle_users where uid in (?)', [$uids]); Db::sql('delete from battle_act where uid1 in (?) or uid2 in (?)', [$uids, $uids]); Db::sql('delete from battle_stat where uid1 in (?) or uid2 in (?)', [$uids, $uids]); Db::sql('delete from bs_actions where uid in (?)', [$uids]); Db::sql('delete from bs_zv where uid in (?)', [$uids]); Db::sql('delete from building where uid in (?)', [$uids]); Db::sql('delete from complects_priem where uid in (?)', [$uids]); Db::sql('delete from dialog_act where uid in (?)', [$uids]); Db::sql('delete from dump where uid in (?)', [$uids]); Db::sql('delete from dungeon_actions where uid in (?)', [$uids]); Db::sql('delete from eff_users where uid in (?)', [$uids]); Db::sql('delete from ekr_sale where uid in (?)', [$uids]); Db::sql('delete from feerverks where uid in (?)', [$uids]); Db::sql('delete from fontan where uid in (?)', [$uids]); Db::sql('delete from fontan_hp where uid in (?)', [$uids]); Db::sql('delete from fontan_text where uid in (?)', [$uids]); Db::sql('delete from friends where user in (?) or friend in (?) or enemy in (?) or notinlist in (?) or ignor in (?) or login_ignor in (?) or user_ignor in (?)', [$uids, $uids, $uids, $uids, $uids, $logins, $logins]); Db::sql('delete from house where owner in (?)', [$uids]); Db::sql('delete from items_img where uid in (?)', [$uids]); Db::sql('delete from items_users where uid in (?)', [$uids]); Db::sql('delete from izlom_rating where uid in (?)', [$uids]); Db::sql('delete from laba_act where uid in (?)', [$uids]); Db::sql('delete from laba_itm where uid in (?)', [$uids]); Db::sql('delete from lastnames where uid in (?)', [$uids]); Db::sql('delete from logs_auth where uid in (?)', [$uids]); Db::sql('delete from loto_win where uid in (?)', [$uids]); Db::sql('delete from mults where uid in (?) or uid2 in (?)', [$uids, $uids]); Db::sql('delete from notepad where uid in (?)', [$uids]); Db::sql('delete from obraz where uid in (?) or login in (?)', [$uids, $logins]); Db::sql('delete from online where uid in (?)', [$uids]); Db::sql('delete from pirogi where uid in (?)', [$uids]); Db::sql('delete from reimage where uid in (?)', [$uids]); Db::sql('delete from rep where id in (?)', [$uids]); Db::sql('delete from repass where uid in (?)', [$uids]); Db::sql('delete from ruletka_coin where uid in (?)', [$uids]); Db::sql('delete from save_com where uid in (?)', [$uids]); Db::sql('delete from stats where id in (?)', [$uids]); Db::sql('delete from transfers where uid1 in (?) or uid2 in (?)', [$uids, $uids]); Db::sql('delete from users where id in (?)', [$uids]); Db::sql('delete from users_delo where uid in (?)', [$uids]); Db::sql('delete from users_animal where uid in (?)', [$uids]); Db::sql('delete from users_gifts where uid in (?)', [$uids]); Db::sql('delete from users_ico where uid in (?)', [$uids]); Db::sql('delete from users_reputation where user_id in (?)', [$uids]); Db::sql('delete from users_turnirs where uid in (?)', [$uids]); Db::sql('delete from users_twink where uid in (?)', [$uids]); Db::sql('delete from zayvki where creator in (?)', [$uids]); } //1. Очистка чата, остается чат только за последние 3 дня //Db::sql('delete from chat where time < unix_timestamp() - 86400 * 3'); //2. Очистка заявок в поединки Db::sql('delete from zayvki where start > 0 or cancel > 0 or time < unix_timestamp() - 86400'); //3. Очистка заявок в пещеры Db::sql('delete from dungeon_zv where `delete` > 0 or time < unix_timestamp() - 86400'); //4. Очистка походов $idsArr = Db::getColumn('select id from dungeon_now where time_start < unix_timestamp() - 86400 or time_finish > 0'); $idsStr = implode(',', $idsArr); Db::sql('delete from dungeon_actions where dn in (?)', [$idsStr]); Db::sql('delete from dungeon_bots where dn in (?)', [$idsStr]); Db::sql('delete from dungeon_items where dn in (?)', [$idsStr]); Db::sql('delete from dungeon_obj where dn in (?)', [$idsStr]); Db::sql('delete from dungeon_now where id in (?)', [$idsStr]); //5. Очистка монстров $botuids = []; $botlogins = []; $bots = Db::getRows('select users.id, login from users left join battle on users.battle = battle.id where `real` = 0 and battle.id = 0 and team_win >= 0 and not exists(select 1 from users where inUser = users.id) order by id'); foreach ($bots as $bot) { $botuids[] = $bot['id']; $botlogins[] = $bot['login']; } clearUsersFromDb($botuids, $botlogins); Db::sql('delete from stats where id not in (select id from users)'); Db::sql('delete from items_users where `delete` > time_create and `delete` > 0'); //6. Очистка личного дела //mysql_query('DELETE FROM `users_delo` WHERE `time` < "'.(time()-86400*30).'" LIMIT 1000');