Commit Graph

19359 Commits

Author SHA1 Message Date
Hugo Sales
34059a8d3d
[ATTACHMENTS][EVENT] Add onHashFile event, which can be used to deduplicate files
Currently, we simply hash the contents of the file with sha256, but in the future we can use something smarter,
which could find visual feature similarity between images
2021-09-14 13:12:51 +01:00
Hugo Sales
60a9085e56
[FORMATTING] Add utilities to remove affixes from strings 2021-09-14 13:12:51 +01:00
Hugo Sales
b647e31495
[DEPENDENCIES] Add 'embed/embed', 'nyholm/psr7' and 'symfony/dom-crawler' 2021-09-14 13:12:51 +01:00
Hugo Sales
9a7f1358c2
[ENTITY] Add utils to Attachment and AttachmentThumbnail to get the corresponding URL and html representation parameters 2021-09-14 13:12:51 +01:00
Hugo Sales
2a74dced22
[UTIL] Add TemporaryFile class, courtesy of Alexei Sorokin from v2, a class that ensures files stored in /tmp are removed, as it doesn't happen in some cases 2021-09-14 13:12:51 +01:00
Hugo Sales
7dab063a72
[PLUGINS] Remove scripts. These will need to be implemented with Commands 2021-09-14 13:12:48 +01:00
Hugo Sales
3d8c348cb8
[Emebed] Add Embed plugin and initial cleanup 2021-09-14 13:12:24 +01:00
Hugo Sales
2d91095260
[UI] Use event 'ShowAttachment' to permit plugins like Embed to alter the representation 2021-09-14 13:12:23 +01:00
Hugo Sales
94edad43d9
[UTIL] Add method to validate url 2021-09-14 13:12:23 +01:00
Hugo Sales
5c78def973
[HTTPClient] Add utility functions for all HTTP methods 2021-09-14 13:12:23 +01:00
Hugo Sales
1b8f5b7bf0
[DB] Make DB::findOneBy throw a different exception if two values are found 2021-09-14 13:12:23 +01:00
Hugo Sales
e94df546c3
[Posting] Extract and store URLs from note content. Introduce 'AttachmentStoreNew' event 2021-09-14 13:12:23 +01:00
Hugo Sales
ae0e410986
[TESTS] Fix Nickname test 2021-09-14 13:12:23 +01:00
Hugo Sales
8dff0b1d0c
[Favourite] Make twig event operate on array rather than string 2021-09-14 13:12:23 +01:00
Hugo Sales
7a90e844b7
[SECURITY][DB] Make user register 'atomic', by using a single transaction for inserting all objects, to avoid partial inserts 2021-09-14 13:12:23 +01:00
Hugo Sales
77655c1248
[TESTS] Fix wrong namespace in tests 2021-09-14 13:12:23 +01:00
Hugo Sales
aeabf64051
[PLUGIN] Change base class from Module to Plugin for all plugins 2021-09-14 13:12:23 +01:00
Hugo Sales
a66118aee7
[AVATAR] Display avatar rounded 2021-09-14 13:12:22 +01:00
Diogo Peralta Cordeiro
3afa872cec
[UI] Use thumbnail path for thumbs 2021-09-14 13:12:22 +01:00
Hugo Sales
e1995f44ce
[ATTACHMENTS] Move thumbnail controller to core and cleanup 2021-09-14 13:12:22 +01:00
Hugo Sales
3a7e92ed01
[ImageEncoder] Change preferred type to always be WEBP 2021-09-14 13:12:22 +01:00
Hugo Sales
1b1b3007db
[AVATAR] Display avatar as round on the default theme 2021-09-14 13:12:22 +01:00
Hugo Sales
e6c6e7afd7
[AVATAR] Fix JS cropping script and save square image, in case other themes need it 2021-09-14 13:12:22 +01:00
Hugo Sales
d2bb5bba14
[ImageEncoder] Move DB::persist call to AttachmentThumbnail 2021-09-14 13:12:22 +01:00
Hugo Sales
0c8c5a4b87
[ImageEncoder] Fix error when not providing a width and/or height 2021-09-14 13:12:22 +01:00
Diogo Peralta Cordeiro
e385a9ac29
[ATTACHMENTS] Even more further refactoring
Introduce Encoder plugins Instead of abstract upload and thumb modules

