private static function _getVotesOverTime($vars, $users = false) { $time = time(); $startDate = Lib\Url::GetInt('startDate', $time - 3600 * 24, $vars); // Default to the last 24 hours $endDate = Lib\Url::GetInt('endDate', $time, $vars); $bracketId = Lib\Url::GetInt('bracketId', null, $vars); $granularity = Lib\Url::GetInt('granularity', 2, $vars); $cacheKey = '_getVotesOverTime_' . implode('_', [$startDate, $endDate, $bracketId, $granularity, $users]); $retVal = Lib\Cache::Get($cacheKey); if (false === $retVal && $bracketId) { $selectCount = $users ? 'DISTINCT user_id' : '1'; $result = Lib\Db::Query('SELECT COUNT(' . $selectCount . ') AS total, DATE(FROM_UNIXTIME(vote_date)) AS date, HOUR(FROM_UNIXTIME(vote_date)) AS hour, (MINUTE(FROM_UNIXTIME(vote_date)) % :granularity) AS hour_fraction FROM votes WHERE bracket_id = :bracketId AND vote_date BETWEEN :start AND :end GROUP BY date, hour, hour_fraction ORDER BY date, hour, hour_fraction', [':granularity' => $granularity, ':bracketId' => $bracketId, ':start' => $startDate, ':end' => $endDate]); if ($result && $result->count) { $retVal = []; while ($row = Lib\Db::Fetch($result)) { $obj = new stdClass(); $obj->date = (int) $row->date; $obj->hour = (int) $row->hour; $obj->minutes = $row->hour_fraction == 0 ? 0 : 60 * ((int) $row->hour_fraction / $granularity); $obj->count = (int) $row->total; $retVal[] = $obj; } Lib\Cache::Set($cacheKey, $retVal, STATS_CACHE_DURATION); } } return $retVal; }
public static function render() { $query = Lib\Url::Get('q'); $bracketId = Lib\Url::GetInt('bracketId'); $out = Api\MalItem::getNameTypeahead($query, 'character'); if ($bracketId) { $out = array_merge($out, self::_getSimilarCharacters($bracketId, $query)); } // Standardize the output $out = self::_standardizeData($out); Lib\Display::renderJson($out); }
private static function _getBracketCharacters() { $retVal = null; $bracketId = Lib\Url::GetInt('bracketId', null); $count = Lib\Url::GetInt('count', null); if ($bracketId) { //If $count has a value, get random characters from the given bracket if ($count) { $bracket = \Api\Bracket::getById($bracketId); if ($bracket) { //3 levels of IFs. This is getting rediculous $retVal = \Api\Character::getRandomCharacters($bracket, $count); } } else { $retVal = \Api\Character::getByBracketId($bracketId); } } return $retVal; }
/** * Returns the list of times for the edit/create forms */ protected static function _generateAdvanceTimes($selectedTime = -1) { $retVal = [(object) ['label' => 'I want to manage this manually', 'value' => -1]]; $offset = Lib\Url::GetInt('utcOffset', 0, $_COOKIE); $offset /= 60; for ($i = 0; $i < 24; $i++) { // Offset for the user's timezone $hour = $i + $offset; if ($hour > 23) { $hour -= 24; } else { if ($hour < 0) { $hour += 24; } } // gross... if ($i === 0) { $label = '12am'; } else { if ($i < 12) { $label = $i . 'am'; } else { if ($i === 12) { $label = $i . 'pm'; } else { $label = $i - 12 . 'pm'; } } } $retVal[] = (object) ['label' => $label, 'value' => $hour, 'selected' => $hour == $selectedTime]; } return $retVal; }