|
|
|
@ -66,6 +66,7 @@ use App\Jobs\VideoPipeline\{
|
|
|
|
|
use App\Services\{
|
|
|
|
|
AccountService,
|
|
|
|
|
BookmarkService,
|
|
|
|
|
BouncerService,
|
|
|
|
|
CollectionService,
|
|
|
|
|
FollowerService,
|
|
|
|
|
InstanceService,
|
|
|
|
@ -130,6 +131,11 @@ class ApiV1Controller extends Controller
|
|
|
|
|
if(!$request->user()) {
|
|
|
|
|
return response('', 403);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_signups')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$client = $request->user()->token()->client;
|
|
|
|
|
$res = [
|
|
|
|
|
'name' => $client->name,
|
|
|
|
@ -149,6 +155,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'redirect_uris' => 'required'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_signups')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$uris = implode(',', explode('\n', $request->redirect_uris));
|
|
|
|
|
|
|
|
|
|
$client = Passport::client()->forceFill([
|
|
|
|
@ -191,6 +201,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
abort_if(!$user, 403);
|
|
|
|
|
abort_if($user->status != null, 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_signups')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$res = $request->has(self::PF_API_ENTITY_KEY) ? AccountService::get($user->profile_id) : AccountService::getMastodon($user->profile_id);
|
|
|
|
|
|
|
|
|
|
$res['source'] = [
|
|
|
|
@ -213,6 +227,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
*/
|
|
|
|
|
public function accountById(Request $request, $id)
|
|
|
|
|
{
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$res = $request->has(self::PF_API_ENTITY_KEY) ? AccountService::get($id, true) : AccountService::getMastodon($id, true);
|
|
|
|
|
if(!$res) {
|
|
|
|
|
return response()->json(['error' => 'Record not found'], 404);
|
|
|
|
@ -229,6 +247,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'avatar' => 'sometimes|mimetypes:image/jpeg,image/png|max:' . config('pixelfed.max_avatar_size'),
|
|
|
|
|
'display_name' => 'nullable|string|max:30',
|
|
|
|
@ -466,6 +488,11 @@ class ApiV1Controller extends Controller
|
|
|
|
|
public function accountFollowersById(Request $request, $id)
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$account = AccountService::get($id);
|
|
|
|
|
abort_if(!$account, 404);
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
@ -557,6 +584,11 @@ class ApiV1Controller extends Controller
|
|
|
|
|
public function accountFollowingById(Request $request, $id)
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$account = AccountService::get($id);
|
|
|
|
|
abort_if(!$account, 404);
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
@ -647,6 +679,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
*/
|
|
|
|
|
public function accountStatusesById(Request $request, $id)
|
|
|
|
|
{
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
@ -748,6 +784,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
|
|
|
|
|
$target = Profile::where('id', '!=', $user->profile_id)
|
|
|
|
@ -832,6 +872,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
|
|
|
|
|
$target = Profile::where('id', '!=', $user->profile_id)
|
|
|
|
@ -900,6 +944,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'id' => 'required|array|min:1|max:20',
|
|
|
|
|
'id.*' => 'required|integer|min:1|max:' . PHP_INT_MAX
|
|
|
|
@ -932,6 +980,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'resolve' => 'nullable'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$query = $request->input('q');
|
|
|
|
|
$limit = $request->input('limit') ?? 20;
|
|
|
|
@ -971,6 +1023,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'page' => 'nullable|integer|min:1|max:10'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$limit = $request->input('limit') ?? 40;
|
|
|
|
|
|
|
|
|
@ -1003,6 +1059,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$pid = $user->profile_id ?? $user->profile->id;
|
|
|
|
|
|
|
|
|
@ -1065,6 +1125,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$pid = $user->profile_id ?? $user->profile->id;
|
|
|
|
|
|
|
|
|
@ -1144,6 +1208,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'limit' => 'sometimes|integer|min:1|max:20'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$maxId = $request->input('max_id');
|
|
|
|
|
$minId = $request->input('min_id');
|
|
|
|
@ -1197,6 +1265,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
|
|
|
|
|
$status = StatusService::getMastodon($id, false);
|
|
|
|
@ -1256,6 +1328,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
|
|
|
|
|
$status = Status::findOrFail($id);
|
|
|
|
@ -1312,6 +1388,11 @@ class ApiV1Controller extends Controller
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'limit' => 'sometimes|integer|min:1|max:100'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
|
|
|
|
|
$res = FollowRequest::whereFollowingId($user->profile->id)
|
|
|
|
@ -1552,6 +1633,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'file.*' => [
|
|
|
|
|
'required_without:file',
|
|
|
|
@ -1685,6 +1770,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'description' => 'nullable|string|max:' . config_cache('pixelfed.max_altext_length')
|
|
|
|
|
]);
|
|
|
|
@ -1735,6 +1824,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
|
|
|
|
|
$media = Media::whereUserId($user->id)
|
|
|
|
@ -1756,6 +1849,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'file.*' => [
|
|
|
|
|
'required_without:file',
|
|
|
|
@ -1929,6 +2026,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$pid = $user->profile_id;
|
|
|
|
|
|
|
|
|
@ -1982,6 +2083,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$pid = $user->profile_id;
|
|
|
|
|
|
|
|
|
@ -2018,6 +2123,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api_strict_mode')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'limit' => 'nullable|integer|min:1|max:100',
|
|
|
|
|
'min_id' => 'nullable|integer|min:1|max:'.PHP_INT_MAX,
|
|
|
|
@ -2097,6 +2206,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'limit' => 'sometimes|integer|min:1|max:100'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api_strict_mode')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$napi = $request->has(self::PF_API_ENTITY_KEY);
|
|
|
|
|
$page = $request->input('page');
|
|
|
|
|
$min = $request->input('min_id');
|
|
|
|
@ -2244,6 +2357,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'local' => 'sometimes'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api_strict_mode')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$napi = $request->has(self::PF_API_ENTITY_KEY);
|
|
|
|
|
$min = $request->input('min_id');
|
|
|
|
|
$max = $request->input('max_id');
|
|
|
|
@ -2371,6 +2488,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'scope' => 'nullable|in:inbox,sent,requests'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api_strict_mode')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$limit = $request->input('limit', 20);
|
|
|
|
|
$scope = $request->input('scope', 'inbox');
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
@ -2437,6 +2558,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api_strict_mode')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
|
|
|
|
|
$res = $request->has(self::PF_API_ENTITY_KEY) ? StatusService::get($id, false) : StatusService::getMastodon($id, false);
|
|
|
|
@ -2473,6 +2598,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api_strict_mode')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$pid = $user->profile_id;
|
|
|
|
|
$status = StatusService::getMastodon($id, false);
|
|
|
|
@ -2558,6 +2687,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'limit' => 'sometimes|integer|min:1|max:80'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$limit = $request->input('limit', 10);
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$pid = $user->profile_id;
|
|
|
|
@ -2650,6 +2783,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'limit' => 'nullable|integer|min:1|max:80'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$limit = $request->input('limit', 10);
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$pid = $user->profile_id;
|
|
|
|
@ -2739,6 +2876,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'status' => 'nullable|string',
|
|
|
|
|
'in_reply_to_id' => 'nullable',
|
|
|
|
@ -2937,6 +3078,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$status = Status::whereProfileId($request->user()->profile->id)
|
|
|
|
|
->findOrFail($id);
|
|
|
|
|
|
|
|
|
@ -2963,6 +3108,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$status = Status::whereScope('public')->findOrFail($id);
|
|
|
|
|
|
|
|
|
@ -3009,6 +3158,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = $request->user();
|
|
|
|
|
$status = Status::whereScope('public')->findOrFail($id);
|
|
|
|
|
|
|
|
|
@ -3050,6 +3203,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request,[
|
|
|
|
|
'page' => 'nullable|integer|max:40',
|
|
|
|
|
'min_id' => 'nullable|integer|min:0|max:' . PHP_INT_MAX,
|
|
|
|
@ -3112,6 +3269,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'limit' => 'nullable|integer|min:1|max:40',
|
|
|
|
|
'max_id' => 'nullable|integer|min:0',
|
|
|
|
@ -3179,6 +3340,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$status = Status::findOrFail($id);
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
|
|
|
|
|
@ -3218,6 +3383,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$status = Status::findOrFail($id);
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
|
|
|
|
|
@ -3249,6 +3418,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'q' => 'required|string|min:1|max:100',
|
|
|
|
|
'account_id' => 'nullable|string',
|
|
|
|
@ -3276,6 +3449,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'limit' => 'integer|min:1|max:40'
|
|
|
|
|
]);
|
|
|
|
@ -3313,6 +3490,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
'sort' => 'in:all,newest,popular'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$limit = $request->input('limit', 3);
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
|
$status = StatusService::getMastodon($id, false);
|
|
|
|
@ -3404,6 +3585,10 @@ class ApiV1Controller extends Controller
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$status = Status::findOrFail($id);
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
|
abort_if(!in_array($status->scope, ['public', 'unlisted', 'private']), 404);
|
|
|
|
@ -3420,6 +3605,11 @@ class ApiV1Controller extends Controller
|
|
|
|
|
public function discoverAccountsPopular(Request $request)
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
|
|
|
|
|
|
$ids = Cache::remember('api:v1.1:discover:accounts:popular', 86400, function() {
|
|
|
|
@ -3467,6 +3657,11 @@ class ApiV1Controller extends Controller
|
|
|
|
|
public function getPreferences(Request $request)
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
|
$account = AccountService::get($pid);
|
|
|
|
|
|
|
|
|
@ -3514,6 +3709,11 @@ class ApiV1Controller extends Controller
|
|
|
|
|
public function getMarkers(Request $request)
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$type = $request->input('timeline');
|
|
|
|
|
if(is_array($type)) {
|
|
|
|
|
$type = $type[0];
|
|
|
|
@ -3534,6 +3734,11 @@ class ApiV1Controller extends Controller
|
|
|
|
|
public function setMarkers(Request $request)
|
|
|
|
|
{
|
|
|
|
|
abort_if(!$request->user(), 403);
|
|
|
|
|
|
|
|
|
|
if(config('pixelfed.bouncer.cloud_ips.ban_api')) {
|
|
|
|
|
abort_if(BouncerService::checkIp($request->ip()), 404);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$pid = $request->user()->profile_id;
|
|
|
|
|
$home = $request->input('home.last_read_id');
|
|
|
|
|
$notifications = $request->input('notifications.last_read_id');
|
|
|
|
|