Оптимизация вычитки листов из кэша для генерации qr-кодов

This commit is contained in:
2025-10-27 08:33:06 +08:00
parent 993625aa8f
commit c47481795b
2 changed files with 7 additions and 5 deletions

View File

@@ -55,8 +55,9 @@ class ApiController extends BasicController
*/
public function makeQrCode(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
{
$ini = ini()->load();
$code = $request->getAttribute('code');
$codes = array_keys(ini()->getPlaylists());
$codes = array_keys($ini);
if (!in_array($code, $codes, true)) {
return $response->withStatus(404);
}

View File

@@ -37,19 +37,20 @@ class WebController extends BasicController
public function home(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
{
$ini = ini()->load();
$keys = [];
$count = count($ini);
$pageSize = config('app.page_size');
if ($pageSize > 0) {
$pageCurrent = (int)($request->getAttributes()['page'] ?? $request->getQueryParams()['page'] ?? 1);
$pageCount = ceil($count / $pageSize);
$offset = max(0, ($pageCurrent - 1) * $pageSize);
$ini = array_slice($ini, $offset, $pageSize, true);
$playlists = ini()->getPlaylists(array_keys($ini));
} else {
$playlists = ini()->getPlaylists();
$keys = array_keys($ini);
}
$playlists = ini()->getPlaylists($keys);
return $this->view($request, $response, 'list.twig', [
'updatedAt' => ini()->updatedAt(),
'playlists' => $playlists,