XBackBone/app/Controllers/ClientController.php

83 lines
2.6 KiB
PHP
Raw Normal View History

2019-11-20 17:46:47 +00:00
<?php
namespace App\Controllers;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Exception\HttpNotFoundException;
use Slim\Exception\HttpUnauthorizedException;
class ClientController extends Controller
{
/**
2019-11-20 17:49:31 +00:00
* @param Request $request
* @param Response $response
* @param int $id
*
2019-11-20 17:46:47 +00:00
* @throws HttpNotFoundException
* @throws HttpUnauthorizedException
2019-11-20 17:49:31 +00:00
*
* @return Response
2019-11-20 17:46:47 +00:00
*/
public function getShareXConfig(Request $request, Response $response, int $id): Response
{
$user = $this->getUser($request, $id, true);
if ($user->token === null || $user->token === '') {
$this->session->alert(lang('no_upload_token'), 'danger');
2019-11-20 17:49:31 +00:00
2019-11-20 17:46:47 +00:00
return redirect($response, $request->getHeaderLine('Referer'));
}
2019-11-21 17:00:47 +00:00
$json = [
2019-11-20 17:46:47 +00:00
'DestinationType' => 'ImageUploader, TextUploader, FileUploader',
2019-11-20 17:49:31 +00:00
'RequestURL' => route('upload'),
'FileFormName' => 'upload',
2019-11-21 17:00:47 +00:00
'Arguments' => [
2019-11-20 17:49:31 +00:00
'file' => '$filename$',
'text' => '$input$',
2019-11-20 17:46:47 +00:00
'token' => $user->token,
2019-11-21 17:00:47 +00:00
],
2019-11-20 17:49:31 +00:00
'URL' => '$json:url$',
2019-11-20 17:46:47 +00:00
'ThumbnailURL' => '$json:url$/raw',
2019-11-20 17:49:31 +00:00
'DeletionURL' => '$json:url$/delete/'.$user->token,
2019-11-21 17:00:47 +00:00
];
2019-11-20 17:46:47 +00:00
return json($response, $json, 200, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)
->withHeader('Content-Disposition', 'attachment;filename="'.$user->username.'-ShareX.sxcu"');
}
/**
2019-11-20 17:49:31 +00:00
* @param Request $request
* @param Response $response
* @param int $id
*
2019-11-20 17:46:47 +00:00
* @throws HttpNotFoundException
* @throws HttpUnauthorizedException
* @throws \Twig\Error\LoaderError
* @throws \Twig\Error\RuntimeError
* @throws \Twig\Error\SyntaxError
2019-11-20 17:49:31 +00:00
*
* @return Response
2019-11-20 17:46:47 +00:00
*/
public function getBashScript(Request $request, Response $response, int $id): Response
{
$user = $this->getUser($request, $id, true);
if ($user->token === null || $user->token === '') {
$this->session->alert(lang('no_upload_token'), 'danger');
2019-11-20 17:49:31 +00:00
2019-11-20 17:46:47 +00:00
return redirect($response, $request->getHeaderLine('Referer'));
}
return view()->render($response->withHeader('Content-Disposition', 'attachment;filename="xbackbone_uploader_'.$user->username.'.sh"'),
'scripts/xbackbone_uploader.sh.twig',
2019-11-21 17:00:47 +00:00
[
2019-11-20 17:49:31 +00:00
'username' => $user->username,
2019-11-20 17:46:47 +00:00
'upload_url' => route('upload'),
2019-11-20 17:49:31 +00:00
'token' => $user->token,
2019-11-21 17:00:47 +00:00
]
2019-11-20 17:46:47 +00:00
);
}
2019-11-20 17:49:31 +00:00
}