mirror of
https://github.com/YGGverse/YGGtracker.git
synced 2025-01-22 12:44:25 +00:00
prevend duplicates upload by md5 file check #11
This commit is contained in:
parent
bd772f87d1
commit
1f7d8d0810
@ -257,6 +257,12 @@ class TorrentController extends AbstractController
|
||||
$form['torrent']['error'][] = $translator->trans('Torrent file out of size limit');
|
||||
}
|
||||
|
||||
//// Check for duplicates
|
||||
if ($torrentService->findTorrentByMd5File(md5_file($file->getPathName())))
|
||||
{
|
||||
$form['torrent']['error'][] = $translator->trans('Torrent file already exists');
|
||||
}
|
||||
|
||||
//// Validate torrent format
|
||||
if (!$torrentService->readTorrentFileByFilepath($file->getPathName()))
|
||||
{
|
||||
|
@ -28,6 +28,9 @@ class Torrent
|
||||
#[ORM\Column]
|
||||
private ?bool $approved = null;
|
||||
|
||||
#[ORM\Column(length: 32)]
|
||||
private ?string $md5file = null;
|
||||
|
||||
#[ORM\Column(type: Types::TEXT, nullable: true)]
|
||||
private ?string $keywords = null;
|
||||
|
||||
@ -88,6 +91,18 @@ class Torrent
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getMd5file(): ?string
|
||||
{
|
||||
return $this->md5file;
|
||||
}
|
||||
|
||||
public function setMd5file(string $md5file): static
|
||||
{
|
||||
$this->md5file = $md5file;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getKeywords(): ?string
|
||||
{
|
||||
return $this->keywords;
|
||||
|
@ -209,6 +209,7 @@ class TorrentService
|
||||
$torrent = $this->addTorrent(
|
||||
$userId,
|
||||
$added,
|
||||
md5_file($filepath),
|
||||
$this->generateTorrentKeywordsByTorrentFilepath(
|
||||
$filepath
|
||||
),
|
||||
@ -256,6 +257,7 @@ class TorrentService
|
||||
public function addTorrent(
|
||||
int $userId,
|
||||
int $added,
|
||||
string $md5file,
|
||||
string $keywords,
|
||||
bool $approved
|
||||
): ?Torrent
|
||||
@ -264,6 +266,7 @@ class TorrentService
|
||||
|
||||
$torrent->setUserId($userId);
|
||||
$torrent->setAdded($added);
|
||||
$torrent->setMd5File($md5file);
|
||||
$torrent->setKeywords($keywords);
|
||||
$torrent->setApproved($approved);
|
||||
|
||||
@ -294,6 +297,17 @@ class TorrentService
|
||||
);
|
||||
}
|
||||
|
||||
public function findTorrentByMd5File(string $md5file) : ?Torrent
|
||||
{
|
||||
return $this->entityManagerInterface
|
||||
->getRepository(Torrent::class)
|
||||
->findOneBy(
|
||||
[
|
||||
'md5file' => $md5file
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function setTorrentsApprovedByUserId(
|
||||
int $userId,
|
||||
bool $value
|
||||
|
Loading…
x
Reference in New Issue
Block a user