fix: deletes media file when download deleted

This commit is contained in:
2025-07-15 23:53:19 -05:00
parent a126871af8
commit 5e722dcbc7
16 changed files with 180 additions and 6 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Base\Service;
use Aimeos\Map;
use App\Download\Framework\Entity\Download;
use Nihilarr\PTN;
use Psr\Log\LoggerInterface;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Finder\Finder;
@@ -21,6 +22,7 @@ class MediaFiles
private string $tvShowsPath;
private Filesystem $filesystem;
private LoggerInterface $logger;
public function __construct(
#[Autowire(param: 'media.base_path')]
@@ -33,12 +35,14 @@ class MediaFiles
string $tvShowsPath,
Filesystem $filesystem,
LoggerInterface $logger,
) {
$this->finder = new Finder();
$this->basePath = $basePath;
$this->moviesPath = $moviesPath;
$this->tvShowsPath = $tvShowsPath;
$this->filesystem = $filesystem;
$this->logger = $logger;
}
public function getPathByType(string $mediaType): string
@@ -220,4 +224,26 @@ class MediaFiles
{
$this->filesystem->chmod($filepath, $permissions);
}
/**
* @param string $filepath
* @return bool
* Returns true if file was deleted
* Returns false is file not found or was not deleted
*/
public function removeFile(string $filepath): bool
{
if (true === $this->filesystem->exists($filepath)) {
try {
$this->filesystem->remove($filepath);
return true;
} catch (\Throwable $exception) {
$this->logger->error($exception->getMessage(), ['file' => $filepath]);
return false;
}
}
$this->logger->warning('> [MediaFiles] Attempted to remove file, but it did not exist.', ['file' => $filepath]);
return false;
}
}