diff --git a/lib/modules/transcripts/renderer.php b/lib/modules/transcripts/renderer.php index 64f49b93f..c82ad80af 100644 --- a/lib/modules/transcripts/renderer.php +++ b/lib/modules/transcripts/renderer.php @@ -100,29 +100,28 @@ public function as_webvtt() $contributors_map[$voice->voice] = Contributor::find_by_id($voice->contributor_id); } - $transcript = Transcript::get_transcript($this->episode->id); - $transcript = array_map(function ($t) use ($contributors_map) { - if (!$t->voice) { - return null; - } + $pretty_voice = function ($voice) use ($contributors_map) { + $contributor = $contributors_map[$voice]; + $voice_title = ($contributor && $contributor->getName()) ? $contributor->getName() : $voice; - $contributor = $contributors_map[$t->voice]; + if ($voice_title) { + return ""; + } - if (!$contributor) { - return null; + if ($voice) { + return ""; } - $voice_title = ($contributor && $contributor->getName()) ? $contributor->getName() : $t->voice; - $voice = $t->voice ? "" : ''; - - return sprintf( - "%s --> %s\n%s%s", - self::format_time($t->start), - self::format_time($t->end), - $voice, - $t->content - ); - }, $transcript); + return ''; + }; + + $transcript = array_map(fn ($entry) => sprintf( + "%s --> %s\n%s%s", + $entry['start'], + $entry['end'], + $pretty_voice($entry['voice']), + $entry['text'] + ), $this->get_data()); $transcript = array_filter($transcript);