public function index() { error_reporting(0); $this->content_view = 'home'; $this->data['announcements'] = Announcement::get_announcements(); $this->load->helper('twitch'); load_api_interface(); $result = json_decode(file_get_contents("https://api.twitch.tv/kraken/streams?game=StepMania&limit=4")); $this->data['streams'] = $result->streams; $this->data['recent_scores'] = User_score::get_recent_scores(); $this->data['new_songs'] = Ranked_file::get_recent_files(); $this->data['new_packs'] = Pack::get_recent_packs(); $this->data['online_users'] = User::get_online_users(); $this->data['leaderboards'] = Leaderboards_cache::get_all_lbs(); }
function regen_user_scores() { $this->data['subtitle'] = "Regen User Scores"; $scores = User_score::get_all_scores(); foreach ($scores as $score) { $max_dp_max = $score->total_dance_points; $max_dp_achieved = $score->marvelous_count * 2 + $score->perfect_count * 2 + $score->great_count * 1 + $score->boo_count * -4 + $score->miss_count * -8 + $score->ok_count * 6 + $score->mines_hit * -8; $max_dp_percent = $max_dp_achieved / $max_dp_max * 100; if ($max_dp_percent < 93) { $score->status = "below_aa"; $score->save(); } } $this->content_view = "admin/regen_user_scores"; }
public function view($id = null) { if (empty($id)) { redirect('charts'); } else { if (Ranked_file::count(array('conditions' => array('id = ?', $id))) == 0) { redirect('charts'); } else { error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE ^ E_WARNING); $file = Ranked_file::find($id); $pack = Pack::find($file->pack_id); $this->data['user_scores'] = User_score::get_scores_for_chart($id); $this->data['pack'] = $pack; $this->data['subtitle'] = $file->title; $this->_process_everything($file->raw_file, $file->rate); } } }
public function generate_cache() { set_time_limit(0); $overall_leaderboards = User_score::get_overall_leaderboard(); $this->data['overall_leaderboards'] = $overall_leaderboards; $lc = Leaderboards_cache::create(array('type' => 1, 'data' => base64_encode(json_encode($overall_leaderboards)))); $speed_leaderboards = User_score::get_speed_leaderboard(); $lc = Leaderboards_cache::create(array('type' => 2, 'data' => base64_encode(json_encode($speed_leaderboards)))); $jumpstream_leaderboards = User_score::get_jumpstream_leaderboard(); $lc = Leaderboards_cache::create(array('type' => 3, 'data' => base64_encode(json_encode($jumpstream_leaderboards)))); $jack_leaderboards = User_score::get_jack_leaderboard(); $lc = Leaderboards_cache::create(array('type' => 4, 'data' => base64_encode(json_encode($jack_leaderboards)))); $technical_leaderboards = User_score::get_technical_leaderboard(); $lc = Leaderboards_cache::create(array('type' => 5, 'data' => base64_encode(json_encode($technical_leaderboards)))); $stamina_leaderboards = User_score::get_stamina_leaderboard(); $lc = Leaderboards_cache::create(array('type' => 6, 'data' => base64_encode(json_encode($stamina_leaderboards)))); $old_caches = Leaderboards_cache::all(array('order' => 'id ASC', 'limit' => 6)); foreach ($old_caches as $oc) { $oc->delete(); } $this->content_view = "lc"; }
function get_mod_alert_count_pending_scores() { $ps_count = User_score::count(array('conditions' => 'status = "pending"')); return $ps_count; }
public static function get_stamina_leaderboard() { // For ease of editing later I'm not going to try to wiggle this into one query $users = User::all(); $return_array = array(); foreach ($users as $user) { $scores = User_score::get_scores_for_user_approved($user->id, "difficulty_score DESC", 'AND ranked_files.stamina_file = 1'); $top_sum = 0; $top_score = 0; foreach ($scores as $score) { $top_score = $score->difficulty_score; break; } $i = 0; $scores_to_use = 1; if ($top_score < 15) { $scores_to_use = 1; } else { if ($top_score < 20) { $scores_to_use = 1; } else { if ($top_score < 24) { $scores_to_use = 2; } else { if ($top_score < 28) { $scores_to_use = 2; } else { if ($top_score < 31) { $scores_to_use = 3; } else { $scores_to_use = 5; } } } } } foreach ($scores as $score) { $top_sum += $score->difficulty_score; $i++; if ($i == $scores_to_use) { break; } } $avg = $top_sum / $scores_to_use; $user_array = array("username" => $user->display_name, "profile_link" => "/profile/view/" . $user->username, "average_score" => $avg); if ($i == $scores_to_use && $avg != 0) { array_push($return_array, $user_array); } } // sort the array using an anonymous function array_sort_by_column($return_array, 'average_score'); return $return_array; }
public function view($username) { $username = urldecode($username); if (empty($username) || User::count(array('conditions' => array('username = ?', $username))) != 1) { redirect('home'); } $this_user = User::find_by_username($username); $this->data['user'] = $this_user; $this->data['subtitle'] = $this_user->display_name; $this->data['scores'] = User_score::get_scores_for_user($this_user->id); if (isset($_GET['recalc'])) { error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE ^ E_WARNING); set_time_limit(0); foreach ($this->data['scores'] as $score) { $chart = Ranked_file::find($score->file_id); $calculated_difficulty = $this->_process_everything($chart->raw_file, $chart->rate); $score->difficulty_score = $calculated_difficulty; } } $approved_scores = User_score::get_scores_for_user_approved($this_user->id, "difficulty_score DESC"); $overall_leaderboard = Leaderboards_cache::find(array('conditions' => array('type = ?', 1), 'order' => 'id desc')); $overall_leaderboard = (array) json_decode(base64_decode($overall_leaderboard->data)); $speed_leaderboard = Leaderboards_cache::find(array('conditions' => array('type = ?', 2), 'order' => 'id desc')); $speed_leaderboard = (array) json_decode(base64_decode($speed_leaderboard->data)); $jumpstream_leaderboard = Leaderboards_cache::find(array('conditions' => array('type = ?', 3), 'order' => 'id desc')); $jumpstream_leaderboard = (array) json_decode(base64_decode($jumpstream_leaderboard->data)); $jack_leaderboard = Leaderboards_cache::find(array('conditions' => array('type = ?', 4), 'order' => 'id desc')); $jack_leaderboard = (array) json_decode(base64_decode($jack_leaderboard->data)); $technical_leaderboard = Leaderboards_cache::find(array('conditions' => array('type = ?', 5), 'order' => 'id desc')); $technical_leaderboard = (array) json_decode(base64_decode($technical_leaderboard->data)); $stamina_leaderboard = Leaderboards_cache::find(array('conditions' => array('type = ?', 6), 'order' => 'id desc')); $stamina_leaderboard = (array) json_decode(base64_decode($stamina_leaderboard->data)); $i = 1; foreach ($overall_leaderboard as $row) { if ($row->username == $this_user->display_name) { $this->data['overall_rank'] = $i; $this->data['overall_score'] = $row->average_score; } $i++; } $i = 1; foreach ($speed_leaderboard as $row) { if ($row->username == $this_user->display_name) { $this->data['speed_rank'] = $i; $this->data['speed_score'] = $row->average_score; } $i++; } $i = 1; foreach ($jumpstream_leaderboard as $row) { if ($row->username == $this_user->display_name) { $this->data['jumpstream_rank'] = $i; $this->data['jumpstream_score'] = $row->average_score; } $i++; } $i = 1; foreach ($jack_leaderboard as $row) { if ($row->username == $this_user->display_name) { $this->data['jack_rank'] = $i; $this->data['jack_score'] = $row->average_score; } $i++; } $i = 1; foreach ($technical_leaderboard as $row) { if ($row->username == $this_user->display_name) { $this->data['technical_rank'] = $i; $this->data['technical_score'] = $row->average_score; } $i++; } $i = 1; foreach ($stamina_leaderboard as $row) { if ($row->username == $this_user->display_name) { $this->data['stamina_rank'] = $i; $this->data['stamina_score'] = $row->average_score; } $i++; } foreach ($approved_scores as $score) { $this->data['top_score'] = $score->difficulty_score; break; } $categories_required = 1; $individual_required = 1; if ($this->data['top_score'] < 15) { $categories_required = 1; $individual_required = 1; } else { if ($this->data['top_score'] < 20) { $categories_required = 2; $individual_required = 1; } else { if ($this->data['top_score'] < 24) { $categories_required = 2; $individual_required = 2; } else { if ($this->data['top_score'] < 28) { $categories_required = 3; $individual_required = 2; } else { if ($this->data['top_score'] < 31) { $categories_required = 3; $individual_required = 3; } else { $categories_required = 3; $individual_required = 5; } } } } } $this->data['categories_required'] = $categories_required; $this->data['individual_required'] = $individual_required; $this->content_view = "profiles/view"; }
public function remove($score_id = null) { $this->require_login(); if (!$score_id) { redirect('home'); } else { if (User_score::count(array('conditions' => array('id = ?', $score_id))) != 1) { redirect('home'); } else { $user_score = User_score::find($score_id); $write_mod_log = false; if ($user_score->user_id != $this->session->userdata('user_id')) { if ($this->session->userdata('user_level') < 2) { redirect('home'); } else { $write_mod_log = true; } } $this->data['user_score'] = $user_score; $song = Ranked_file::find($user_score->file_id); $this->data['song'] = $song; $user_score->status = "removed"; $user_score->save(); $scores_user = User::find($user_score->user_id); if ($write_mod_log) { $log_string = $this->session->userdata('username') . " (" . $this->session->userdata('display_name') . ") removed user score: " . $scores_user->username . " (" . $scores_user->display_name . ") " . $song->title . " " . number_format($song->rate, 2) . "x"; write_to_mod_log($log_string); } $this->content_view = "scores/removed"; } } }
<?php echo User_score::get_top_10_percentile();
function pending_scores($id = null, $status = null) { if (!empty($id) && !empty($status) && ($status == "pending" || $status == "below_aa" || $status == "approved" || $status == "rejected")) { $id = intval($id); $sf = User_score::find($id); $sf->status = $status; $sf->save(); } $this->data['subtitle'] = "Approve Pending Scores"; $this->data['scores'] = User_score::get_pending_scores(); $this->content_view = "mod/pending_scores"; }