forked from mirror/pixelfed
commit
668cae7c83
|
@ -6,6 +6,7 @@ use Illuminate\Support\Facades\Http;
|
||||||
use App\Profile;
|
use App\Profile;
|
||||||
use App\Util\ActivityPub\Helpers;
|
use App\Util\ActivityPub\Helpers;
|
||||||
use App\Util\ActivityPub\HttpSignature;
|
use App\Util\ActivityPub\HttpSignature;
|
||||||
|
use Illuminate\Http\Client\ConnectionException;
|
||||||
|
|
||||||
class ActivityPubFetchService
|
class ActivityPubFetchService
|
||||||
{
|
{
|
||||||
|
@ -19,9 +20,18 @@ class ActivityPubFetchService
|
||||||
$headers['Accept'] = 'application/activity+json, application/json';
|
$headers['Accept'] = 'application/activity+json, application/json';
|
||||||
$headers['User-Agent'] = '(Pixelfed/'.config('pixelfed.version').'; +'.config('app.url').')';
|
$headers['User-Agent'] = '(Pixelfed/'.config('pixelfed.version').'; +'.config('app.url').')';
|
||||||
|
|
||||||
return Http::withHeaders($headers)
|
try {
|
||||||
->timeout(30)
|
$res = Http::withHeaders($headers)
|
||||||
->get($url)
|
->timeout(10)
|
||||||
->body();
|
->get($url);
|
||||||
|
} catch (ConnectionException $e) {
|
||||||
|
return;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!$res->ok()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return $res->body();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,10 +248,13 @@ class Helpers {
|
||||||
|
|
||||||
$hash = hash('sha256', $url);
|
$hash = hash('sha256', $url);
|
||||||
$key = "helpers:url:fetcher:sha256-{$hash}";
|
$key = "helpers:url:fetcher:sha256-{$hash}";
|
||||||
$ttl = now()->addMinutes(5);
|
$ttl = now()->addMinutes(15);
|
||||||
|
|
||||||
return Cache::remember($key, $ttl, function() use($url) {
|
return Cache::remember($key, $ttl, function() use($url) {
|
||||||
$res = ActivityPubFetchService::get($url);
|
$res = ActivityPubFetchService::get($url);
|
||||||
|
if(!$res || empty($res)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
$res = json_decode($res, true, 8);
|
$res = json_decode($res, true, 8);
|
||||||
if(json_last_error() == JSON_ERROR_NONE) {
|
if(json_last_error() == JSON_ERROR_NONE) {
|
||||||
return $res;
|
return $res;
|
||||||
|
|
Loading…
Reference in New Issue