mirror of
https://github.com/BillyOutlast/UNIT3D.git
synced 2026-02-04 03:01:20 +01:00
add: spell check ci
Just an initial portion for now fixing incorrect text and preventing future incorrect text. Eventually, I'd like to fix everything still listed under "ignoredWords" in cspell.json.
This commit is contained in:
12
.cspell/bittorrent.txt
Normal file
12
.cspell/bittorrent.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
announce
|
||||
bdecode
|
||||
bencode
|
||||
btih
|
||||
infohash
|
||||
leecher
|
||||
leechers
|
||||
numwant
|
||||
peerlist
|
||||
seedbox
|
||||
seedboxes
|
||||
seeders
|
||||
12
.cspell/blade.txt
Normal file
12
.cspell/blade.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
endcomponent
|
||||
enderror
|
||||
endfor
|
||||
endforeach
|
||||
endforelse
|
||||
endisset
|
||||
endphp
|
||||
endsection
|
||||
endslot
|
||||
endswitch
|
||||
forelse
|
||||
isset
|
||||
16
.cspell/brands.txt
Normal file
16
.cspell/brands.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
authy
|
||||
bdinfo
|
||||
bitwarden
|
||||
gnutella
|
||||
igdb
|
||||
imdb
|
||||
jackett
|
||||
kazaa
|
||||
limewire
|
||||
mal
|
||||
mediainfo
|
||||
phpstorm
|
||||
shareaza
|
||||
tmdb
|
||||
tvdb
|
||||
tvrage
|
||||
34
.cspell/dependencies.txt
Normal file
34
.cspell/dependencies.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
alpinejs
|
||||
assada
|
||||
axios
|
||||
axllent
|
||||
beanstalkd
|
||||
commonmark
|
||||
gabrielelana
|
||||
getmeili
|
||||
imagick
|
||||
imgbb
|
||||
joypixels
|
||||
laravel
|
||||
linkify
|
||||
livewire
|
||||
mailgun
|
||||
mailpit
|
||||
meilisearch
|
||||
papertrail
|
||||
phpredis
|
||||
phpstan
|
||||
phpunit
|
||||
polycast
|
||||
purgecss
|
||||
reichel
|
||||
ryoluo
|
||||
spatie
|
||||
stelmakh
|
||||
sweetalert
|
||||
symfony
|
||||
theodorejb
|
||||
typesense
|
||||
vite
|
||||
voku
|
||||
zxcvbn
|
||||
6
.cspell/dependency_terms.txt
Normal file
6
.cspell/dependency_terms.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
asciify
|
||||
dontBackupDatabases
|
||||
dontBackupFilesystem
|
||||
htmlify
|
||||
lexify
|
||||
swal
|
||||
27
.cspell/html.txt
Normal file
27
.cspell/html.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
autocorrect
|
||||
autofocus
|
||||
backref
|
||||
contentlength
|
||||
datalist
|
||||
describedby
|
||||
evenodd
|
||||
formaction
|
||||
formmethod
|
||||
formnovalidate
|
||||
inputmode
|
||||
lightcoral
|
||||
maxlength
|
||||
minmax
|
||||
nbsp
|
||||
noopener
|
||||
noreferrer
|
||||
nowrap
|
||||
progressbar
|
||||
rowgroup
|
||||
rowspan
|
||||
stroke-linejoin
|
||||
tabindex
|
||||
valuemax
|
||||
valuemin
|
||||
valuenow
|
||||
xlink
|
||||
6
.cspell/irc.txt
Normal file
6
.cspell/irc.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
joinchannel
|
||||
nickserv
|
||||
nickservpass
|
||||
privmsg
|
||||
realname
|
||||
servername
|
||||
22
.cspell/laravel.txt
Normal file
22
.cspell/laravel.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
arrayable
|
||||
assertdontseetext
|
||||
dispatchable
|
||||
doesntcontain
|
||||
doesntexist
|
||||
dontbroadcasttocurrentuser
|
||||
dontflash
|
||||
dontreport
|
||||
ehlo
|
||||
encryptable
|
||||
encrypter
|
||||
mimetypes
|
||||
mysql
|
||||
ordoesnthave
|
||||
pgsql
|
||||
queueable
|
||||
sasl
|
||||
sslmode
|
||||
sqlite
|
||||
sqlsrv
|
||||
stringable
|
||||
wheredoesnthave
|
||||
8
.cspell/mysql.txt
Normal file
8
.cspell/mysql.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
arrayagg
|
||||
from_unixtime
|
||||
inet6_ntoa
|
||||
innodb
|
||||
mysqld
|
||||
mysqldump
|
||||
timestampadd
|
||||
timestampdiff
|
||||
7
.cspell/people.txt
Normal file
7
.cspell/people.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
hdvinnie
|
||||
rhilip
|
||||
roardom
|
||||
sindre
|
||||
sindresorhus
|
||||
sorhus
|
||||
vinnie
|
||||
10
.cspell/php.txt
Normal file
10
.cspell/php.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
autoload
|
||||
autoloaded
|
||||
autoloading
|
||||
bcmath
|
||||
classmap
|
||||
fastcgi
|
||||
igbinary
|
||||
mbstring
|
||||
opcache
|
||||
phar
|
||||
4
.cspell/php_constants.txt
Normal file
4
.cspell/php_constants.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
ENT_NOQUOTES
|
||||
PATHINFO_BASENAME
|
||||
PREG_OFFSET_CAPTURE
|
||||
PREG_SET_ORDER
|
||||
45
.cspell/php_functions.txt
Normal file
45
.cspell/php_functions.txt
Normal file
@@ -0,0 +1,45 @@
|
||||
addslashes
|
||||
closedir
|
||||
ctype_digit
|
||||
ctype_print
|
||||
ctype_xdigit
|
||||
fclose
|
||||
fgets
|
||||
fileperms
|
||||
fpassthru
|
||||
fsockopen
|
||||
fwrite
|
||||
getcwd
|
||||
gethostbyaddr
|
||||
htmlspecialchars
|
||||
inet_ntop
|
||||
inet_pton
|
||||
intdiv
|
||||
intval
|
||||
isset
|
||||
ksort
|
||||
ltrim
|
||||
microtime
|
||||
opendir
|
||||
pathinfo
|
||||
preg_match
|
||||
preg_match_all
|
||||
preg_quote
|
||||
preg_replace
|
||||
preg_replace_callback
|
||||
preg_split
|
||||
rawurlencode
|
||||
rtrim
|
||||
scandir
|
||||
strcasecmp
|
||||
strpos
|
||||
strrchr
|
||||
strspn
|
||||
strtolower
|
||||
strtotime
|
||||
strtoupper
|
||||
sys_getloadavg
|
||||
uniqid
|
||||
unserialize
|
||||
urldecode
|
||||
usleep
|
||||
6
.cspell/redis.txt
Normal file
6
.cspell/redis.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
llen
|
||||
lpop
|
||||
lpush
|
||||
rpush
|
||||
sadd
|
||||
srandmember
|
||||
19
.github/workflows/spellcheck.yml
vendored
Normal file
19
.github/workflows/spellcheck.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
name: Check Spelling
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
spellcheck:
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system:
|
||||
- ubuntu-22.04
|
||||
name: ${{ matrix.operating-system }}
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Run CSpell
|
||||
uses: streetsidesoftware/cspell-action@v6
|
||||
with:
|
||||
incremental_files_only: false
|
||||
@@ -1,6 +1,6 @@
|
||||
# Contributing
|
||||
|
||||
Contributions are **welcome**. Please make all pull requests agaist the development branch (currently 8.x.x) and NOT master which is only for releases.
|
||||
Contributions are **welcome**. Please make all pull requests against the development branch (currently 8.x.x) and NOT master which is only for releases.
|
||||
|
||||
We accept contributions via Pull Requests on [Github](https://github.com/HDInnovations/UNIT3D).
|
||||
|
||||
@@ -104,7 +104,7 @@ Any new pages should use the existing component styles unless a new block, eleme
|
||||
|
||||
## Other
|
||||
|
||||
- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date.
|
||||
- **Document any change in behavior** - Make sure the `README.md` and any other relevant documentation are kept up-to-date.
|
||||
|
||||
- **Create feature branches** - Don't ask us to pull from your master branch.
|
||||
|
||||
|
||||
@@ -96,6 +96,6 @@ class AutoDeactivateWarning extends Command
|
||||
}
|
||||
}, 'user_id');
|
||||
|
||||
$this->comment('Automated Warning Deativation Command Complete');
|
||||
$this->comment('Automated Warning Deactivation Command Complete');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ class AutoRecycleClaimedTorrentRequests extends Command
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Recycle Torrent Requests That Wwere Claimed But Not Filled Within 7 Days.';
|
||||
protected $description = 'Recycle Torrent Requests That Were Claimed But Not Filled Within 7 Days.';
|
||||
|
||||
/**
|
||||
* AutoRecycleClaimedTorrentRequests Constructor.
|
||||
|
||||
@@ -36,7 +36,7 @@ class FetchMeta extends Command
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Fetchs Meta Data For New System On Preexxsisting Torrents';
|
||||
protected $description = 'Fetches Meta Data For New System On Preexisting Torrents';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
|
||||
@@ -126,7 +126,7 @@ class GitUpdater extends Command
|
||||
|
||||
$this->backup($paths);
|
||||
|
||||
$this->header('Reseting Repository');
|
||||
$this->header('Resetting Repository');
|
||||
|
||||
$this->commands([
|
||||
'git fetch origin',
|
||||
|
||||
@@ -21,28 +21,28 @@ use ZipArchive;
|
||||
class BackupEncryption
|
||||
{
|
||||
/**
|
||||
* Default encryption contants.
|
||||
* Default encryption constants.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
final public const ENCRYPTION_DEFAULT = ZipArchive::EM_AES_128;
|
||||
|
||||
/**
|
||||
* AES-128 encryption contants.
|
||||
* AES-128 encryption constants.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
final public const ENCRYPTION_WINZIP_AES_128 = ZipArchive::EM_AES_128;
|
||||
|
||||
/**
|
||||
* AES-192 encryption contants.
|
||||
* AES-192 encryption constants.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
final public const ENCRYPTION_WINZIP_AES_192 = ZipArchive::EM_AES_192;
|
||||
|
||||
/**
|
||||
* AES-256 encryption contants.
|
||||
* AES-256 encryption constants.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
|
||||
@@ -175,7 +175,7 @@ class Bencode
|
||||
|
||||
if ($isDict) {
|
||||
$ret = 'd';
|
||||
// this is required by the specs, and BitTornado actualy chokes on unsorted dictionaries
|
||||
// this is required by the specs, and BitTornado actually chokes on unsorted dictionaries
|
||||
ksort($d, SORT_STRING);
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ class Bencode
|
||||
$size = 0;
|
||||
$count = 0;
|
||||
|
||||
// Multifile
|
||||
// Multi-file
|
||||
if (isset($t['info']['files']) && \is_array($t['info']['files'])) {
|
||||
foreach ($t['info']['files'] as $file) {
|
||||
$count++;
|
||||
|
||||
@@ -129,6 +129,7 @@ if (!\function_exists('rating_color')) {
|
||||
if (!\function_exists('language_flag')) {
|
||||
function language_flag(?string $language): ?string
|
||||
{
|
||||
// cspell:words Bokmal, Limburgish, Sinhala,
|
||||
$flag = match ($language) {
|
||||
'English', 'English (US)' => 'us',
|
||||
'English (GB)' => 'gb',
|
||||
@@ -145,7 +146,7 @@ if (!\function_exists('language_flag')) {
|
||||
'Bosnian', 'Bosnian (BA)' => 'ba',
|
||||
'Bulgarian', 'Bulgarian (BG)' => 'bg',
|
||||
'Burmese' => 'mm',
|
||||
'Chinese', 'Mandarin', 'Mandarin (Hans)', 'Mandarin (Hant)', 'Cantonese', 'Cantonese (Hant)', 'Chinese (Simplied)', 'Chinese (Traditional)', 'Chinese (Simplified)', 'Chinese-yue-Hant', 'Chinese-cmn-Hans', 'Chinese-cmn-Hant' => 'cn',
|
||||
'Chinese', 'Mandarin', 'Mandarin (Hans)', 'Mandarin (Hant)', 'Cantonese', 'Cantonese (Hant)', /* cspell:disable */ 'Chinese (Simplied)' /* cspell:enable */, 'Chinese (Traditional)', 'Chinese (Simplified)', 'Chinese-yue-Hant', 'Chinese-cmn-Hans', 'Chinese-cmn-Hant' => 'cn',
|
||||
'Chinese (HK)', 'Chinese-Hant-HK', 'Mandarin (HK)', 'Cantonese (HK)', 'Chinese-cmn-HK' => 'hk',
|
||||
'Chinese (Taiwan)' => 'tw',
|
||||
'Croatian', 'Croatian (HR)' => 'hr',
|
||||
|
||||
@@ -45,6 +45,7 @@ class SystemInformation
|
||||
*/
|
||||
public function avg(): ?array
|
||||
{
|
||||
// cspell:ignore loadavg
|
||||
if (is_readable('/proc/loadavg')) {
|
||||
$file = file_get_contents('/proc/loadavg');
|
||||
|
||||
@@ -160,7 +161,7 @@ class SystemInformation
|
||||
private function getDatabase(): string
|
||||
{
|
||||
if (!\in_array(config('database.default'), self::KNOWN_DATABASES, true)) {
|
||||
return 'Unkown';
|
||||
return 'Unknown';
|
||||
}
|
||||
|
||||
return DB::select('select version()')[0]->{'version()'};
|
||||
|
||||
@@ -45,7 +45,6 @@ class TorrentHelper
|
||||
public static function approveHelper(int $id): void
|
||||
{
|
||||
$appurl = config('app.url');
|
||||
$appname = config('app.name');
|
||||
|
||||
$torrent = Torrent::with('user')->withoutGlobalScope(ApprovedScope::class)->findOrFail($id);
|
||||
$torrent->created_at = Carbon::now();
|
||||
@@ -55,7 +54,7 @@ class TorrentHelper
|
||||
$torrent->moderated_by = (int) auth()->id();
|
||||
|
||||
if (!$torrent->free) {
|
||||
$autoFreeleechs = AutomaticTorrentFreeleech::query()
|
||||
$autoFreeleeches = AutomaticTorrentFreeleech::query()
|
||||
->orderBy('position')
|
||||
->where(fn ($query) => $query->whereNull('category_id')->orWhere('category_id', '=', $torrent->category_id))
|
||||
->where(fn ($query) => $query->whereNull('type_id')->orWhere('type_id', '=', $torrent->type_id))
|
||||
@@ -63,7 +62,7 @@ class TorrentHelper
|
||||
->where(fn ($query) => $query->whereNull('size')->orWhere('size', '<', $torrent->size))
|
||||
->get();
|
||||
|
||||
foreach ($autoFreeleechs as $autoFreeleech) {
|
||||
foreach ($autoFreeleeches as $autoFreeleech) {
|
||||
if ($autoFreeleech->name_regex === null || preg_match($autoFreeleech->name_regex, $torrent->name)) {
|
||||
$torrent->free = $autoFreeleech->freeleech_percentage;
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ class TorrentController extends BaseController
|
||||
return $this->sendError('Validation Error.', 'You Must Provide A Valid Torrent File For Upload!');
|
||||
}
|
||||
|
||||
// Deplace and decode the torrent temporarily
|
||||
// Move and decode the torrent temporarily
|
||||
$decodedTorrent = TorrentTools::normalizeTorrent($requestFile);
|
||||
$infohash = Bencode::get_infohash($decodedTorrent);
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ use Throwable;
|
||||
use Exception;
|
||||
use Illuminate\Support\Facades\Redis;
|
||||
|
||||
// cspell:ignore completei,downloadedi,incompletei,intervali
|
||||
|
||||
final class AnnounceController extends Controller
|
||||
{
|
||||
// Torrent Moderation Codes
|
||||
@@ -118,7 +120,7 @@ final class AnnounceController extends Controller
|
||||
$visible = true;
|
||||
}
|
||||
|
||||
// Process Annnounce Job.
|
||||
// Process Announce Job.
|
||||
$this->processAnnounceJob($queries, $user, $group, $torrent, $visible);
|
||||
|
||||
if ($visible) {
|
||||
@@ -130,6 +132,7 @@ final class AnnounceController extends Controller
|
||||
} catch (TrackerException $exception) {
|
||||
$response = $this->generateFailedAnnounceResponse($exception);
|
||||
} catch (Exception) {
|
||||
// spell:disable-next-line
|
||||
$response = 'd14:failure reason21:Internal Server Error8:intervali5400e12:min intervali5400ee';
|
||||
}
|
||||
|
||||
@@ -455,7 +458,7 @@ final class AnnounceController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Check A Peers Min Annnounce Interval.
|
||||
* Check A Peers Min Announce Interval.
|
||||
*
|
||||
* @throws TrackerException
|
||||
* @throws Exception
|
||||
|
||||
@@ -84,7 +84,7 @@ class HomeController extends Controller
|
||||
),
|
||||
'articles' => $articles,
|
||||
'topics' => Topic::query()
|
||||
->with(['user', 'user.group', 'latestPoster', 'reads' => fn ($query) => $query->whereBelongsto($user)])
|
||||
->with(['user', 'user.group', 'latestPoster', 'reads' => fn ($query) => $query->whereBelongsTo($user)])
|
||||
->authorized(canReadTopic: true)
|
||||
->latest()
|
||||
->take(5)
|
||||
|
||||
@@ -59,6 +59,6 @@ class ReseedController extends Controller
|
||||
}
|
||||
|
||||
return to_route('torrents.show', ['id' => $torrent->id])
|
||||
->withErrors('This torrent doesnt meet the rules for a reseed request.');
|
||||
->withErrors('This torrent doesn\'t meet the rules for a reseed request.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ class CommandController extends Controller
|
||||
/**
|
||||
* Bring Site Into Maintenance Mode.
|
||||
*/
|
||||
public function maintanceEnable(): \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse
|
||||
public function maintenanceEnable(): \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse
|
||||
{
|
||||
Artisan::call('down');
|
||||
|
||||
@@ -46,7 +46,7 @@ class CommandController extends Controller
|
||||
/**
|
||||
* Bring Site Out Of Maintenance Mode.
|
||||
*/
|
||||
public function maintanceDisable(): \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse
|
||||
public function maintenanceDisable(): \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse
|
||||
{
|
||||
Artisan::call('up');
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ class FlushController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Flsuh All Old Peers From Database.
|
||||
* Flush All Old Peers From Database.
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
|
||||
@@ -40,6 +40,7 @@ class ReportController extends Controller
|
||||
*/
|
||||
public function show(Report $report): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
{
|
||||
// cspell:ignore punct
|
||||
preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', (string) $report->message, $match);
|
||||
|
||||
return view('Staff.report.show', ['report' => $report, 'urls' => $match[0]]);
|
||||
|
||||
@@ -271,11 +271,11 @@ class TorrentBuffController extends Controller
|
||||
}
|
||||
|
||||
return to_route('torrents.show', ['id' => $torrent->id])
|
||||
->withErrors('You Dont Have Enough Freeleech Tokens Or Already Have One Activated On This Torrent.');
|
||||
->withErrors('You Don\'t Have Enough Freeleech Tokens Or Already Have One Activated On This Torrent.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Torrents Refudable Status.
|
||||
* Set Torrents Refundable Status.
|
||||
*/
|
||||
public function setRefundable(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
|
||||
@@ -70,7 +70,7 @@ class TorrentController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Display The Torrent reasource.
|
||||
* Display The Torrent resource.
|
||||
*
|
||||
* @throws JsonException
|
||||
* @throws \MarcReichel\IGDBLaravel\Exceptions\MissingEndpointException
|
||||
|
||||
@@ -79,7 +79,7 @@ class ResurrectionController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel A Ressurection.
|
||||
* Cancel A Resurrection.
|
||||
*/
|
||||
public function destroy(Request $request, User $user, Resurrection $resurrection): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@ declare(strict_types=1);
|
||||
*
|
||||
* @project UNIT3D Community Edition
|
||||
*
|
||||
* @author Raordom <roardom@protonmail.com>
|
||||
* @author Roardom <roardom@protonmail.com>
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0
|
||||
*/
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ class ForumCategoryTopicSearch extends Component
|
||||
'user.group',
|
||||
'latestPoster',
|
||||
'forum',
|
||||
'reads' => fn ($query) => $query->whereBelongsto(auth()->user()),
|
||||
'reads' => fn ($query) => $query->whereBelongsTo(auth()->user()),
|
||||
])
|
||||
->whereRelation('forum', 'forum_category_id', '=', $this->category->id)
|
||||
->authorized(canReadTopic: true)
|
||||
@@ -97,7 +97,7 @@ class ForumCategoryTopicSearch extends Component
|
||||
->whereHas(
|
||||
'reads',
|
||||
fn ($query) => $query
|
||||
->whereBelongsto(auth()->user())
|
||||
->whereBelongsTo(auth()->user())
|
||||
->whereColumn('last_post_id', '>', 'last_read_post_id')
|
||||
)
|
||||
)
|
||||
@@ -107,7 +107,7 @@ class ForumCategoryTopicSearch extends Component
|
||||
->whereHas(
|
||||
'reads',
|
||||
fn ($query) => $query
|
||||
->whereBelongsto(auth()->user())
|
||||
->whereBelongsTo(auth()->user())
|
||||
->whereColumn('last_post_id', '=', 'last_read_post_id')
|
||||
)
|
||||
)
|
||||
|
||||
@@ -79,7 +79,7 @@ class ForumTopicSearch extends Component
|
||||
'user.group',
|
||||
'latestPoster',
|
||||
'forum:id,name',
|
||||
'reads' => fn ($query) => $query->whereBelongsto(auth()->user()),
|
||||
'reads' => fn ($query) => $query->whereBelongsTo(auth()->user()),
|
||||
])
|
||||
->where('topics.forum_id', '=', $this->forum->id)
|
||||
->authorized(canReadTopic: true)
|
||||
@@ -102,7 +102,7 @@ class ForumTopicSearch extends Component
|
||||
->whereHas(
|
||||
'reads',
|
||||
fn ($query) => $query
|
||||
->whereBelongsto(auth()->user())
|
||||
->whereBelongsTo(auth()->user())
|
||||
->whereColumn('last_post_id', '>', 'last_read_post_id')
|
||||
)
|
||||
)
|
||||
@@ -112,7 +112,7 @@ class ForumTopicSearch extends Component
|
||||
->whereHas(
|
||||
'reads',
|
||||
fn ($query) => $query
|
||||
->whereBelongsto(auth()->user())
|
||||
->whereBelongsTo(auth()->user())
|
||||
->whereColumn('last_post_id', '=', 'last_read_post_id')
|
||||
)
|
||||
)
|
||||
|
||||
@@ -92,7 +92,7 @@ class LaravelLogViewer extends Component
|
||||
for ($i = 0; $i < $numEntries; $i++) {
|
||||
// The context is the portion before the first stack trace
|
||||
$context = preg_split('/^\[stacktrace\]|Stack trace\:/ms', (string) $stacktraces[$i])[0];
|
||||
// The `context` consists of a message, an exception, a filename, and a linecount
|
||||
// The `context` consists of a message, an exception, a filename, and a line count
|
||||
preg_match($contextPattern, $context, $contextMatches);
|
||||
|
||||
$entries->push([
|
||||
|
||||
@@ -295,7 +295,7 @@ class PersonCredit extends Component
|
||||
->values()
|
||||
->groupBy(fn ($torrent) => $torrent->type->name)
|
||||
->map(
|
||||
fn ($torrentsBytype) => $torrentsBytype
|
||||
fn ($torrentsByType) => $torrentsByType
|
||||
->sortBy([
|
||||
['resolution.position', 'asc'],
|
||||
['internal', 'desc'],
|
||||
|
||||
@@ -365,7 +365,7 @@ class SimilarTorrent extends Component
|
||||
->values()
|
||||
->groupBy(fn ($torrent) => $torrent->type->name)
|
||||
->map(
|
||||
fn ($torrentsBytype) => $torrentsBytype
|
||||
fn ($torrentsByType) => $torrentsByType
|
||||
->sortBy([
|
||||
['resolution.position', 'asc'],
|
||||
['name', 'asc'],
|
||||
|
||||
@@ -37,7 +37,7 @@ class SubscribedTopic extends Component
|
||||
'user.group',
|
||||
'latestPoster',
|
||||
'forum',
|
||||
'reads' => fn ($query) => $query->whereBelongsto(auth()->user()),
|
||||
'reads' => fn ($query) => $query->whereBelongsTo(auth()->user()),
|
||||
])
|
||||
->whereRelation('subscribedUsers', 'users.id', '=', auth()->id())
|
||||
->authorized(canReadTopic: true)
|
||||
|
||||
@@ -85,7 +85,7 @@ class TopicSearch extends Component
|
||||
'user.group',
|
||||
'latestPoster',
|
||||
'forum',
|
||||
'reads' => fn ($query) => $query->whereBelongsto(auth()->user()),
|
||||
'reads' => fn ($query) => $query->whereBelongsTo(auth()->user()),
|
||||
])
|
||||
->authorized(canReadTopic: true)
|
||||
->when($this->search !== '', fn ($query) => $query->where('name', 'LIKE', '%'.$this->search.'%'))
|
||||
@@ -107,7 +107,7 @@ class TopicSearch extends Component
|
||||
->whereHas(
|
||||
'reads',
|
||||
fn ($query) => $query
|
||||
->whereBelongsto(auth()->user())
|
||||
->whereBelongsTo(auth()->user())
|
||||
->whereColumn('last_post_id', '>', 'last_read_post_id')
|
||||
)
|
||||
)
|
||||
@@ -117,7 +117,7 @@ class TopicSearch extends Component
|
||||
->whereHas(
|
||||
'reads',
|
||||
fn ($query) => $query
|
||||
->whereBelongsto(auth()->user())
|
||||
->whereBelongsTo(auth()->user())
|
||||
->whereColumn('last_post_id', '=', 'last_read_post_id')
|
||||
)
|
||||
)
|
||||
|
||||
@@ -755,7 +755,7 @@ class TorrentSearch extends Component
|
||||
->values()
|
||||
->groupBy(fn ($torrent) => $torrent->type->name)
|
||||
->map(
|
||||
fn ($torrentsBytype) => $torrentsBytype
|
||||
fn ($torrentsByType) => $torrentsByType
|
||||
->sortBy([
|
||||
['resolution.position', 'asc'],
|
||||
['name', 'asc'],
|
||||
|
||||
@@ -248,7 +248,7 @@ class StoreTorrentRequest extends FormRequest
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'igdb.in' => 'The IGBB ID must be 0 if the media doesn\'t exist on IGDB or you\'re not uploading a game.',
|
||||
'igdb.in' => 'The IGDB ID must be 0 if the media doesn\'t exist on IGDB or you\'re not uploading a game.',
|
||||
'tmdb.in' => 'The TMDB ID must be 0 if the media doesn\'t exist on TMDB or you\'re not uploading a tv show or movie.',
|
||||
'imdb.in' => 'The IMDB ID must be 0 if the media doesn\'t exist on IMDB or you\'re not uploading a tv show or movie.',
|
||||
'tvdb.in' => 'The TVDB ID must be 0 if the media doesn\'t exist on TVDB or you\'re not uploading a tv show.',
|
||||
|
||||
@@ -132,7 +132,7 @@ class StoreTorrentRequestRequest extends FormRequest
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'igdb.in' => 'The IGBB ID must be 0 if the media doesn\'t exist on IGDB or you\'re not requesting a game.',
|
||||
'igdb.in' => 'The IGDB ID must be 0 if the media doesn\'t exist on IGDB or you\'re not requesting a game.',
|
||||
'tmdb.in' => 'The TMDB ID must be 0 if the media doesn\'t exist on TMDB or you\'re not requesting a tv show or movie.',
|
||||
'imdb.in' => 'The IMDB ID must be 0 if the media doesn\'t exist on IMDB or you\'re not requesting a tv show or movie.',
|
||||
'tvdb.in' => 'The TVDB ID must be 0 if the media doesn\'t exist on TVDB or you\'re not requesting a tv show.',
|
||||
|
||||
@@ -38,7 +38,7 @@ readonly class RegisteredListener
|
||||
\sprintf('[url=%s]%s[/url], Welcome to ', $profileUrl, $user->username).config('other.title').'! Hope you enjoy the community.',
|
||||
\sprintf("[url=%s]%s[/url], We've been expecting you.", $profileUrl, $user->username),
|
||||
\sprintf("[url=%s]%s[/url] has arrived. Party's over.", $profileUrl, $user->username),
|
||||
\sprintf("It's a bird! It's a plane! Nevermind, it's just [url=%s]%s[/url].", $profileUrl, $user->username),
|
||||
\sprintf("It's a bird! It's a plane! Never mind, it's just [url=%s]%s[/url].", $profileUrl, $user->username),
|
||||
\sprintf('Ready player [url=%s]%s[/url].', $profileUrl, $user->username),
|
||||
\sprintf('A wild [url=%s]%s[/url] appeared.', $profileUrl, $user->username),
|
||||
'Welcome to '.config('other.title').\sprintf(' [url=%s]%s[/url]. We were expecting you.', $profileUrl, $user->username),
|
||||
|
||||
@@ -121,7 +121,7 @@ class Comment extends Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Nootify Staff There Is Stale Tickets.
|
||||
* Notify Staff There Is Stale Tickets.
|
||||
*/
|
||||
public static function checkForStale(Ticket $ticket): void
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
*/
|
||||
class DonationPackage extends Model
|
||||
{
|
||||
/** @use HasFactory<\Database\Factories\DonationPackagefactory> */
|
||||
/** @use HasFactory<\Database\Factories\DonationPackageFactory> */
|
||||
use HasFactory;
|
||||
use SoftDeletes;
|
||||
|
||||
|
||||
@@ -808,9 +808,9 @@ class Torrent extends Model
|
||||
*/
|
||||
public function isFreeleech(?User $user = null): bool
|
||||
{
|
||||
$pfree = $user && ($user->group->is_freeleech || cache()->get('personal_freeleech:'.$user->id));
|
||||
$isFreeleech = $user && ($user->group->is_freeleech || cache()->get('personal_freeleech:'.$user->id));
|
||||
|
||||
return $this->free || config('other.freeleech') || $pfree;
|
||||
return $this->free || config('other.freeleech') || $isFreeleech;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,7 +26,7 @@ class NewUnfollow extends Notification implements ShouldQueue
|
||||
use Queueable;
|
||||
|
||||
/**
|
||||
* NewUnfolllow Constructor.
|
||||
* NewUnfollow Constructor.
|
||||
*/
|
||||
public function __construct(public string $type, public User $unfollower)
|
||||
{
|
||||
|
||||
@@ -47,12 +47,12 @@ class UserBan extends Notification
|
||||
*/
|
||||
public function toMail(object $notifiable): MailMessage
|
||||
{
|
||||
$chatdUrl = config('unit3d.chat-link-url');
|
||||
$chatUrl = config('unit3d.chat-link-url');
|
||||
|
||||
return (new MailMessage())
|
||||
->greeting('You have been banned 😭')
|
||||
->line('You have been banned from '.config('other.title').' for '.$this->ban->ban_reason)
|
||||
->action('Need Support?', $chatdUrl)
|
||||
->action('Need Support?', $chatUrl)
|
||||
->line('Thank you for using 🚀'.config('other.title'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class UserMaxWarningsReached extends Notification
|
||||
|
||||
return (new MailMessage())
|
||||
->greeting('Max Hit and Run Warnings Reached!')
|
||||
->line('You have hit the limit on active Hit and Run Warnings! Your download privilliges have been revoked!')
|
||||
->line('You have hit the limit on active Hit and Run Warnings! Your download privileges have been revoked!')
|
||||
->action('View Unsatisfied Torrents to seed off your warnings or wait until they expire!', $profileUrl)
|
||||
->line('Thank you for using 🚀'.config('other.title'));
|
||||
}
|
||||
@@ -65,7 +65,7 @@ class UserMaxWarningsReached extends Notification
|
||||
{
|
||||
return [
|
||||
'title' => 'Max Hit and Run Warnings Reached!',
|
||||
'body' => 'You have hit the limit on active Hit and Run Warnings! Your download privilliges have been revoked!',
|
||||
'body' => 'You have hit the limit on active Hit and Run Warnings! Your download privileges have been revoked!',
|
||||
'url' => \sprintf('/users/%s', $this->user->username),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -351,9 +351,9 @@ class ChatRepository
|
||||
}
|
||||
}
|
||||
|
||||
foreach (config('censor.replace') as $word => $rword) {
|
||||
foreach (config('censor.replace') as $word => $replacementWord) {
|
||||
if (Str::contains($message, $word)) {
|
||||
$message = str_replace($word, $rword, (string) $message);
|
||||
$message = str_replace($word, $replacementWord, (string) $message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -283,7 +283,7 @@ class Movie
|
||||
$titleSort = null;
|
||||
|
||||
if ($this->data['release_date'] !== null) {
|
||||
$re = '/((?<namesort>.*)(?<seperator>\:|and)(?<remaining>.*)|(?<name>.*))/m';
|
||||
$re = '/((?<nameSort>.*)(?<separator>\:|and)(?<remaining>.*)|(?<name>.*))/m';
|
||||
preg_match($re, $this->data['title'], $matches);
|
||||
|
||||
$year = (new DateTime($this->data['release_date']))->format('Y');
|
||||
@@ -291,7 +291,7 @@ class Movie
|
||||
$titleSort = addslashes(str_replace(
|
||||
['The ', 'An ', 'A ', '"'],
|
||||
[''],
|
||||
Str::limit($matches['namesort'] ?? $this->data['title'].' '.$year, 100)
|
||||
Str::limit($matches['nameSort'] ?? $this->data['title'].' '.$year, 100)
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Recyle Old Audit Records
|
||||
| Recycle Old Audit Records
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| In Days!
|
||||
|
||||
@@ -104,7 +104,7 @@ return [
|
||||
],
|
||||
|
||||
/*
|
||||
* The database dump can be compressed to decrease diskspace usage.
|
||||
* The database dump can be compressed to decrease disk space usage.
|
||||
*
|
||||
* Out of the box Laravel-backup supplies
|
||||
* Spatie\DbDumper\Compressors\GzipCompressor::class.
|
||||
|
||||
@@ -16,7 +16,7 @@ declare(strict_types=1);
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Email Domain Blackist Validation
|
||||
| Email Domain Blacklist Validation
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The email domain blacklist validation rule uses a remote or local source
|
||||
|
||||
@@ -30,7 +30,7 @@ return [
|
||||
| Seedtime
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Time In Seconds Needed For Successful Ressurection (Default: 2592000seconds / 30days)
|
||||
| Time In Seconds Needed For Successful Resurrection (Default: 2592000seconds / 30days)
|
||||
|
|
||||
*/
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ return [
|
||||
| Max Warnings
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Max Warnings Before Download Privliges Disabled
|
||||
| Max Warnings Before Download Privileges Disabled
|
||||
|
|
||||
*/
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
// cspell:ignore mpga
|
||||
|
||||
return [
|
||||
/*
|
||||
|---------------------------------------------------------------------------
|
||||
|
||||
@@ -70,7 +70,7 @@ return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Freelech State
|
||||
| Freeleech State
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Global Freeleech
|
||||
|
||||
282
cspell.json
Normal file
282
cspell.json
Normal file
@@ -0,0 +1,282 @@
|
||||
{
|
||||
"version": "0.2",
|
||||
"language": "en",
|
||||
"words": [
|
||||
"amoled",
|
||||
"apikey",
|
||||
"bbcode",
|
||||
"chatbox",
|
||||
"cinematographed",
|
||||
"commentable",
|
||||
"commenters",
|
||||
"comparate",
|
||||
"comparates",
|
||||
"dcma",
|
||||
"downloaders",
|
||||
"fa-crosshairs",
|
||||
"fa-wpforms",
|
||||
"fbclid",
|
||||
"followees",
|
||||
"freeleech",
|
||||
"freeleeches",
|
||||
"gitupdate",
|
||||
"hsts",
|
||||
"leechtime",
|
||||
"nord",
|
||||
"participations",
|
||||
"prewarn",
|
||||
"prewarning",
|
||||
"reindex",
|
||||
"remux",
|
||||
"rsses",
|
||||
"rsskey",
|
||||
"rsskeys",
|
||||
"runbot",
|
||||
"seedbonus",
|
||||
"seedsize",
|
||||
"shoutbox",
|
||||
"stickied",
|
||||
"stylesheet",
|
||||
"subforum",
|
||||
"sublicensable",
|
||||
"supervisorctl",
|
||||
"textareas",
|
||||
"totp",
|
||||
"trumpable",
|
||||
"unactivated",
|
||||
"unban",
|
||||
"unbans",
|
||||
"unbookmark",
|
||||
"unbookmarked",
|
||||
"unclaims",
|
||||
"uncompromised",
|
||||
"unconnectable",
|
||||
"unfollow",
|
||||
"unfollowed",
|
||||
"unfollower",
|
||||
"unfollows",
|
||||
"unmark",
|
||||
"unmoderated",
|
||||
"unparticipated",
|
||||
"unsatisfieds",
|
||||
"unsnooze",
|
||||
"unsticky",
|
||||
"unvalidated",
|
||||
"uploaders",
|
||||
"upsert",
|
||||
"upserting",
|
||||
"upserts",
|
||||
"webfonts",
|
||||
"winzip",
|
||||
"woot",
|
||||
],
|
||||
"ignoreWords": [
|
||||
"abcdef0123456789",
|
||||
"aboutus",
|
||||
"activefl",
|
||||
"apimatch",
|
||||
"appurl",
|
||||
"auth.appl-closed",
|
||||
"auth.appl-intro",
|
||||
"auth.appl-reason",
|
||||
"autocat",
|
||||
"autodis",
|
||||
"autogroup",
|
||||
"autoigdb",
|
||||
"autoimdb",
|
||||
"autokeywords",
|
||||
"automal",
|
||||
"autoreg",
|
||||
"autores",
|
||||
"autotmdb",
|
||||
"autotvdb",
|
||||
"banneduser",
|
||||
"chatbody",
|
||||
"chatrooms",
|
||||
"chatstatus",
|
||||
"chatstatuses",
|
||||
"clientblacklist",
|
||||
"doubleup",
|
||||
"doubleupload",
|
||||
"extremeuser",
|
||||
"healthcheck",
|
||||
"helpdesk",
|
||||
"hiddencaptcha",
|
||||
"highresolution",
|
||||
"highspeed",
|
||||
"hitandruns",
|
||||
"hitrun",
|
||||
"howto",
|
||||
"insaneuser",
|
||||
"javascripts",
|
||||
"latestversion",
|
||||
"linethrough",
|
||||
"masspm",
|
||||
"mediahub",
|
||||
"modq",
|
||||
"namedquote",
|
||||
"nerdbot",
|
||||
"nerdstat",
|
||||
"nontouch",
|
||||
"noteduser",
|
||||
"openreg",
|
||||
"orderedlistalpha",
|
||||
"orderedlistnumerical",
|
||||
"invites_restriced",
|
||||
"personalrelease",
|
||||
"poweruser",
|
||||
"quicksearch",
|
||||
"revokefeature",
|
||||
"request.dont-have-bps",
|
||||
"shoutout",
|
||||
"shoutouts",
|
||||
"signups",
|
||||
"sitename",
|
||||
"softdelete",
|
||||
"sparkels",
|
||||
"staffban",
|
||||
"staffdeletedwarning",
|
||||
"staffuser",
|
||||
"staffwarning",
|
||||
"statsgroupmenu",
|
||||
"statsrequestmenu",
|
||||
"statstorrentmenu",
|
||||
"statsusermenu",
|
||||
"stat.request-pending-aproval",
|
||||
"systembot",
|
||||
"testcode",
|
||||
"testuser",
|
||||
"torrenttitle",
|
||||
"torrent.revokefeatured",
|
||||
"unorderedlist",
|
||||
"userban",
|
||||
"userlist",
|
||||
"userwarning",
|
||||
"warneduser",
|
||||
"watchlist",
|
||||
"welcomepm",
|
||||
],
|
||||
"ignoreRegExpList": [
|
||||
"bitcoin-address",
|
||||
],
|
||||
"patterns": [
|
||||
{
|
||||
"name": "bitcoin-address",
|
||||
"pattern": "/[a-z0-9]{42}/",
|
||||
}
|
||||
],
|
||||
"ignorePaths": [
|
||||
"app/Console/Commands/DemoSeed.php",
|
||||
"app/Helpers/Markdown.php",
|
||||
"app/Helpers/MarkdownExtra.php",
|
||||
"app/Helpers/MediaInfo.php",
|
||||
"config/censor.php",
|
||||
"config/language.php",
|
||||
"config/secure-headers.php",
|
||||
"database/migrations/20{1,2{0,1,2,3,4}}*",
|
||||
"database/schema/mysql-schema.sql",
|
||||
"database/seeders/DistributorsTableSeeder.php",
|
||||
"database/seeders/MediaLanguagesSeeder.php",
|
||||
"lang/",
|
||||
"public/vendor/livewire/livewire.js",
|
||||
"resources/js/unit3d/helper.js",
|
||||
"resources/js/unit3d/parser.js",
|
||||
"resources/js/vendor",
|
||||
"resources/sass/vendor",
|
||||
"resources/views/vendor/mail",
|
||||
"tests/Unit/Helpers/MarkdownExtraTest.php",
|
||||
"composer.json",
|
||||
"package.json",
|
||||
"phpstan.neon",
|
||||
"pint.json",
|
||||
"*.svg",
|
||||
],
|
||||
"dictionaries": [
|
||||
"bittorrent",
|
||||
"blade",
|
||||
"brands",
|
||||
"dependencies",
|
||||
"dependency_terms",
|
||||
"html",
|
||||
"irc",
|
||||
"laravel",
|
||||
"mysql",
|
||||
"people",
|
||||
"php",
|
||||
"php_constants",
|
||||
"php_functions",
|
||||
"redis",
|
||||
],
|
||||
"dictionaryDefinitions": [
|
||||
{
|
||||
"name": "bittorrent",
|
||||
"path": "./.cspell/bittorrent.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "blade",
|
||||
"path": "./.cspell/blade.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "brands",
|
||||
"path": "./.cspell/brands.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "dependencies",
|
||||
"path": "./.cspell/dependencies.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "dependency_terms",
|
||||
"path": "./.cspell/dependency_terms.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "html",
|
||||
"path": "./.cspell/html.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "irc",
|
||||
"path": "./.cspell/irc.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "laravel",
|
||||
"path": "./.cspell/laravel.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "mysql",
|
||||
"path": "./.cspell/mysql.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "people",
|
||||
"path": "./.cspell/people.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "php",
|
||||
"path": "./.cspell/php.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "php_functions",
|
||||
"path": "./.cspell/php_functions.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "php_constants",
|
||||
"path": "./.cspell/php_constants.txt",
|
||||
"addWords": false
|
||||
},
|
||||
{
|
||||
"name": "redis",
|
||||
"path": "./.cspell/redis.txt",
|
||||
"addWords": false
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -20,6 +20,8 @@ use App\Models\Page;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
// cspell:ignore orwill
|
||||
|
||||
class PagesTableSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# cspell:ignore initdb,meili,mysqladmin,mysqld,wwwgroup,wwwuser
|
||||
services:
|
||||
nginx:
|
||||
image: 'nginx:latest'
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Wiki
|
||||
|
||||
This wiki serves as the central resource for setting up, managing, and optimising your UNIT3D installation. Whether you're working on local development, managing a production server, or contributing to the open-source community, you'll find a number of useful guides here.
|
||||
This wiki serves as the central resource for setting up, managing, and optimizing your UNIT3D installation. Whether you're working on local development, managing a production server, or contributing to the open-source community, you'll find a number of useful guides here.
|
||||
@@ -1,5 +1,7 @@
|
||||
# Basic Tuning
|
||||
|
||||
<!-- cspell:ignore unixsocket,unixsocketperm,usermod,ondemand,curlopt,cainfo -->
|
||||
|
||||
> [!IMPORTANT]
|
||||
> These guides are intended for UNIT3D v8.0.0 + instances. While these are better than defaults be careful blindly following them. Proper tuning requires understanding your server, running tests and monitoring the results.
|
||||
|
||||
@@ -13,7 +15,7 @@
|
||||
|
||||
If your Redis service is running on your web server, it is highly recommended that you use **Unix sockets** instead of **TCP ports** to communicate with your web server.
|
||||
|
||||
Based on the Redis official benchmark, you can **improve performance by upto 50%** using unix sockets (versus TCP ports) on Redis.
|
||||
Based on the Redis official benchmark, you can **improve performance by up to 50%** using unix sockets (versus TCP ports) on Redis.
|
||||
|
||||
Of course, unix sockets can only be used if both your Laravel application and Redis are running on the same server.
|
||||
|
||||
@@ -96,7 +98,7 @@ sudo systemctl restart redis
|
||||
|
||||
If your MySQL database is running on your web server, it is highly recommended that you use **Unix sockets** instead of **TCP ports** to communicate with your web server.
|
||||
|
||||
Based on Percona's benchmark, you can **improve performance by upto 50%** using unix sockets (versus TCP portson MySQL.
|
||||
Based on Percona's benchmark, you can **improve performance by up to 50%** using unix sockets (versus TCP ports on MySQL).
|
||||
|
||||
Of course, unix sockets can only be used if both your UNIT3D application and database are running on the same server which is by default.
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# UNIT3D v8.x.x on Arch Linux with Laravel Sail
|
||||
|
||||
<!-- cspell:ignore dockerized,pacman -->
|
||||
|
||||
_A guide by EkoNesLeg_
|
||||
|
||||
This guide outlines the steps to set up UNIT3D using Laravel Sail on Arch Linux. While the guide highlights the use of Arch Linux, the instructions can be adapted to other environments.
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Server Management
|
||||
|
||||
<!-- cspell:ignore certbot,chgrp,usermod -->
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The following assumptions are made:
|
||||
>
|
||||
@@ -61,7 +63,7 @@ bun run build
|
||||
Use `certbot` to refresh the TLS certificate:
|
||||
|
||||
```sh
|
||||
certbot --redirect --nginx -n --agree-tos --email=sysop@yourdomain.tld -d yourdomain.tld -d www.yourdomain.tld --rsa-key-size 2048
|
||||
certbot --redirect --nginx -n --agree-tos --email=sysop@your_domain.tld -d your_domain.tld -d www.your_domain.tld --rsa-key-size 2048
|
||||
```
|
||||
|
||||
3. **Update the WebSocket Configuration:**
|
||||
|
||||
@@ -30,6 +30,7 @@ To create a tarball that includes only the modified source code and excludes sen
|
||||
|
||||
Add the following to the file:
|
||||
|
||||
<!-- cspell:disable -->
|
||||
```plaintext
|
||||
.env
|
||||
node_modules
|
||||
@@ -79,6 +80,7 @@ To create a tarball that includes only the modified source code and excludes sen
|
||||
lib/js/tests.html
|
||||
lib/js/tests/npm-debug.log
|
||||
```
|
||||
<!-- cspell:enable -->
|
||||
|
||||
### 2.2 Create the Tarball
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ There are several ways of passing the API token to UNIT3D. We'll discuss each of
|
||||
UNIT3D's API consumers may specify their token as an `api_token` query string value:
|
||||
|
||||
```php
|
||||
$response = $client->request('GET', '/api/torrents?api_token=YOURTOKENHERE);
|
||||
$response = $client->request('GET', '/api/torrents?api_token=YOUR_TOKEN_HERE);
|
||||
```
|
||||
|
||||
- **Request Payload**
|
||||
@@ -33,7 +33,7 @@ There are several ways of passing the API token to UNIT3D. We'll discuss each of
|
||||
'Accept' => 'application/json',
|
||||
],
|
||||
'form_params' => [
|
||||
'api_token' => YOURTOKENHERE,
|
||||
'api_token' => 'YOUR_TOKEN_HERE',
|
||||
],
|
||||
]);
|
||||
```
|
||||
@@ -45,7 +45,7 @@ There are several ways of passing the API token to UNIT3D. We'll discuss each of
|
||||
```php
|
||||
$response = $client->request('POST', '/api/torrents', [
|
||||
'headers' => [
|
||||
'Authorization' => 'Bearer YOURTOKENHERE,
|
||||
'Authorization' => 'Bearer YOUR_TOKEN_HERE',
|
||||
'Accept' => 'application/json',
|
||||
],
|
||||
]);
|
||||
@@ -78,9 +78,9 @@ Parameters:
|
||||
| `imdb` | int | IMDB ID
|
||||
| `tvdb` | int | TVDB ID
|
||||
| `mal` | int | MAL ID
|
||||
| `igdb` | int | IGBD ID (Games only)
|
||||
| `igdb` | int | IGDB ID (Games only)
|
||||
| `anonymous` | bool | Should the uploader's username be hidden?
|
||||
| `stream` | bool | Is the torrent's content stream-optimised?
|
||||
| `stream` | bool | Is the torrent's content stream-optimized?
|
||||
| `sd` | bool | Is the torrent's content standard definition?
|
||||
| `personal_release` | bool | Is the torrent's content created by the uploader?
|
||||
| `internal`* | bool | Is the torrent an internal release?
|
||||
@@ -147,7 +147,7 @@ Optional Parameters:
|
||||
| `doubleup` | bool | Filter by if the torrent offers double upload
|
||||
| `featured` | bool | Filter by if the torrent is featured on the front page
|
||||
| `refundable` | bool | Filter by if the torrent is refundable
|
||||
| `stream` | bool | Filter by if the torrent's content is stream-optimised
|
||||
| `stream` | bool | Filter by if the torrent's content is stream-optimized
|
||||
| `sd` | bool | Filter by if the torrent's content is standard definition
|
||||
| `highspeed` | bool | Filter by if the torrent has seeders whose IP address has been registered as a seedbox
|
||||
| `internal` | bool | Filter by if the torrent is an internal release
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Upgrading PHP Version
|
||||
|
||||
<!-- cspell:ignore ondrej,autoremove,debconf-utils,dpkg -->
|
||||
|
||||
## Upgrade to PHP 8
|
||||
|
||||
`sudo apt update`
|
||||
@@ -28,7 +30,7 @@ Next lets edit NGINX to use new PHP8
|
||||
|
||||
Find `fastcgi_pass unix:/var/run/php/***.sock;`
|
||||
|
||||
`***` will be your sitename, unit3d or php7.4 for the most part
|
||||
`***` will be your site name, unit3d or php7.4 for the most part
|
||||
|
||||
Replace `fastcgi_pass unix:/var/run/php/***.sock;` with `fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;`.
|
||||
|
||||
@@ -36,7 +38,7 @@ Save and exit.
|
||||
|
||||
Test config `sudo nginx -t`
|
||||
|
||||
*If you didnt mess up you will see
|
||||
*If you didn't mess up you will see
|
||||
```
|
||||
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
|
||||
nginx: configuration file /etc/nginx/nginx.conf test is successful
|
||||
@@ -78,7 +80,7 @@ Next lets edit NGINX to use new PHP 8.1
|
||||
|
||||
Find `fastcgi_pass unix:/var/run/php/***.sock;`
|
||||
|
||||
`***` will be your sitename, unit3d or php8.0 for the most part
|
||||
`***` will be your site name, unit3d or php8.0 for the most part
|
||||
|
||||
Replace `fastcgi_pass unix:/var/run/php/***.sock;` with `fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;`.
|
||||
|
||||
@@ -86,7 +88,7 @@ Save and exit.
|
||||
|
||||
Test config `sudo nginx -t`
|
||||
|
||||
*If you didnt mess up you will see
|
||||
*If you didn't mess up you will see
|
||||
```
|
||||
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
|
||||
nginx: configuration file /etc/nginx/nginx.conf test is successful
|
||||
@@ -129,7 +131,7 @@ Next lets edit NGINX to use new PHP 8.2
|
||||
|
||||
Find `fastcgi_pass unix:/var/run/php/***.sock;`
|
||||
|
||||
`***` will be your sitename, unit3d or php8.1 for the most part
|
||||
`***` will be your site name, unit3d or php8.1 for the most part
|
||||
|
||||
Replace `fastcgi_pass unix:/var/run/php/***.sock;` with `fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;`.
|
||||
|
||||
@@ -137,7 +139,7 @@ Save and exit.
|
||||
|
||||
Test config `sudo nginx -t`
|
||||
|
||||
*If you didnt mess up you will see
|
||||
*If you didn't mess up you will see
|
||||
```
|
||||
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
|
||||
nginx: configuration file /etc/nginx/nginx.conf test is successful
|
||||
@@ -176,7 +178,7 @@ Next lets edit NGINX to use new PHP 8.3
|
||||
|
||||
Find `fastcgi_pass unix:/var/run/php/***.sock;`
|
||||
|
||||
`***` will be your sitename, unit3d or php8.2 for the most part
|
||||
`***` will be your site name, unit3d or php8.2 for the most part
|
||||
|
||||
Replace `fastcgi_pass unix:/var/run/php/***.sock;` with `fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;`.
|
||||
|
||||
@@ -184,7 +186,7 @@ Save and exit.
|
||||
|
||||
Test config `sudo nginx -t`
|
||||
|
||||
*If you didnt mess up you will see
|
||||
*If you didn't mess up you will see
|
||||
```
|
||||
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
|
||||
nginx: configuration file /etc/nginx/nginx.conf test is successful
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,5 +1,5 @@
|
||||
/* purgecss start ignore /*
|
||||
/* Position top-end postioned swal2 notifications below the top nav */
|
||||
/* Position top-end positioned swal2 notifications below the top nav */
|
||||
.swal2-top-end {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@
|
||||
opacity: 1;
|
||||
transition: opacity 0.15s;
|
||||
}
|
||||
/* purgecss endss ignore */
|
||||
/* purgecss end ignore */
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<form
|
||||
role="form"
|
||||
method="POST"
|
||||
action="{{ url('/dashboard/commands/maintance-enable') }}"
|
||||
action="{{ url('/dashboard/commands/maintenance-enable') }}"
|
||||
>
|
||||
@csrf
|
||||
<button
|
||||
@@ -49,7 +49,7 @@
|
||||
<form
|
||||
role="form"
|
||||
method="POST"
|
||||
action="{{ url('/dashboard/commands/maintance-disable') }}"
|
||||
action="{{ url('/dashboard/commands/maintenance-disable') }}"
|
||||
>
|
||||
@csrf
|
||||
<button
|
||||
|
||||
@@ -664,7 +664,7 @@
|
||||
<p class="form__group form__group--horizontal">
|
||||
<a
|
||||
class="form__button form__button--text"
|
||||
href="{{ route('staff.laravellog.index') }}"
|
||||
href="{{ route('staff.laravel-log.index') }}"
|
||||
>
|
||||
<i class="fa fa-file"></i>
|
||||
{{ __('staff.laravel-log') }}
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<th>Upload #</th>
|
||||
<th>Invite #</th>
|
||||
<th>Bonus #</th>
|
||||
<th>Lenght</th>
|
||||
<th>Length</th>
|
||||
<th>Status</th>
|
||||
<th>{{ __('common.actions') }}</th>
|
||||
</tr>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
type="number"
|
||||
name="position"
|
||||
value=""
|
||||
placerholder="0"
|
||||
placeholder="0"
|
||||
class="form__text"
|
||||
/>
|
||||
</td>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
type="number"
|
||||
name="position"
|
||||
value=""
|
||||
placerholder="0"
|
||||
placeholder="0"
|
||||
class="form__text"
|
||||
/>
|
||||
</td>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
@section('main')
|
||||
<section class="panelV2">
|
||||
<h2 class="panel__heading">
|
||||
{{ __('common.edit') }} Interal Group: {{ $internal->name }}
|
||||
{{ __('common.edit') }} Internal Group: {{ $internal->name }}
|
||||
</h2>
|
||||
<div class="panel__body">
|
||||
<form
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<header class="torrent-card__header">
|
||||
<div class="torrent-card__left-header">
|
||||
<span class="torrent-card__category">{{ $torrent->category->name }}</span>
|
||||
<span class="torrent-card__meta-seperator">•</span>
|
||||
<span class="torrent-card__meta-separator">•</span>
|
||||
<span class="torrent-card__resolution">
|
||||
{{ $torrent->resolution->name ?? 'No Res' }}
|
||||
</span>
|
||||
<span class="torrent-card__meta-seperator"></span>
|
||||
<span class="torrent-card__meta-separator"></span>
|
||||
<span class="torrent-card__type">{{ $torrent->type->name }}</span>
|
||||
<span class="torrent-card__meta-seperator">•</span>
|
||||
<span class="torrent-card__meta-separator">•</span>
|
||||
<span class="torrent-card__size">{{ $torrent->getSize() }}</span>
|
||||
</div>
|
||||
<div class="torrent-card__right-header">
|
||||
@@ -21,12 +21,12 @@
|
||||
<i class="fas fa-arrow-up"></i>
|
||||
{{ $torrent->seeders }}
|
||||
</a>
|
||||
<span class="torrent-card__meta-seperator">•</span>
|
||||
<span class="torrent-card__meta-separator">•</span>
|
||||
<a class="torrent-card__leeches" href="{{ route('peers', ['id' => $torrent->id]) }}">
|
||||
<i class="fas fa-arrow-down"></i>
|
||||
{{ $torrent->leechers }}
|
||||
</a>
|
||||
<span class="torrent-card__meta-seperator">•</span>
|
||||
<span class="torrent-card__meta-separator">•</span>
|
||||
<a
|
||||
class="torrent-card__completed"
|
||||
href="{{ route('history', ['id' => $torrent->id]) }}"
|
||||
@@ -85,7 +85,7 @@
|
||||
<i class="{{ \config('other.font-awesome') }} fa-star"></i>
|
||||
{{ $meta?->vote_average ?? 0 }}
|
||||
</span>
|
||||
<span class="torrent-card__meta-seperator">•</span>
|
||||
<span class="torrent-card__meta-separator">•</span>
|
||||
<ul class="torrent-card__genres">
|
||||
@foreach ($meta?->genres ?? [] as $genre)
|
||||
<li class="torrent-card__genre-item">
|
||||
@@ -108,7 +108,7 @@
|
||||
<address class="torrent-card__uploader">
|
||||
<x-user_tag :anon="$torrent->anon" :user="$torrent->user" />
|
||||
</address>
|
||||
<span class="torrent-card__meta-seperator">•</span>
|
||||
<span class="torrent-card__meta-separator">•</span>
|
||||
<time title="{{ $torrent->created_at }}" datetime="{{ $torrent->created_at }}">
|
||||
{{ $torrent->created_at->diffForHumans() }}
|
||||
</time>
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
@endif
|
||||
@if (config('torrent.magnet'))
|
||||
<a
|
||||
class="torrent-search--list__maget form__contained-icon-button form__contained-icon-button--filled"
|
||||
class="torrent-search--list__magnet form__contained-icon-button form__contained-icon-button--filled"
|
||||
href="magnet:?dn={{ $torrent->name }}&xt=urn:btih:{{ bin2hex($torrent->info_hash) }}&as={{ route('torrent.download.rsskey', ['id' => $torrent->id, 'rsskey' => auth()->user()->rsskey]) }}&tr={{ route('announce', ['passkey' => auth()->user()->passkey]) }}&xl={{ $torrent->size }}"
|
||||
download
|
||||
title="{{ __('common.magnet') }}"
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<div class="torrent-search--grouped__genres">
|
||||
@foreach ($media->genres->take(3) as $genre)
|
||||
<a
|
||||
href="{{ route('torrents.index', ['view' => 'group', 'genreids' => [$genre->id]]) }}"
|
||||
href="{{ route('torrents.index', ['view' => 'group', 'genreIds' => [$genre->id]]) }}"
|
||||
class="torrent-search--grouped__genre"
|
||||
>
|
||||
{{ $genre->name }}
|
||||
|
||||
@@ -164,7 +164,6 @@
|
||||
gravity: 'bottom',
|
||||
position: 'right',
|
||||
backgroundColor: 'red',
|
||||
className: 'toastify-custom',
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
id="sorting"
|
||||
class="form__select"
|
||||
name="sorting"
|
||||
wire:mode.livel="label"
|
||||
wire:mode.live="label"
|
||||
>
|
||||
<option value="" selected default>Any</option>
|
||||
<option value="approved">
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr x-cloack x-show="isToggledOn">
|
||||
<tr x-cloak x-show="isToggledOn">
|
||||
<td colspan="2">
|
||||
<div class="bbcode-rendered">
|
||||
<pre><code x-ref="stacktrace">{{ $entry['stacktrace'] }}</code></pre>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
<div>
|
||||
<span class="text-muted">
|
||||
{{ __('When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from a syncronized 2fa app such as Google Authenticator, Authy, BitWarden, etc.') }}
|
||||
{{ __('When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from a synchronized 2fa app such as Google Authenticator, Authy, BitWarden, etc.') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
@foreach ($genres as $genre)
|
||||
<li class="mediahub-card__list-item">
|
||||
<a
|
||||
href="{{ route('torrents.index', ['view' => 'group', 'genreids' => [$genre->id]]) }}"
|
||||
href="{{ route('torrents.index', ['view' => 'group', 'genreIds' => [$genre->id]]) }}"
|
||||
class="mediahub-card"
|
||||
>
|
||||
<h2 class="mediahub-card__heading">{{ $genre->name }}</h2>
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
$tickets = DB::table('tickets')
|
||||
->whereNull('closed_at')
|
||||
->whereNull('staff_id')
|
||||
->orwhere(function ($query) {
|
||||
->orWhere(function ($query) {
|
||||
$query
|
||||
->where('staff_id', '=', auth()->id())
|
||||
->Where('staff_read', '=', false);
|
||||
|
||||
@@ -156,6 +156,7 @@
|
||||
<li class="meta__rotten">
|
||||
<a
|
||||
class="meta-id-tag"
|
||||
{{-- cspell:disable-next-line --}}
|
||||
href="https://html.duckduckgo.com/html/?q=\{{ $meta->title ?? '' }} ({{ substr($meta->release_date ?? '', 0, 4) ?? '' }})+site%3Arottentomatoes.com"
|
||||
title="Rotten Tomatoes: {{ $meta->title ?? '' }} ({{ substr($meta->release_date ?? '', 0, 4) ?? '' }})"
|
||||
target="_blank"
|
||||
@@ -174,14 +175,14 @@
|
||||
@endif
|
||||
|
||||
@if (($meta->imdb_id ?? 0) > 0)
|
||||
<li class="meta__bluray">
|
||||
<li class="meta__blu-ray">
|
||||
<a
|
||||
class="meta-id-tag"
|
||||
href="https://www.blu-ray.com/search/?quicksearch=1&quicksearch_keyword=tt{{ $meta->imdb_id ?? '' }}§ion=theatrical"
|
||||
title="Blu-ray: {{ $meta->title ?? '' }} ({{ substr($meta->release_date ?? '', 0, 4) ?? '' }})"
|
||||
target="_blank"
|
||||
>
|
||||
<img class="" src="{{ url('/img/meta/bluray.svg') }}" style="width: 40px" />
|
||||
<img class="" src="{{ url('/img/meta/blu-ray.svg') }}" style="width: 40px" />
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@@ -155,6 +155,7 @@
|
||||
<li class="meta__rotten">
|
||||
<a
|
||||
class="meta-id-tag"
|
||||
{{-- cspell:disable-next-line --}}
|
||||
href="https://html.duckduckgo.com/html/?q=\{{ $meta->name ?? '' }} ({{ substr($meta->first_air_date ?? '', 0, 4) ?? '' }})+site%3Arottentomatoes.com"
|
||||
title="Rotten Tomatoes: {{ $meta->name ?? '' }} ({{ substr($meta->first_air_date ?? '', 0, 4) ?? '' }})"
|
||||
target="_blank"
|
||||
@@ -173,14 +174,14 @@
|
||||
@endif
|
||||
|
||||
@if (($meta->imdb_id ?? 0) > 0)
|
||||
<li class="meta__bluray">
|
||||
<li class="meta__blu-ray">
|
||||
<a
|
||||
class="meta-id-tag"
|
||||
href="https://www.blu-ray.com/search/?quicksearch=1&quicksearch_keyword=tt{{ $meta->imdb_id ?? '' }}§ion=theatrical"
|
||||
title="Blu-ray: {{ $meta->name ?? '' }} ({{ substr($meta->first_air_date ?? '', 0, 4) ?? '' }})"
|
||||
target="_blank"
|
||||
>
|
||||
<img class="" src="{{ url('/img/meta/bluray.svg') }}" style="width: 40px" />
|
||||
<img class="" src="{{ url('/img/meta/blu-ray.svg') }}" style="width: 40px" />
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@@ -82,6 +82,6 @@
|
||||
{{-- Extra Meta Block --}}
|
||||
@include('torrent.partials.extra_meta')
|
||||
|
||||
{{-- Commments Block --}}
|
||||
{{-- Comments Block --}}
|
||||
@include('torrent.partials.comments')
|
||||
@endsection
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
{{ config('app.name') }}
|
||||
@endif
|
||||
|
||||
{{-- cspell:words subcopy --}}
|
||||
{{-- Subcopy --}}
|
||||
@isset($actionText)
|
||||
@slot('subcopy')
|
||||
|
||||
@@ -864,8 +864,8 @@ Route::middleware('language')->group(function (): void {
|
||||
// Commands
|
||||
Route::prefix('commands')->middleware('owner')->group(function (): void {
|
||||
Route::get('/', [App\Http\Controllers\Staff\CommandController::class, 'index'])->name('commands.index');
|
||||
Route::post('/maintance-enable', [App\Http\Controllers\Staff\CommandController::class, 'maintanceEnable']);
|
||||
Route::post('/maintance-disable', [App\Http\Controllers\Staff\CommandController::class, 'maintanceDisable']);
|
||||
Route::post('/maintenance-enable', [App\Http\Controllers\Staff\CommandController::class, 'maintenanceEnable']);
|
||||
Route::post('/maintenance-disable', [App\Http\Controllers\Staff\CommandController::class, 'maintenanceDisable']);
|
||||
Route::post('/clear-cache', [App\Http\Controllers\Staff\CommandController::class, 'clearCache']);
|
||||
Route::post('/clear-view-cache', [App\Http\Controllers\Staff\CommandController::class, 'clearView']);
|
||||
Route::post('/clear-route-cache', [App\Http\Controllers\Staff\CommandController::class, 'clearRoute']);
|
||||
@@ -977,7 +977,7 @@ Route::middleware('language')->group(function (): void {
|
||||
});
|
||||
|
||||
// Laravel Log Viewer
|
||||
Route::get('/laravel-log', App\Http\Livewire\LaravelLogViewer::class)->middleware('owner')->name('laravellog.index');
|
||||
Route::get('/laravel-log', App\Http\Livewire\LaravelLogViewer::class)->middleware('owner')->name('laravel-log.index');
|
||||
|
||||
// Leakers
|
||||
Route::prefix('leakers')->group(function (): void {
|
||||
@@ -1001,7 +1001,7 @@ Route::middleware('language')->group(function (): void {
|
||||
});
|
||||
});
|
||||
|
||||
// Media Lanuages (Languages Used To Populate Language Dropdowns For Subtitles / Audios / Etc.)
|
||||
// Media Languages (Languages Used To Populate Language Dropdowns For Subtitles / Audios / Etc.)
|
||||
Route::prefix('media-languages')->group(function (): void {
|
||||
Route::name('media_languages.')->group(function (): void {
|
||||
Route::get('/', [App\Http\Controllers\Staff\MediaLanguageController::class, 'index'])->name('index');
|
||||
@@ -1187,7 +1187,7 @@ Route::middleware('language')->group(function (): void {
|
||||
});
|
||||
});
|
||||
|
||||
// Internal Useres
|
||||
// Internal Users
|
||||
Route::prefix('internal-users')->group(function (): void {
|
||||
Route::name('internal_users.')->group(function (): void {
|
||||
Route::post('/', [App\Http\Controllers\Staff\InternalUserController::class, 'store'])->name('store');
|
||||
|
||||
@@ -48,7 +48,7 @@ test('destroy aborts with a 403', function (): void {
|
||||
$response->assertForbidden();
|
||||
});
|
||||
|
||||
test('massupsert validates with a form request', function (): void {
|
||||
test('mass upsert validates with a form request', function (): void {
|
||||
$this->assertActionUsesFormRequest(
|
||||
PlaylistTorrentController::class,
|
||||
'massUpsert',
|
||||
|
||||
@@ -99,7 +99,7 @@ test('index returns an ok response', function (): void {
|
||||
// TODO: perform additional assertions
|
||||
});
|
||||
|
||||
test('maintance disable returns an ok response', function (): void {
|
||||
test('maintenance disable returns an ok response', function (): void {
|
||||
$this->markTestIncomplete('This test case was generated by Shift. When you are ready, remove this line and complete this test case.');
|
||||
|
||||
$user = User::factory()->create();
|
||||
@@ -113,7 +113,7 @@ test('maintance disable returns an ok response', function (): void {
|
||||
// TODO: perform additional assertions
|
||||
});
|
||||
|
||||
test('maintance enable returns an ok response', function (): void {
|
||||
test('maintenance enable returns an ok response', function (): void {
|
||||
$this->markTestIncomplete('This test case was generated by Shift. When you are ready, remove this line and complete this test case.');
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
@@ -78,7 +78,7 @@ test('messages', function (): void {
|
||||
$actual = $this->subject->messages();
|
||||
|
||||
expect($actual)->toEqual([
|
||||
'igdb.in' => 'The IGBB ID must be 0 if the media doesn\'t exist on IGDB or you\'re not requesting a game.',
|
||||
'igdb.in' => 'The IGDB ID must be 0 if the media doesn\'t exist on IGDB or you\'re not requesting a game.',
|
||||
'tmdb.in' => 'The TMDB ID must be 0 if the media doesn\'t exist on TMDB or you\'re not requesting a tv show or movie.',
|
||||
'imdb.in' => 'The IMDB ID must be 0 if the media doesn\'t exist on IMDB or you\'re not requesting a tv show or movie.',
|
||||
'tvdb.in' => 'The TVDB ID must be 0 if the media doesn\'t exist on TVDB or you\'re not requesting a tv show.',
|
||||
|
||||
@@ -127,7 +127,7 @@ test('messages', function (): void {
|
||||
$actual = $this->subject->messages();
|
||||
|
||||
expect($actual)->toEqual([
|
||||
'igdb.in' => "The IGBB ID must be 0 if the media doesn't exist on IGDB or you're not uploading a game.",
|
||||
'igdb.in' => "The IGDB ID must be 0 if the media doesn't exist on IGDB or you're not uploading a game.",
|
||||
'tmdb.in' => "The TMDB ID must be 0 if the media doesn't exist on TMDB or you're not uploading a tv show or movie.",
|
||||
'imdb.in' => "The IMDB ID must be 0 if the media doesn't exist on IMDB or you're not uploading a tv show or movie.",
|
||||
'tvdb.in' => "The TVDB ID must be 0 if the media doesn't exist on TVDB or you're not uploading a tv show.",
|
||||
|
||||
Reference in New Issue
Block a user