public function postGamertagOwnership(OwnershipFormRequest $request) { $account = Account::where('seo', Text::seoGamertag($request->request->get('gamertag')))->first(); $this->user->account_id = $account->id; $this->user->save(); return \Redirect::action('UserCpController@getIndex')->with('flash_message', ['header' => 'Gamertag Verified!', 'close' => true, 'body' => 'You have proved ownership of <strong>' . $account->gamertag . '</strong>.']); }
public function checkForUpdate($gamertag = '') { if ($this->request->ajax() && !\Agent::isRobot()) { try { $account = Account::with('destiny.characters')->where('seo', Text::seoGamertag($gamertag))->firstOrFail(); // We don't care about non-panda members if (!$account->isPandaLove()) { $this->inactiveCounter = 1; } // check for 10 inactive checks if ($account->destiny->inactiveCounter >= $this->inactiveCounter) { return response()->json(['updated' => false, 'frozen' => true, 'last_update' => 'This account hasn\'t had new data in awhile. - <a href="' . URL::action('Destiny\\ProfileController@manualUpdate', [$account->seo]) . '" class="ui horizontal green label no_underline">Update Manually</a>']); } $char = $account->destiny->firstCharacter(); if ($char->updated_at->diffInMinutes() >= $this->refreshRateInMinutes) { // update this $this->dispatch(new UpdateAccount($account)); return response()->json(['updated' => true, 'frozen' => false, 'last_update' => $char->getLastUpdatedRelative()]); } return response()->json(['updated' => false, 'frozen' => false, 'last_update' => $char->getLastUpdatedRelative()]); } catch (ModelNotFoundException $e) { return response()->json(['error' => 'Gamertag not found']); } } }
/** * @param $gamertag * @return \Onyx\Account|void */ private function checkCacheForGamertag($gamertag) { $account = Account::where('seo', DestinyText::seoGamertag($gamertag))->first(); if ($account instanceof Account) { return $account; } return false; }
public static function buildCombinedStats($games) { // combined numbers (move out of controller in future) $combined = []; $gameCount = 0; $timeCount = 0; $revives = false; foreach ($games as $game) { // Check for Trials game, and check if any non Panda are playing $pandaId = 0; if ($game->isToO()) { $pandaId = $game->pvp->pandaId; } foreach ($game->players as $player) { if (!$player->completed) { continue; } if (isset($combined[$player->membershipId])) { $combined[$player->membershipId]['kills'] += $player->kills; $combined[$player->membershipId]['deaths'] += $player->deaths; $combined[$player->membershipId]['assists'] += $player->assists; $combined[$player->membershipId]['level'] += $player->level; $combined[$player->membershipId]['count'] += 1; $combined[$player->membershipId]['revives_given'] += $player->revives_given; $combined[$player->membershipId]['revives_taken'] += $player->revives_taken; if ($player->revives_given != 0) { $revives = true; } // find players max level $combined[$player->membershipId]['maxLevel'] = max($combined[$player->membershipId]['maxLevel'], $player->level); } else { $combined[$player->membershipId] = ['kills' => $player->kills, 'deaths' => $player->deaths, 'assists' => $player->assists, 'level' => $player->level, 'count' => 1, 'maxLevel' => 0, 'class' => $player->class, 'charId' => $player->characterId, 'revives_given' => $player->revives_given, 'revives_taken' => $player->revives_taken]; if (isset($player->account->gamertag)) { $extra = ['gamertag' => $player->account->gamertag, 'seo' => $player->account->seo, 'isPandaLove' => $player->account->isPandaLove(), 'isPandaGuest' => false]; // Check if this player is on PandaTeam, if so mark them as Panda if ($game->isToO()) { if (!$extra['isPandaLove'] && $player->team == $pandaId) { $extra['isPandaLove'] = true; $extra['isPandaGuest'] = true; } } $combined[$player->membershipId] = array_merge($combined[$player->membershipId], ['player' => $extra]); } } } $game->players = $game->players->each(function ($player) { $player->kd = $player->kdr(); })->sortByDesc('kd'); $gameCount++; $timeCount += $game->getRawSeconds(); } foreach ($combined as $key => $user) { $combined[$key]['avgLevel'] = round($user['level'] / $user['count'], 1); $combined[$key]['kdr'] = Game::kd($user['kills'], $user['deaths']); $combined[$key]['kadr'] = Game::kadr($user['kills'], $user['assists'], $user['deaths']); } $combined = new Collection($combined); $combined = $combined->sortByDesc('kdr'); return ['players' => $combined, 'stats' => ['games' => $gameCount, 'combinedGameTime' => Text::timeDuration($timeCount), 'revives' => $revives]]; }
/** * @param $gamertag * @return mixed */ private function getAccount($gamertag) { $lowercase = Text::seoGamertag($gamertag); return Account::where('seo', $lowercase)->first(); }
public function getMinutesPlayedLastSessionAttribute($value) { return Text::timeDuration($value * 60); }
public function getRaidTuesdayCountdown() { if (Carbon::now('America/Chicago')->isSameDay(new Carbon('Tuesday 4am CST', 'America/Chicago'))) { $raidtuesday = new Carbon('Tuesday 4am CST', 'America/Chicago'); } else { $raidtuesday = new Carbon('next Tuesday 4 AM', 'America/Chicago'); } if ($raidtuesday->lt(Carbon::now('America/Chicago'))) { return \Response::json(['error' => false, 'msg' => 'Today is Raid Tuesday! Get your raids in!']); } else { $countdown = $raidtuesday->diffInSeconds(Carbon::now('America/Chicago')); $countdown = Text::timeDuration($countdown); return \Response::json(['error' => false, 'msg' => $countdown]); } }
public function setGamertagAttribute($value) { $this->attributes['gamertag'] = $value; $this->attributes['seo'] = Text::seoGamertag($value); }
public function getTimeTookInSecondsAttribute($value) { return Text::timeDuration($value); }