}); $app->get('/subtitles/{id:\\d{1,4}}', function ($id) { $subtitles = SubtitleCache::getByShip($id); if ($subtitles) { return $subtitles; } else { return response()->json(['result' => 'error', 'reason' => 'Subtitles not found']); } }); $app->get('/subtitles/detail', ['middleware' => 'cache', function () { $subtitlesRaw = Util::remember('subtitles/distinct', function () { return json_decode(Storage::disk('local')->get('subtitles/subtitles_distinct.json'), true); }); $subtitles = $subtitlesRaw['zh']; $subtitlesJP = $subtitlesRaw['jp']; $ships = json_decode(Util::getShips(), true); $results = []; foreach ($ships as $ship) { $id = $ship['id']; if (!array_key_exists($id, $subtitles) && !array_key_exists($id, $subtitlesJP)) { continue; } $result = []; for ($voiceId = 1; $voiceId < 54; $voiceId++) { if (array_key_exists($id, $subtitles) && array_key_exists($voiceId, $subtitles[$id])) { $item = []; $item['zh'] = $subtitles[$id][$voiceId]; if (array_key_exists($id, $subtitlesJP) && array_key_exists($voiceId, $subtitlesJP[$id])) { $item['jp'] = $subtitlesJP[$id][$voiceId]; } $wikid = $ship['wiki_id'];