mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-19 04:51:27 +00:00
Merge pull request #4544 from pixelfed/staging
Update MediaStorageService, improve head header handling
This commit is contained in:
commit
45090a0e76
5 changed files with 29 additions and 28 deletions
|
@ -35,6 +35,9 @@
|
||||||
- Update TransformImports command, increment status_count on profile model ([ba7551d8](https://github.com/pixelfed/pixelfed/commit/ba7551d8))
|
- Update TransformImports command, increment status_count on profile model ([ba7551d8](https://github.com/pixelfed/pixelfed/commit/ba7551d8))
|
||||||
- Update AP Helpers, improve url validation and add optional dns verification, disabled by default ([2bef3e41](https://github.com/pixelfed/pixelfed/commit/2bef3e41))
|
- Update AP Helpers, improve url validation and add optional dns verification, disabled by default ([2bef3e41](https://github.com/pixelfed/pixelfed/commit/2bef3e41))
|
||||||
- Update admin users blade view, show last_active_at and other info ([e0b48b29](https://github.com/pixelfed/pixelfed/commit/e0b48b29))
|
- Update admin users blade view, show last_active_at and other info ([e0b48b29](https://github.com/pixelfed/pixelfed/commit/e0b48b29))
|
||||||
|
- Update MediaStorageService, improve head header handling ([3590adbd](https://github.com/pixelfed/pixelfed/commit/3590adbd))
|
||||||
|
- Update admin user view, improve previews ([ff2c16fe](https://github.com/pixelfed/pixelfed/commit/ff2c16fe))
|
||||||
|
- Update FanoutDeletePipeline, fix AP object ([0d802c31](https://github.com/pixelfed/pixelfed/commit/0d802c31))
|
||||||
- ([](https://github.com/pixelfed/pixelfed/commit/))
|
- ([](https://github.com/pixelfed/pixelfed/commit/))
|
||||||
|
|
||||||
## [v0.11.8 (2023-05-29)](https://github.com/pixelfed/pixelfed/compare/v0.11.7...v0.11.8)
|
## [v0.11.8 (2023-05-29)](https://github.com/pixelfed/pixelfed/compare/v0.11.7...v0.11.8)
|
||||||
|
|
|
@ -53,10 +53,10 @@ class FanoutDeletePipeline implements ShouldQueue
|
||||||
"id" => $profile->permalink('#delete'),
|
"id" => $profile->permalink('#delete'),
|
||||||
"type" => "Delete",
|
"type" => "Delete",
|
||||||
"actor" => $profile->permalink(),
|
"actor" => $profile->permalink(),
|
||||||
"to" => [
|
"object" => [
|
||||||
"https://www.w3.org/ns/activitystreams#Public",
|
"type" => "Person",
|
||||||
|
"id" => $profile->permalink()
|
||||||
],
|
],
|
||||||
"object" => $profile->permalink(),
|
|
||||||
];
|
];
|
||||||
|
|
||||||
$payload = json_encode($activity);
|
$payload = json_encode($activity);
|
||||||
|
|
|
@ -20,8 +20,8 @@ class Media extends Model
|
||||||
protected $guarded = [];
|
protected $guarded = [];
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'srcset' => 'array',
|
'srcset' => 'array',
|
||||||
'deleted_at' => 'datetime'
|
'deleted_at' => 'datetime'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function status()
|
public function status()
|
||||||
|
@ -63,7 +63,7 @@ class Media extends Model
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this->media_path && $this->mime && in_array($this->mime, ['image/jpeg', 'image/png'])) {
|
if($this->media_path && $this->mime && in_array($this->mime, ['image/jpeg', 'image/png'])) {
|
||||||
return $this->remote_media || Str::startsWith($this->media_path, 'http') ?
|
return $this->remote_media || Str::startsWith($this->media_path, 'http') ?
|
||||||
$this->media_path :
|
$this->media_path :
|
||||||
url(Storage::url($this->media_path));
|
url(Storage::url($this->media_path));
|
||||||
}
|
}
|
||||||
|
@ -78,6 +78,9 @@ class Media extends Model
|
||||||
|
|
||||||
public function mimeType()
|
public function mimeType()
|
||||||
{
|
{
|
||||||
|
if(!$this->mime) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
return explode('/', $this->mime)[0];
|
return explode('/', $this->mime)[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ use App\Services\AccountService;
|
||||||
use App\Http\Controllers\AvatarController;
|
use App\Http\Controllers\AvatarController;
|
||||||
use GuzzleHttp\Exception\RequestException;
|
use GuzzleHttp\Exception\RequestException;
|
||||||
use App\Jobs\MediaPipeline\MediaDeletePipeline;
|
use App\Jobs\MediaPipeline\MediaDeletePipeline;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class MediaStorageService {
|
class MediaStorageService {
|
||||||
|
|
||||||
|
@ -42,27 +43,16 @@ class MediaStorageService {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$h = $r->getHeaders();
|
$h = Arr::mapWithKeys($r->getHeaders(), function($item, $key) {
|
||||||
|
return [strtolower($key) => last($item)];
|
||||||
|
});
|
||||||
|
|
||||||
if (isset($h['content-length']) && isset($h['content-type'])) {
|
if(!isset($h['content-length'], $h['content-type'])) {
|
||||||
if(empty($h['content-length']) || empty($h['content-type'])) {
|
return false;
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
$len = is_array($h['content-length']) ? $h['content-length'][0] : $h['content-length'];
|
|
||||||
$mime = is_array($h['content-type']) ? $h['content-type'][0] : $h['content-type'];
|
|
||||||
} else {
|
|
||||||
if (isset($h['Content-Length'], $h['Content-Type']) == false) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(empty($h['Content-Length']) || empty($h['Content-Type']) ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$len = is_array($h['Content-Length']) ? $h['Content-Length'][0] : $h['Content-Length'];
|
|
||||||
$mime = is_array($h['Content-Type']) ? $h['Content-Type'][0] : $h['Content-Type'];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$len = (int) $h['content-length'];
|
||||||
|
$mime = $h['content-type'];
|
||||||
|
|
||||||
if($len < 10 || $len > ((config_cache('pixelfed.max_photo_size') * 1000))) {
|
if($len < 10 || $len > ((config_cache('pixelfed.max_photo_size') * 1000))) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -140,10 +140,15 @@
|
||||||
<p class="title h4 font-weight-bold mt-2 py-2">Recent Posts</p>
|
<p class="title h4 font-weight-bold mt-2 py-2">Recent Posts</p>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@foreach($profile->statuses()->whereHas('media')->latest()->take(9)->get() as $item)
|
@foreach($profile->statuses()->whereHas('media')->latest()->take(16)->get() as $item)
|
||||||
<div class="col-12 col-md-4 col-sm-6 px-0" style="margin-bottom: 1px;">
|
@php($post = \App\Services\StatusService::get($item->id, false))
|
||||||
|
<div class="col-12 col-md-3 col-sm-6 mb-3 px-0">
|
||||||
<a href="{{$item->url()}}">
|
<a href="{{$item->url()}}">
|
||||||
<img src="{{$item->thumb(true)}}" width="200px" height="200px">
|
@if($post)
|
||||||
|
<img src="{{$post['media_attachments'][0]['url']}}" width="200px" height="200px" style="object-fit: cover;" onerror="this.src='/storage/no-preview.png';this.onerror=null;">
|
||||||
|
@else
|
||||||
|
<img src="/storage/no-preview.png" width="200px" height="200px">
|
||||||
|
@endif
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
Loading…
Reference in a new issue