Ported attachment routes. In v3 thumbnail depends on existing attachment
so route updated accordingly.
2021-09-14 13:12:18 +01:00
Diogo Peralta Cordeiro
0eaccc32fe
[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
2021-09-14 13:11:51 +01:00
Hugo Sales
cdef6858ce
[ENTITY] Cache AttachmentThumbnail query result 2021-09-14 13:11:51 +01:00
Hugo Sales
65999bd183
[Poll] Move tables from core to plugin 2021-09-14 13:11:51 +01:00
Hugo Sales
716ca063d5
[ImageThumbnail] Finish image thumbnailing functionality 2021-09-14 13:11:51 +01:00
Hugo Sales
19850b5e0d
[DB] Fix bug in custom criteria format wrangling 2021-09-14 13:11:51 +01:00
Hugo Sales
e834ac2c8d
[DEPENDENCIES] Add php-vips 2021-09-14 13:11:51 +01:00
Hugo Sales
1d6d20aacb
[TOOLS] In pre-commit hook, only run php-doc-check if some PHP file changed 2021-09-14 13:11:51 +01:00
Hugo Sales
081b0de919
[DOCKER] Add VIPS PHP extension to Docker build 2021-09-14 13:11:51 +01:00
Hugo Sales
4358656c55
[ImageThumbnail] Implement image resizing with Intervention/Image 2021-09-14 13:11:50 +01:00
Hugo Sales
ee87961d96
[ImageThumbnail] Structure of plugin to generate thumbnails for image attachments 2021-09-14 13:11:50 +01:00
Hugo Sales
7284c833a6
[DB] Allow DQL queries with table name rather than entity 2021-09-14 13:11:50 +01:00
Hugo Sales
0d01f1d060
[CORE] Add functionality to App\Core\Controller to get and validate GET parameters 2021-09-14 13:11:50 +01:00
Hugo Sales
c053e8da8e
[Posting] Rename file to attachment and cache result of actor tag query 2021-09-14 13:11:50 +01:00
Hugo Sales
5579f4fa5d
[MEDIA] Rename File to Attachment 2021-09-14 13:11:50 +01:00
Hugo Sales
dc5bdfa1fb
[CORE] Rename NoteScope to VisibilityScope, as it will be used for attachment visbility too 2021-09-14 13:11:50 +01:00
Hugo Sales
9659762726
[DB] Add table map which allows using table names rather than entities in Doctrine operations 2021-09-14 13:11:50 +01:00
Hugo Sales
c44443b52c
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:11:50 +01:00
Hugo Sales
483ac38888
[Directory] Fixup directory plugin 2021-09-14 13:11:49 +01:00
Diogo Peralta Cordeiro
cc9f2d6ff2
[DOCUMENTATION] Three books instead of only one
The User one is intended to illustrate the various common use cases, possibilities regarding customization and introduce the existing functionalities.

The Administrator one explains the step by step of how to install and maintain a GNU social instance, be it as node of The Free Network or as an intranet social network in a company setting.

The Developer one starts by introducing the Modules system and architecture, then the plugin development process and finally the exciting internals of GNU social for those looking forward to make the most advanced contributions.
2021-09-14 13:11:49 +01:00
Diogo Peralta Cordeiro
e7ed325ac6
[MEDIA] Refactor File as Attachment 2021-09-14 13:11:49 +01:00
Hugo Sales
566c7694b5
[CONFIG][TWIG] Move twig config to php code to add support for placing templates in modules (plugins and components) 2021-09-14 13:11:49 +01:00
Hugo Sales
a220d07b0f
[Directory] Move templates from core to plugin 2021-09-14 13:11:49 +01:00
Hugo Sales
ed59cce0f9
[COMPOSER][Media] Add example composer.json in plugins/Media 2021-09-14 13:11:49 +01:00
Hugo Sales
299bc5b551
[TWIG] Add way to launch events from TWIG, capture service and add way to render from a string 2021-09-14 13:11:49 +01:00