[ATTACHMENTS] Further refactoring

Some key points:
- Components and Plugins shouldn't extend Module directly
- Avatars should be fetched via GSActor ID, not by nickname as that isn't unique
- Avatar now is a separate Component
- Common file utilities are now to be placed in Core\GSFile, this will
  handle storage and trigger validation
- Some bug fixes
This commit is contained in:
2021-04-18 02:17:57 +01:00
parent bbc2fe1b5a
commit 0f52638a80
25 changed files with 408 additions and 378 deletions

View File

@@ -25,11 +25,11 @@ use App\Core\Cache;
use App\Core\DB\DB;
use App\Core\Entity;
use App\Core\Event;
use App\Core\GSFile;
use App\Core\Log;
use App\Util\Common;
use App\Util\Exception\NotFoundException;
use App\Util\Exception\ServerException;
use Component\Media\Media;
use DateTimeInterface;
/**
@@ -126,7 +126,7 @@ class AttachmentThumbnail extends Entity
} catch (NotFoundException $e) {
$thumbnail = self::create(['attachment_id' => $attachment->getId(), 'width' => $width, 'height' => $height, 'attachment' => $attachment]);
$event_map = ['image' => 'ResizeImage', 'video' => 'ResizeVideo'];
$major_mime = Media::mimetypeMajor($attachment->getMimetype());
$major_mime = GSFile::mimetypeMajor($attachment->getMimetype());
if (in_array($major_mime, array_keys($event_map))) {
Event::handle($event_map[$major_mime], [$attachment, $thumbnail, $width, $height, $crop]);
return $thumbnail;