<?php
require_once 'functions.php';
// Brak checkAuth() - plik musi być dostępny dla odtwarzacza!

$hash = $_GET['h'] ?? '';
$db = getDb();

if (!isset($db['shares'][$hash])) die('Błędny lub wygasły link.');

$share = $db['shares'][$hash];
if (time() > $share['expires']) die('Ten link tymczasowy wygasł (minęły 24h).');

$cfg = cfg();
$megaPath = rtrim($cfg['allowedFolders'][$share['folder']] . '/' . $share['path'], '/') . '/' . $share['file'];
$localPath = '/mnt/mega' . $megaPath;

if (!file_exists($localPath) || is_dir($localPath)) die('Plik usunięty lub przeniesiony.');

recordDownload($megaPath);

$encodedFileName = rawurlencode($share['file']);
$ext = strtolower(pathinfo($share['file'], PATHINFO_EXTENSION));

// Pomagamy odtwarzaczowi VLC rozpoznać strumień wideo
$mime = 'application/octet-stream';
if (in_array($ext, ['mkv', 'mp4', 'avi', 'webm'])) {
    $mime = 'video/x-matroska'; 
    if ($ext == 'mp4') $mime = 'video/mp4';
    if ($ext == 'avi') $mime = 'video/x-msvideo';
}

header('Content-Type: ' . $mime);

// Jeśli łączy się VLC, pozwalamy na płynne strumieniowanie (inline).
// W przeciwnym razie wymuszamy pobieranie jako załącznik.
if (stripos($_SERVER['HTTP_USER_AGENT'] ?? '', 'vlc') !== false) {
    header('Content-Disposition: inline; filename="' . $share['file'] . '"');
} else {
    header('Content-Disposition: attachment; filename="' . $share['file'] . '"; filename*=UTF-8\'\'' . $encodedFileName);
}

header("X-Sendfile: " . $localPath);
exit;
