posthandler.php: format

This commit is contained in:
Zankaria 2024-09-12 10:37:33 +02:00
parent f70d70d1db
commit cd00809040

View file

@ -1,52 +1,58 @@
<?php <?php
// Glue code for handling a Tinyboard post. // Glue code for handling a Tinyboard post.
// Portions of this file are derived from Tinyboard code. // Portions of this file are derived from Tinyboard code.
function postHandler($post) { function postHandler($post) {
global $board, $config; global $board, $config;
if ($post->has_file) foreach ($post->files as &$file) if ($file->extension == 'webm' || $file->extension == 'mp4') {
if ($post->has_file) {
foreach ($post->files as &$file) {
if ($file->extension == 'webm' || $file->extension == 'mp4') {
if ($config['webm']['use_ffmpeg']) { if ($config['webm']['use_ffmpeg']) {
require_once dirname(__FILE__) . '/ffmpeg.php'; require_once dirname(__FILE__) . '/ffmpeg.php';
$webminfo = get_webm_info($file->file_path); $webminfo = get_webm_info($file->file_path);
if (empty($webminfo['error'])) { if (empty($webminfo['error'])) {
$file->width = $webminfo['width']; $file->width = $webminfo['width'];
$file->height = $webminfo['height']; $file->height = $webminfo['height'];
if ($config['spoiler_images'] && isset($_POST['spoiler'])) { if ($config['spoiler_images'] && isset($_POST['spoiler'])) {
$file = webm_set_spoiler($file); $file = webm_set_spoiler($file);
} } else {
else {
$file = set_thumbnail_dimensions($post, $file); $file = set_thumbnail_dimensions($post, $file);
$tn_path = $board['dir'] . $config['dir']['thumb'] . $file->file_id . '.jpg'; $tn_path = $board['dir'] . $config['dir']['thumb'] . $file->file_id . '.jpg';
if (0 == make_webm_thumbnail($file->file_path, $tn_path, $file->thumbwidth, $file->thumbheight, $webminfo['duration'])) { if (0 == make_webm_thumbnail($file->file_path, $tn_path, $file->thumbwidth, $file->thumbheight, $webminfo['duration'])) {
$file->thumb = $file->file_id . '.jpg'; $file->thumb = $file->file_id . '.jpg';
} } else {
else {
$file->thumb = 'file'; $file->thumb = 'file';
} }
} }
} } else {
else {
return $webminfo['error']['msg']; return $webminfo['error']['msg'];
} }
} } else {
else {
require_once dirname(__FILE__) . '/videodata.php'; require_once dirname(__FILE__) . '/videodata.php';
$videoDetails = videoData($file->file_path); $videoDetails = videoData($file->file_path);
if (!isset($videoDetails['container']) || $videoDetails['container'] != 'webm') return "not a WebM file"; if (!isset($videoDetails['container']) || $videoDetails['container'] != 'webm') {
return "not a WebM file";
}
// Set thumbnail // Set thumbnail
$thumbName = $board['dir'] . $config['dir']['thumb'] . $file->file_id . '.webm'; $thumbName = $board['dir'] . $config['dir']['thumb'] . $file->file_id . '.webm';
if ($config['spoiler_images'] && isset($_POST['spoiler'])) { if ($config['spoiler_images'] && isset($_POST['spoiler'])) {
// Use spoiler thumbnail // Use spoiler thumbnail.
$file = webm_set_spoiler($file); $file = webm_set_spoiler($file);
} elseif (isset($videoDetails['frame']) && $thumbFile = fopen($thumbName, 'wb')) { } elseif (isset($videoDetails['frame']) && $thumbFile = fopen($thumbName, 'wb')) {
// Use single frame from video as pseudo-thumbnail // Use single frame from video as pseudo-thumbnail.
fwrite($thumbFile, $videoDetails['frame']); fwrite($thumbFile, $videoDetails['frame']);
fclose($thumbFile); fclose($thumbFile);
$file->thumb = $file->file_id . '.webm'; $file->thumb = $file->file_id . '.webm';
} else { } else {
// Fall back to file thumbnail // Fall back to file thumbnail.
$file->thumb = 'file'; $file->thumb = 'file';
} }
unset($videoDetails['frame']); unset($videoDetails['frame']);
// Set width and height // Set width and height
if (isset($videoDetails['width']) && isset($videoDetails['height'])) { if (isset($videoDetails['width']) && isset($videoDetails['height'])) {
$file->width = $videoDetails['width']; $file->width = $videoDetails['width'];
@ -58,9 +64,12 @@ function postHandler($post) {
} }
} }
} }
}
}
function set_thumbnail_dimensions($post, $file) { function set_thumbnail_dimensions($post, $file) {
global $board, $config; global $config;
$tn_dimensions = array();
$tn_maxw = $post->op ? $config['thumb_op_width'] : $config['thumb_width']; $tn_maxw = $post->op ? $config['thumb_op_width'] : $config['thumb_width'];
$tn_maxh = $post->op ? $config['thumb_op_height'] : $config['thumb_height']; $tn_maxh = $post->op ? $config['thumb_op_height'] : $config['thumb_height'];
if ($file->width > $tn_maxw || $file->height > $tn_maxh) { if ($file->width > $tn_maxw || $file->height > $tn_maxh) {
@ -72,8 +81,10 @@ function set_thumbnail_dimensions($post,$file) {
} }
return $file; return $file;
} }
function webm_set_spoiler($file) { function webm_set_spoiler($file) {
global $board, $config; global $config;
$file->thumb = 'spoiler'; $file->thumb = 'spoiler';
$size = @getimagesize($config['spoiler_image']); $size = @getimagesize($config['spoiler_image']);
$file->thumbwidth = $size[0]; $file->thumbwidth = $size[0];