Files
nexusphp/public/ajax.php

134 lines
3.2 KiB
PHP
Raw Normal View History

2022-03-19 14:55:43 +08:00
<?php
require "../include/bittorrent.php";
dbconn();
loggedinorreturn();
$action = $_POST['action'] ?? 'noAction';
$params = $_POST['params'] ?? [];
function noAction()
{
throw new \RuntimeException("no Action");
}
try {
$result = call_user_func($action, $params);
exit(json_encode(success($result)));
} catch (\Throwable $exception) {
exit(json_encode(fail($exception->getMessage(), $_POST)));
}
function toggleUserMedalStatus($params)
{
global $CURUSER;
$rep = new \App\Repositories\MedalRepository();
return $rep->toggleUserMedalStatus($params['id'], $CURUSER['id']);
}
2022-04-03 16:03:47 +08:00
function attendanceRetroactive($params)
{
global $CURUSER;
$rep = new \App\Repositories\AttendanceRepository();
return $rep->retroactive($CURUSER['id'], $params['timestamp']);
}
function getPtGen($params)
{
$rep = new Nexus\PTGen\PTGen();
$result = $rep->generate($params['url']);
if ($rep->isRawPTGen($result)) {
2022-09-04 15:56:19 +08:00
return $result;
} elseif ($rep->isIyuu($result)) {
2022-09-04 15:56:19 +08:00
return $result['data'];
} else {
return '';
}
}
2022-05-05 22:19:48 +08:00
function addClaim($params)
{
global $CURUSER;
$rep = new \App\Repositories\ClaimRepository();
return $rep->store($CURUSER['id'], $params['torrent_id']);
}
function removeClaim($params)
{
global $CURUSER;
$rep = new \App\Repositories\ClaimRepository();
return $rep->delete($params['id'], $CURUSER['id']);
}
2022-05-13 15:56:09 +08:00
function removeUserLeechWarn($params)
{
global $CURUSER;
$rep = new \App\Repositories\UserRepository();
return $rep->removeLeechWarn($CURUSER['id'], $params['uid']);
}
2022-05-25 02:15:41 +08:00
function getOffer($params)
{
$offer = \App\Models\Offer::query()->findOrFail($params['id']);
return $offer->toArray();
}
2022-06-15 15:43:33 +08:00
function approvalModal($params)
{
global $CURUSER;
$rep = new \App\Repositories\TorrentRepository();
return $rep->buildApprovalModal($CURUSER['id'], $params['torrent_id']);
}
function approval($params)
{
global $CURUSER;
foreach (['torrent_id', 'approval_status',] as $field) {
if (!isset($params[$field])) {
throw new \InvalidArgumentException("Require $field");
}
}
$rep = new \App\Repositories\TorrentRepository();
return $rep->approval($CURUSER['id'], $params);
}
function addSeedBoxRecord($params)
{
global $CURUSER;
$rep = new \App\Repositories\SeedBoxRepository();
$params['uid'] = $CURUSER['id'];
$params['type'] = \App\Models\SeedBoxRecord::TYPE_USER;
2022-07-23 15:05:32 +08:00
$params['status'] = \App\Models\SeedBoxRecord::STATUS_UNAUDITED;
return $rep->store($params);
}
function removeSeedBoxRecord($params)
{
global $CURUSER;
$rep = new \App\Repositories\SeedBoxRepository();
return $rep->delete($params['id'], $CURUSER['id']);
}
function removeHitAndRun($params)
{
global $CURUSER;
$rep = new \App\Repositories\BonusRepository();
return $rep->consumeToCancelHitAndRun($CURUSER['id'], $params['id']);
}
2022-08-10 17:38:05 +08:00
function consumeBenefit($params)
{
global $CURUSER;
$rep = new \App\Repositories\UserRepository();
return $rep->consumeBenefit($CURUSER['id'], $params);
}
2022-10-23 19:42:08 +08:00
function clearShoutBox($params)
{
global $CURUSER;
user_can('sbmanage', true);
\Nexus\Database\NexusDB::table('shoutbox')->delete();
return true;
}