Improve image scanning performance and thumbnail generation (#1655)

* Improve image scanning performance and thumbnail generation
* Add vips-tools to build image
* Add option to write generated thumbnails to disk
* Fallback to image if thumbnail generation fails

Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
InfiniteTF
2021-09-23 07:22:14 +02:00
committed by GitHub
parent 1e8a8efe3e
commit 9cb1eccadb
16 changed files with 234 additions and 35 deletions

View File

@@ -106,6 +106,7 @@ export const SettingsConfigurationPanel: React.FC = () => {
const [maxStreamingTranscodeSize, setMaxStreamingTranscodeSize] = useState<
GQL.StreamingResolutionEnum | undefined
>(undefined);
const [writeImageThumbnails, setWriteImageThumbnails] = useState(true);
const [username, setUsername] = useState<string | undefined>(undefined);
const [password, setPassword] = useState<string | undefined>(undefined);
const [maxSessionAge, setMaxSessionAge] = useState<number>(0);
@@ -157,6 +158,7 @@ export const SettingsConfigurationPanel: React.FC = () => {
previewPreset: (previewPreset as GQL.PreviewPreset) ?? undefined,
maxTranscodeSize,
maxStreamingTranscodeSize,
writeImageThumbnails,
username,
password,
maxSessionAge,
@@ -203,6 +205,7 @@ export const SettingsConfigurationPanel: React.FC = () => {
setMaxStreamingTranscodeSize(
conf.general.maxStreamingTranscodeSize ?? undefined
);
setWriteImageThumbnails(conf.general.writeImageThumbnails);
setUsername(conf.general.username);
setPassword(conf.general.password);
setMaxSessionAge(conf.general.maxSessionAge);
@@ -834,6 +837,30 @@ export const SettingsConfigurationPanel: React.FC = () => {
</Form.Group>
</Form.Group>
<hr />
<Form.Group>
<h4>{intl.formatMessage({ id: "images" })}</h4>
<Form.Group>
<Form.Check
id="write-image-thumbnails"
checked={writeImageThumbnails}
label={intl.formatMessage({
id: "config.ui.images.options.write_image_thumbnails.heading",
})}
onChange={() => setWriteImageThumbnails(!writeImageThumbnails)}
/>
<Form.Text className="text-muted">
{intl.formatMessage({
id: "config.ui.images.options.write_image_thumbnails.description",
})}
</Form.Text>
</Form.Group>
</Form.Group>
<hr />
<Form.Group>
<h4>{intl.formatMessage({ id: "performers" })}</h4>
<Form.Group>