- Implemented across bootstrap.php, chat frontend, and dashboard:
Per-tier audio bitrate: Free 64, Plus 96, Pro 128 kbps. Configurable text/voice reply threads and depth. Registration/login-only honeypot and internal CAPTCHA. Optional Google reCAPTCHA v2/v3 with server verification. Archive/export support for replies and bitrate. Dashboard controls for all settings. Verified JavaScript, JSON, SQLite migrations, desktop/mobile UI, and browser console. Native PHP lint was unavailable because PHP is not installed. Google implementation follows Siteverify and reCAPTCHA v3.
This commit is contained in:
@@ -72,14 +72,16 @@ function runVoiceTranscodeCommand(array $command, int $timeoutSeconds): array {
|
||||
function transcodeVoiceRecording(
|
||||
string $sourcePath,
|
||||
string $sourceFilename,
|
||||
string $sourceMime
|
||||
string $sourceMime,
|
||||
?int $bitrateOverride = null
|
||||
): array {
|
||||
if (!getConfigVal('voice.transcoding.enabled', false)) {
|
||||
return ['filename' => $sourceFilename, 'mime' => $sourceMime, 'transcoded' => false];
|
||||
}
|
||||
|
||||
$profile = voiceTranscodingProfile();
|
||||
$bitrate = max(48, min(320, (int)getConfigVal('voice.transcoding.audio_bitrate_kbps', 128)));
|
||||
$bitrate = max(48, min(320, $bitrateOverride
|
||||
?? (int)getConfigVal('voice.transcoding.audio_bitrate_kbps', 128)));
|
||||
$timeout = max(5, min(300, (int)getConfigVal('voice.transcoding.timeout_seconds', 45)));
|
||||
$fallback = (bool)getConfigVal('voice.transcoding.fallback_to_source', true);
|
||||
$token = pathinfo($sourceFilename, PATHINFO_FILENAME);
|
||||
|
||||
Reference in New Issue
Block a user