mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-14 12:30:49 +08:00
API: upload sections list
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Auth\Permission;
|
||||
use App\Exceptions\InsufficientPermissionException;
|
||||
use App\Http\Middleware\Locale;
|
||||
use App\Models\Category;
|
||||
@@ -242,5 +243,20 @@ class SearchBoxRepository extends BaseRepository
|
||||
return Category::query()->whereIn('id', $idArr)->delete();
|
||||
}
|
||||
|
||||
public function listSections()
|
||||
{
|
||||
$modeIds = [SearchBox::getBrowseMode()];
|
||||
if (SearchBox::isSpecialEnabled() && Permission::canUploadToSpecialSection()) {
|
||||
$modeIds[] = SearchBox::getSpecialMode();
|
||||
}
|
||||
$searchBoxList = SearchBox::query()->with("categories")->find($modeIds);
|
||||
foreach ($searchBoxList as $searchBox) {
|
||||
if ($searchBox->showsubcat) {
|
||||
$searchBox->loadSubCategories();
|
||||
}
|
||||
}
|
||||
return $searchBoxList;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
72
app/Repositories/UploadRepository.php
Normal file
72
app/Repositories/UploadRepository.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
namespace App\Repositories;
|
||||
use App\Auth\Permission;
|
||||
use App\Exceptions\NexusException;
|
||||
use App\Models\Category;
|
||||
use App\Models\SearchBox;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
|
||||
class UploadRepository extends BaseRepository
|
||||
{
|
||||
public function upload(Request $request)
|
||||
{
|
||||
$user = $request->user();
|
||||
if ($user->uploadpos != 'yes') {
|
||||
throw new NexusException("user upload permission is disabled");
|
||||
}
|
||||
$rules = [
|
||||
'descr' => 'required',
|
||||
'type' => 'required',
|
||||
'name' => 'required',
|
||||
];
|
||||
$request->validate($rules);
|
||||
$category = Category::query()->firstOrFail($request->type);
|
||||
$mode = $category->mode;
|
||||
$anonymous = "no";
|
||||
$uploaderUsername = $user->username;
|
||||
if ($request->uplver == 'yes' && user_can('beanonymous')) {
|
||||
$anonymous = "yes";
|
||||
$uploaderUsername = "Anonymous";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private function getTorrentFile(Request $request): UploadedFile
|
||||
{
|
||||
$file = $request->file('file');
|
||||
if (empty($file)) {
|
||||
throw new NexusException("torrent file not found");
|
||||
}
|
||||
if (!$file->isValid()) {
|
||||
throw new NexusException("upload torrent file error");
|
||||
}
|
||||
return $file;
|
||||
}
|
||||
|
||||
private function getNfoContent(Request $request): string
|
||||
{
|
||||
$enableNfo = get_setting("main.enablenfo") == "yes";
|
||||
if (!$enableNfo) {
|
||||
return '';
|
||||
}
|
||||
$file = $request->file('nfo');
|
||||
if (empty($file)) {
|
||||
return '';
|
||||
}
|
||||
if (!$file->isValid()) {
|
||||
throw new NexusException("upload nfo file error");
|
||||
}
|
||||
$size = $file->getSize();
|
||||
if ($size == 0) {
|
||||
throw new NexusException("upload nfo file size is zero");
|
||||
}
|
||||
if ($size > 65535) {
|
||||
throw new NexusException("upload nfo file size is too large");
|
||||
}
|
||||
return str_replace("\x0d\x0d\x0a", "\x0d\x0a", $file->getContent());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user