public function routeIndex() { $request = $this->getService()->getRequest(); $langs = Translator::getInstance()->getLangs(); foreach ($request->getLanguages() as $language) { $lang = strtolower(substr($language, 0, 2)); if (in_array($lang, $langs)) { return $this->getService()->returnResponseRedirect('./' . $lang . '/'); } } return $this->getService()->returnResponseRedirect('./en/'); }
/** * * @param string $accesToken * @return GwAccount */ public static function getInstance($accesToken) { $lang = Translator::getInstance()->getLang(); $client = SimpleClient::getInstance($lang); $account = new self($client, $accesToken); if (!$account->hasPermission(self::PERMISSION_ACCOUNT)) { throw new MissingPermissionException(self::PERMISSION_ACCOUNT); } if (!$account->hasPermission(self::PERMISSION_CHARACTERS)) { throw new MissingPermissionException(self::PERMISSION_CHARACTERS); } return $account; }
/** * * @param string $key * @param array $data * @return string */ public function trans($key, $data = []) { return Translator::getInstance()->trans($key, $data); }
/** * * @param string $key * @return string */ protected function trans($key) { return Translator::getInstance()->trans($key); }
<?php /* * This file is part of the Arnapou FileStore package. * * (c) Arnaud Buathier <*****@*****.**> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ include_once __DIR__ . '/../vendor/autoload.php'; Arnapou\GW2Tools\Service::getInstance(); use Arnapou\GW2Api\Core\RequestManager; use Arnapou\GW2Api\Model\Character; use Arnapou\GW2Tools\User; use Arnapou\GW2Tools\SimpleClient; use Arnapou\GW2Tools\Translator; /* * FORCE CACHE CHECKS */ foreach (Translator::getInstance()->getLangs() as $lang) { echo date('Y-m-d H:i:s') . ' ----- ' . $lang . " -----\n"; $simpleClient = SimpleClient::getInstance($lang, false); $simpleClient->getClientV2()->getRequestManager()->getEventListener()->bind(RequestManager::onRequest, function ($event) { echo date('Y-m-d H:i:s') . ' ' . round($event['time'], 3) . "s " . $event['uri'] . " \n"; }); foreach (['v2_colors', 'v2_currencies', 'v2_files', 'v2_items', 'v2_maps', 'v2_materials', 'v2_quaggans', 'v2_recipes', 'v2_skins', 'v2_specializations', 'v2_traits', 'v2_worlds'] as $api) { $ids = $simpleClient->{$api}(); $simpleClient->{$api}($ids); } }
/** * * @return array */ public function getSkinItems($skin_ids) { if (empty($skin_ids)) { return []; } $cache = MongoCache::getInstance(); $lang = Translator::getInstance()->getLang(); $collection = $cache->getCache()->getMongoCollection($lang . '_items'); $objects = []; foreach ($collection->find(['value.default_skin' => ['$in' => $skin_ids]]) as $doc) { if (!isset($objects[$doc['value']['default_skin']])) { $objects[$doc['value']['default_skin']] = $doc['value']['id']; } } $client = self::getInstance($lang); $client->v2_items(array_values($objects)); foreach ($objects as $skin_id => $item_id) { $objects[$skin_id] = new Item($client, $item_id); } return $objects; }
/** * * @return TwigEnvironment */ public function getTwig() { if (!isset($this->twigFactory)) { $this->getConnection(); $factory = TwigFactory::create($this); $factory->addPath(__DIR__ . '/twig'); $factory->addFilter(new \Twig_SimpleFilter('image', function ($url) { return image($url); })); $factory->addFilter(new \Twig_SimpleFilter('amount', function ($value) { return amount($value); })); $factory->addFilter(new \Twig_SimpleFilter('columns', function ($array, $n, $fill = true) { return chunk($array, ceil(count($array) / $n), $fill); })); $factory->addFilter(new \Twig_SimpleFilter('chunk', function ($array, $n, $fill = true) { return chunk($array, $n, $fill); })); $factory->addFilter(new \Twig_SimpleFilter('buffdescription', function ($item) { return buffdescription($item); })); $factory->addFilter(new \Twig_SimpleFilter('consumableduration', function ($item) { return consumableduration($item); })); $factory->addFilter(new \Twig_SimpleFilter('gameduration', function ($item) { return gameduration($item); })); $factory->addFilter(new \Twig_SimpleFilter('datediff', function ($date) { return datediff($date); })); $factory->addFilter(new \Twig_SimpleFilter('br2nl', function ($string) { return preg_replace('!<br(\\s*/)?>!si', "\n", $string); })); $factory->addFilter(new \Twig_SimpleFilter('gwlink', function ($item) { if ($item instanceof \Arnapou\GW2Api\Model\InventorySlot) { return gwlink_inventoryslot($item); } elseif ($item instanceof \Arnapou\GW2Api\Model\Item) { return gwlink_item($item); } elseif ($item instanceof \Arnapou\GW2Api\Model\Specialization) { return gwlink_specialization($item); } elseif ($item instanceof \Arnapou\GW2Api\Model\SpecializationTrait) { return gwlink_trait($item); } elseif ($item instanceof \Arnapou\GW2Api\Model\Skin) { return gwlink_skin($item); } return ''; })); $factory->addSimpleFilter('trans', function (\Twig_Environment $env, $context, $string, $params = [], $prefix = '') { if (isset($context['module'])) { return $context['module']->trans($prefix . $string, $params); } else { return Translator::getInstance()->trans($prefix . $string, $params); } }); $factory->addSimpleFilter('transarray', function (\Twig_Environment $env, $context, $array, $params = [], $prefix = '') { if (isset($context['module'])) { return array_map(function ($string) use($context, $prefix, $params) { return $context['module']->trans($prefix . $string, $params); }, $array); } else { return array_map(function ($string) use($prefix, $params) { return Translator::getInstance()->trans($prefix . $string, $params); }, $array); } }); $this->twigFactory = $factory; } return $this->twigFactory->getEnvironment(); }