Simplify overly complicated format selection template
This commit is contained in:
parent
d9ba01f017
commit
27439c7e14
2 changed files with 52 additions and 56 deletions
|
@ -13,6 +13,7 @@ use Alltube\Locale;
|
||||||
use Alltube\Middleware\CspMiddleware;
|
use Alltube\Middleware\CspMiddleware;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Slim\Http\StatusCode;
|
use Slim\Http\StatusCode;
|
||||||
|
use stdClass;
|
||||||
use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer;
|
use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
use Psr\Container\ContainerInterface;
|
use Psr\Container\ContainerInterface;
|
||||||
|
@ -175,6 +176,47 @@ class FrontController extends BaseController
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$formats = [];
|
||||||
|
$genericFormatsLabel = $this->localeManager->t('Generic formats');
|
||||||
|
$detailedFormatsLabel = $this->localeManager->t('Detailed formats');
|
||||||
|
|
||||||
|
foreach ($this->config->genericFormats as $id => $genericFormat) {
|
||||||
|
$formats[$genericFormatsLabel][$id] = $this->localeManager->t($genericFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var stdClass $format */
|
||||||
|
foreach ($this->video->getJson()->formats as $format) {
|
||||||
|
if ($this->config->stream || in_array($format->protocol, ['http', 'https'])) {
|
||||||
|
$formatParts = [
|
||||||
|
// File extension
|
||||||
|
$format->ext,
|
||||||
|
];
|
||||||
|
|
||||||
|
if (isset($format->width) || isset($format->height)) {
|
||||||
|
// Video dimensions
|
||||||
|
$formatParts[] = implode('x', array_filter([$format->width, $format->height]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($format->filesize)) {
|
||||||
|
// File size
|
||||||
|
$formatParts[] = round($format->filesize / 1000000, 2) . ' MB';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($format->format_note)) {
|
||||||
|
// Format name
|
||||||
|
$formatParts[] = $format->format_note;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($format->format_id)) {
|
||||||
|
// Format ID
|
||||||
|
$formatParts[] = '(' . $format->format_id . ')';
|
||||||
|
}
|
||||||
|
|
||||||
|
$formats[$detailedFormatsLabel][$format->format_id] = implode(' ', $formatParts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->view->render(
|
$this->view->render(
|
||||||
$response,
|
$response,
|
||||||
$template,
|
$template,
|
||||||
|
@ -184,6 +226,7 @@ class FrontController extends BaseController
|
||||||
'title' => $title,
|
'title' => $title,
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
'defaultFormat' => $this->defaultFormat,
|
'defaultFormat' => $this->defaultFormat,
|
||||||
|
'formats' => $formats
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -23,57 +23,13 @@
|
||||||
{/if}
|
{/if}
|
||||||
{if isset($video->formats) && count($video->formats) > 1}
|
{if isset($video->formats) && count($video->formats) > 1}
|
||||||
<h3><label for="format">{t}Available formats:{/t}</label></h3>
|
<h3><label for="format">{t}Available formats:{/t}</label></h3>
|
||||||
<select name="format" id="format" class="formats monospace">
|
{*
|
||||||
<optgroup label="{t}Generic formats{/t}">
|
To make the default generic formats translatable:
|
||||||
{foreach $config->genericFormats as $format => $name}
|
{t}Best{/t}
|
||||||
{*
|
{t}Remux best video with best audio{/t}
|
||||||
To make the default generic formats translatable:
|
{t}Worst{/t}
|
||||||
{t}Best{/t}
|
*}
|
||||||
{t}Remux best video with best audio{/t}
|
{html_options name='format' options=$formats selected=$defaultFormat id="format" class="formats monospace"}
|
||||||
{t}Worst{/t}
|
|
||||||
*}
|
|
||||||
<option value="{$format}">{t}{$name}{/t}</option>
|
|
||||||
{/foreach}
|
|
||||||
</optgroup>
|
|
||||||
<optgroup label="{t}Detailed formats{/t}" class="monospace">
|
|
||||||
{foreach $video->formats as $format}
|
|
||||||
{if $config->stream || $format->protocol|in_array:array('http', 'https')}
|
|
||||||
{strip}
|
|
||||||
<option value="{$format->format_id}">
|
|
||||||
{$format->ext}
|
|
||||||
{for $foo=1 to (5 - ($format->ext|strlen))}
|
|
||||||
|
|
||||||
{/for}
|
|
||||||
{if isset($format->width)}
|
|
||||||
{$format->width}x{$format->height}
|
|
||||||
{for $foo=1 to (10 - (("{$format->width}x{$format->height}")|strlen))}
|
|
||||||
|
|
||||||
{/for}
|
|
||||||
{else}
|
|
||||||
{for $foo=1 to 10}
|
|
||||||
|
|
||||||
{/for}
|
|
||||||
{/if}
|
|
||||||
{if isset($format->filesize)}
|
|
||||||
{($format->filesize/1000000)|round:2} MB
|
|
||||||
{for $foo=1 to (7 - (($format->filesize/1000000)|round:2|strlen))}
|
|
||||||
|
|
||||||
{/for}
|
|
||||||
{else}
|
|
||||||
{for $foo=1 to 10}
|
|
||||||
|
|
||||||
{/for}
|
|
||||||
{/if}
|
|
||||||
{if isset($format->format_note)}
|
|
||||||
{$format->format_note}
|
|
||||||
{/if}
|
|
||||||
({$format->format_id})
|
|
||||||
</option>
|
|
||||||
{/strip}
|
|
||||||
{/if}
|
|
||||||
{/foreach}
|
|
||||||
</optgroup>
|
|
||||||
</select>
|
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -86,11 +42,8 @@
|
||||||
{if $config->convertAdvanced}
|
{if $config->convertAdvanced}
|
||||||
<input type="checkbox" name="customConvert" id="customConvert"/>
|
<input type="checkbox" name="customConvert" id="customConvert"/>
|
||||||
<label for="customConvert">{t}Convert into a custom format:{/t}</label>
|
<label for="customConvert">{t}Convert into a custom format:{/t}</label>
|
||||||
<select title="{t}Custom format{/t}" name="customFormat" aria-label="{t}Format to convert to{/t}">
|
{html_options name='customFormat' values=$config->convertAdvancedFormats output=$config->convertAdvancedFormats
|
||||||
{foreach $config->convertAdvancedFormats as $format}
|
title="{t}Custom format{/t}" name="customFormat" aria-label="{t}Format to convert to{/t}"}
|
||||||
<option>{$format}</option>
|
|
||||||
{/foreach}
|
|
||||||
</select>
|
|
||||||
{t}with{/t}
|
{t}with{/t}
|
||||||
<label for="customBitrate" class="sr-only">{t}Bit rate{/t}</label>
|
<label for="customBitrate" class="sr-only">{t}Bit rate{/t}</label>
|
||||||
<input type="number" value="{$config->audioBitrate}" title="{t}Custom bitrate{/t}"
|
<input type="number" value="{$config->audioBitrate}" title="{t}Custom bitrate{/t}"
|
||||||
|
|
Loading…
Reference in a new issue