mirror of
https://codeberg.org/demostf/api.git
synced 2026-06-03 18:04:08 +02:00
Add php-cs-fixer
This commit is contained in:
parent
e00e6ece5f
commit
309ae17036
54 changed files with 4900 additions and 4106 deletions
|
|
@ -13,97 +13,98 @@ use Doctrine\DBAL\Connection;
|
|||
use RandomLib\Generator;
|
||||
|
||||
class UploadProvider extends BaseProvider {
|
||||
/** @var Generator */
|
||||
private $generator;
|
||||
/** @var HeaderParser */
|
||||
private $headerParser;
|
||||
/** @var Parser */
|
||||
private $parser;
|
||||
/** @var DemoStore */
|
||||
private $store;
|
||||
/** @var UserProvider */
|
||||
private $userProvider;
|
||||
/** @var DemoProvider */
|
||||
private $demoProvider;
|
||||
/** @var DemoSaver */
|
||||
private $demoSaver;
|
||||
private $baseUrl;
|
||||
/** @var Generator */
|
||||
private $generator;
|
||||
/** @var HeaderParser */
|
||||
private $headerParser;
|
||||
/** @var Parser */
|
||||
private $parser;
|
||||
/** @var DemoStore */
|
||||
private $store;
|
||||
/** @var UserProvider */
|
||||
private $userProvider;
|
||||
/** @var DemoProvider */
|
||||
private $demoProvider;
|
||||
/** @var DemoSaver */
|
||||
private $demoSaver;
|
||||
private $baseUrl;
|
||||
|
||||
public function __construct(Connection $db,
|
||||
string $baseUrl,
|
||||
HeaderParser $headerParser,
|
||||
Parser $parser,
|
||||
DemoStore $store,
|
||||
UserProvider $userProvider,
|
||||
DemoProvider $demoProvider,
|
||||
DemoSaver $demoSaver
|
||||
) {
|
||||
parent::__construct($db);
|
||||
$this->baseUrl = $baseUrl;
|
||||
$this->headerParser = $headerParser;
|
||||
$this->parser = $parser;
|
||||
$this->store = $store;
|
||||
$this->userProvider = $userProvider;
|
||||
$this->demoProvider = $demoProvider;
|
||||
$this->demoSaver = $demoSaver;
|
||||
}
|
||||
public function __construct(
|
||||
Connection $db,
|
||||
string $baseUrl,
|
||||
HeaderParser $headerParser,
|
||||
Parser $parser,
|
||||
DemoStore $store,
|
||||
UserProvider $userProvider,
|
||||
DemoProvider $demoProvider,
|
||||
DemoSaver $demoSaver
|
||||
) {
|
||||
parent::__construct($db);
|
||||
$this->baseUrl = $baseUrl;
|
||||
$this->headerParser = $headerParser;
|
||||
$this->parser = $parser;
|
||||
$this->store = $store;
|
||||
$this->userProvider = $userProvider;
|
||||
$this->demoProvider = $demoProvider;
|
||||
$this->demoSaver = $demoSaver;
|
||||
}
|
||||
|
||||
public function upload(string $key, string $red, string $blu, string $name, string $demoFile): string {
|
||||
$user = $this->userProvider->byKey($key);
|
||||
if (!$user) {
|
||||
return 'Invalid key';
|
||||
}
|
||||
public function upload(string $key, string $red, string $blu, string $name, string $demoFile): string {
|
||||
$user = $this->userProvider->byKey($key);
|
||||
if (!$user) {
|
||||
return 'Invalid key';
|
||||
}
|
||||
|
||||
$hash = hash_file('md5', $demoFile);
|
||||
$hash = hash_file('md5', $demoFile);
|
||||
|
||||
$existingDemo = $this->demoProvider->demoIdByHash($hash);
|
||||
if ($existingDemo) {
|
||||
return 'STV available at: ' . $this->baseUrl . '/' . $existingDemo;
|
||||
}
|
||||
$existingDemo = $this->demoProvider->demoIdByHash($hash);
|
||||
if ($existingDemo) {
|
||||
return 'STV available at: ' . $this->baseUrl . '/' . $existingDemo;
|
||||
}
|
||||
|
||||
$header = $this->headerParser->parseHeader($demoFile);
|
||||
$error = $this->validateHeader(filesize($demoFile), $header);
|
||||
if ($error) {
|
||||
return $error;
|
||||
}
|
||||
$header = $this->headerParser->parseHeader($demoFile);
|
||||
$error = $this->validateHeader(filesize($demoFile), $header);
|
||||
if ($error) {
|
||||
return $error;
|
||||
}
|
||||
|
||||
$parsed = $this->parser->analyse($demoFile);
|
||||
$parsed = $this->parser->analyse($demoFile);
|
||||
|
||||
$error = $this->validateParsed($header, $parsed);
|
||||
if ($error) {
|
||||
return $error;
|
||||
}
|
||||
$error = $this->validateParsed($header, $parsed);
|
||||
if ($error) {
|
||||
return $error;
|
||||
}
|
||||
|
||||
$storedDemo = $this->store->store($demoFile, $hash . '_' . $name);
|
||||
$upload = new Upload($name, $red, $blu, $user->getId(), $hash);
|
||||
$storedDemo = $this->store->store($demoFile, $hash . '_' . $name);
|
||||
$upload = new Upload($name, $red, $blu, $user->getId(), $hash);
|
||||
|
||||
$id = $this->demoSaver->saveDemo($parsed, $header, $storedDemo, $upload);
|
||||
$id = $this->demoSaver->saveDemo($parsed, $header, $storedDemo, $upload);
|
||||
|
||||
return 'STV available at: ' . $this->baseUrl . '/' . $id;
|
||||
}
|
||||
return 'STV available at: ' . $this->baseUrl . '/' . $id;
|
||||
}
|
||||
|
||||
public function validateHeader(int $size, Header $header) {
|
||||
if ($size < 1024) {
|
||||
return 'Demos needs to be at least 1KB is size';
|
||||
}
|
||||
public function validateHeader(int $size, Header $header) {
|
||||
if ($size < 1024) {
|
||||
return 'Demos needs to be at least 1KB is size';
|
||||
}
|
||||
|
||||
if ($size > 100 * 1024 * 1024) {
|
||||
return 'Demos cant be more than 100MB in size';
|
||||
}
|
||||
if ($size > 100 * 1024 * 1024) {
|
||||
return 'Demos cant be more than 100MB in size';
|
||||
}
|
||||
|
||||
if ($header->getDuration() > (60 * 60)) {
|
||||
return 'Demos cant be longer than one hour';
|
||||
}
|
||||
if ($header->getDuration() > (60 * 60)) {
|
||||
return 'Demos cant be longer than one hour';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function validateParsed(Header $header, ParsedDemo $parsedDemo) {
|
||||
$rounds = $parsedDemo->getRedScore() + $parsedDemo->getBlueScore();
|
||||
if ($rounds === 0 && $header->getDuration() < (5 * 60)) {
|
||||
return 'Demos must be at least 5 minutes long';
|
||||
}
|
||||
public function validateParsed(Header $header, ParsedDemo $parsedDemo) {
|
||||
$rounds = $parsedDemo->getRedScore() + $parsedDemo->getBlueScore();
|
||||
if ($rounds === 0 && $header->getDuration() < (5 * 60)) {
|
||||
return 'Demos must be at least 5 minutes long';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue