Commit Graph

480 Commits

Author SHA1 Message Date
Diogo Peralta Cordeiro 036e9cb58e
[Avatar] Preserve uploaded filename and use Avatar's own route instead of attachment 2021-09-14 13:13:30 +01:00
Diogo Peralta Cordeiro 9e4cac0123
[ENTITY] Refactor RemoteURL entities to Link
RemoteURL was being an awfully confusing term.
2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 4cc4523632
[Posting] Re-add original file to attachment on upload, if it was previously removed 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 75f70f8182
[ENTITY][Posting] Remove GSActorToRemoteURL, Fix URL database store 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro f5175cc59d
[ATTACHMENTS] Always store in the same location 2021-09-14 13:13:24 +01:00
Diogo Peralta Cordeiro 3f61537140
[ENTITY] Split Attachment in various new entities
Remove Attachment Scope
Fixed some minor bugs

Scope will be implemented later in v3. It doesn't make sense to have
the scope handling being per attachment. Different actors can post
the same attachment with different scopes. The attachment controller
will assume the highest level of scope applied to the attachment and
the rest will be handled at the note level.

Motivation:
* Remove title from attachment, as it's part of the relation between attachment and note.
* Remove actor from attachment, many actors may publish the same attachment.
* Remove is_local from attachment,  as it's part of the relation between attachment and note.
* Remove remote_url from attachment, different urls can return the same attachment.

Addition:
* Attachment now has a lives attribute,  it's a reference counter with a nicer name
* GSActorToAttachment
* GSActorToRemoteURL
* RemoteURL
* RemoteURLToNote
* RemoteURLToAttachment
* AttachmentToNote now has a title attribute
2021-09-14 13:13:24 +01:00
Hugo Sales 39006fb6b5
[DB][Attachments] Use count function rathar than fetch and count, rename to refCount, rather than countDepencies 2021-09-14 13:13:24 +01:00
Diogo Peralta Cordeiro a77f51dd06
[Avatar] Delete attachment only if safe 2021-09-14 13:13:21 +01:00
Diogo Peralta Cordeiro 21362d1e4d
[ATTACHMENTS] Add dependencies counter 2021-09-14 13:13:21 +01:00
Diogo Peralta Cordeiro 0c612bddbe
[Avatar] Store as regular attachments 2021-09-14 13:13:21 +01:00
Diogo Peralta Cordeiro 3334aca7b9
[Avatar] Move entity from core to component 2021-09-14 13:13:20 +01:00
Hugo Sales 88dd9e542f
[CORE][GSFile] Change actor_id paramenter of validateAndStoreFileAsAttachment to optional and reorder them and their usages 2021-09-14 13:13:17 +01:00
Eliseu Amaro c8a8e94d48
[SETTINGS][PLUGIN][CONTROLLER] Populate profile tabs event added. Settings base template populated with such event for plugins and components.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:12 +01:00
Diogo Peralta Cordeiro 861732176e
[Media] Support any kind of thumbnails in the Core
Sanitize Attachments instead of Validate (part 1)
Ensure the intended filetypes and mimetypes during Vips conversions (part 1)
Various bug fixes
2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro 488e700fab
[POSTING] Make it possible for plugins to change the placeholder string 2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro c8cf8c3f13
[FILE][TemporaryFile] Fix various issues now that we also have Symfony's file abstractions 2021-09-14 13:13:03 +01:00
Hugo Sales d31c3b1784
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:13:01 +01:00
Hugo Sales 2b83a4b627
[UTILS][TemporaryFile] Change way TemporaryFile takes arguments and it's internal implementation 2021-09-14 13:12:58 +01:00
Diogo Peralta Cordeiro ab060332f0
[Posting] Don't sanitize on storage
We prefer to have the original input in database and sanitize on output when appropriate
2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro 8f43c8b405
[AUTOGENERATED] Update auto generated code 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro c9090e6cee
[ATTACHMENTS][GSFile] Rename ValidateAndStore functions 2021-09-14 13:12:56 +01:00
Hugo Sales 353595eb97
[Posting] Add missing default visibility option 2021-09-14 13:12:55 +01:00
Hugo Sales d11615ded6
[Avatar][Embed] Change use of TemporaryFile::getPath to getRealPath 2021-09-14 13:12:55 +01:00
Hugo Sales e9b2b18093
[Avatar] Implement avatar deletion 2021-09-14 13:12:53 +01:00
Hugo Sales 2ec7059076
[AVATAR] Move avatar settings page to Avatar component 2021-09-14 13:12:53 +01:00
Diogo Peralta Cordeiro cbd383f92d
[RIGHT] Introduce component abstraction 2021-09-14 13:12:53 +01:00
Hugo Sales aea8639d44
[ATTACHMENTS] Restrict thumbnail generation to allowed sizes. Defaults to only configured sizes, but can be extended with the event 'GetAllowedThumbnailSizes'. The intention is to prevent DoS attacks, since handling a thumbnail request is a relatively slow process 2021-09-14 13:12:53 +01:00
Hugo Sales a7ef2babe6
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:12:52 +01:00
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 e94df546c3
[Posting] Extract and store URLs from note content. Introduce 'AttachmentStoreNew' event 2021-09-14 13:12:23 +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 4358656c55
[ImageThumbnail] Implement image resizing with Intervention/Image 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 c44443b52c
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:11:50 +01:00
Diogo Peralta Cordeiro ccf3aa990a
[MODULES] Introduce the concept of abstract modules to V3
Introduce placeholder for abstract upload and thumb modules
Temporarily supress some bugs
2021-09-14 13:11:45 +01:00
Daniel 7a299162e1
[Poll] Polls now have an associated note, poll templates, start_show_styles event, started css 2021-09-14 13:10:13 +01:00
Hugo Sales 481027b09b
[AUTOGENERATED][DB][File][GroupJoinQueue] Update autogenerated code and add select fields as specified in the previous commit 2021-09-14 13:06:57 +01:00
Hugo Sales 460712e15e
[GIT] Change my email to the new one in all files and bump copyright year 2021-09-14 13:06:56 +01:00
Hugo Sales e8feb2ae84
[DOCUMENTATION][REFACTOR] Add documentation to all flagged function and do some small cleanup 2021-09-14 13:06:55 +01:00
Hugo Sales 74350becc5
[POSTING] Fix missing use statement 2021-09-14 13:06:54 +01:00
Hugo Sales 29082f4aa9
POSTING remove REPLY route 2021-09-14 13:06:52 +01:00
Hugo Sales a248f23cef
[Reply] Move reply functionality to a plugin 2021-09-14 13:06:52 +01:00
Hugo Sales 4c15271d36
[UI] Display error when submitted form is invalid 2021-09-14 13:06:51 +01:00
Hugo Sales 41f90f07b1
[Bridge] Replace zero dates with CURRENT_TIMESTAMP 2021-09-14 13:06:51 +01:00
Hugo Sales cc758f6a8e
[AUTOGENERATED] Update autogenerated code in module entities 2021-09-14 13:06:51 +01:00
Hugo Sales 9573cab4cb
[Posting] Fix form name and remove unused recycle route and controller 2021-09-14 13:06:50 +01:00
Hugo Sales 9865798766
[Media] Add cache control directive to all files served 2021-09-14 13:06:50 +01:00
Hugo Sales 6165f7cd55
[Media] Display images and videos inline in notes 2021-09-14 13:06:49 +01:00
Hugo Sales 26f01c4c92
[Posting] Fix posting form name and css 2021-09-14 13:06:49 +01:00
Hugo Sales 6dbd239544
[Posting] Add missing includes 2021-09-14 13:06:48 +01:00
rainydaysavings a804c5f981
[COMPONENT][CONTROLLER][TWIG] Recycle component work 2021-09-14 13:06:47 +01:00
rainydaysavings e1e3e2d9b3
[COMPONENT] Favourite initial implementation 2021-09-14 13:06:46 +01:00
rainydaysavings f1a687b057
[COMPONENT] Fixing typo 2021-09-14 13:06:45 +01:00
Hugo Sales 0b50905ac8
[NOTE][UI] Add note replying and UI displaying 2021-09-14 13:06:45 +01:00
rainydaysavings ecfda08d37
[CONTROLLER] Reply initial implementation 2021-09-14 13:06:44 +01:00
rainydaysavings bc66e2c2a2
[COMPONENT] Posting form restructure and minor fixes 2021-09-14 13:06:44 +01:00
rainydaysavings 1eab561b40
[COMPONENT] Posting form now shows a random default string 2021-09-14 13:06:44 +01:00
rainydaysavings 9b421e0095
[COMPONENTS] Small fix 2021-09-14 13:06:43 +01:00
rainydaysavings 1563ebc546
[COMPONENT] Posts scope initial form 2021-09-14 13:06:43 +01:00
Hugo Sales 4507b12976
[MEDIA] Only try to get an avatar if a user is logged in 2021-09-14 13:05:58 +01:00
Hugo Sales 6ed89c77f4
[UI][NOTE] Post and see attachments 2021-09-14 13:05:57 +01:00
Hugo Sales 9649bec01e
[MEDIA][CACHE] Cache avatar queries and delete stale values; small refactoring 2021-09-14 13:05:57 +01:00
Hugo Sales e3c5d7e5dc
[UI][MEDIA] Add actor avatar in feed timeline 2021-09-14 13:05:57 +01:00
Hugo Sales 65a129aac6
[UI][CACHE][DB] Add follow counts to left panel, caching the results; change follow table 2021-09-14 13:05:56 +01:00
Hugo Sales d548dc9284
[MODULE][Left][UI][TAGS] Add Left module which handles fetching tags and followers, fix self tags 2021-09-14 13:05:56 +01:00
Hugo Sales 31ccb2d07b
[DB][File] Remove timestamp, add actor_id 2021-09-14 13:05:55 +01:00
Hugo Sales f255d29078
[Media] Use utils 2021-09-14 13:05:55 +01:00
Hugo Sales 688ee18411
[Media] Move code from media.php to utils.php 2021-09-14 13:05:55 +01:00
Hugo Sales 72876fe8dc
[MODULE][Posting] Add Posting module, which handles notice posting 2021-09-14 13:05:55 +01:00
Hugo Sales e1002eb605
[MEDIA] Move avatar fetching and adding to ouput to media component 2021-09-14 13:05:55 +01:00
Hugo Sales 8716d700a6
[CORE][DB] Fix uses of db tables after previous restructure 2021-09-14 13:05:53 +01:00
Hugo Sales 4128a5403d
[MEDIA][EXCEPTIONS] Fix errors and deprecations 2021-09-14 13:05:51 +01:00
Hugo Sales 6438092d86
[AVATAR] Update way avatar is sent, to use proper symfony responses, make config('site', 's_static_delivery') into a boolean 2021-09-14 13:05:51 +01:00
Hugo Sales bd8f4bd277
[AVATAR] Fixed avatar upload, added avatar inline download and updated template and base controller 2021-09-14 13:05:51 +01:00
Hugo Sales 113c250c41
[MEDIA][AVATAR] Handle avatar validation and storage 2021-09-14 13:05:50 +01:00
Hugo Sales 86b9f7d7a1
[COMPONENT][PLUGIN] Move Email and XMPP notification handlers from components to plugins, so they can be disabled 2021-09-14 13:05:50 +01:00
Hugo Sales 3fb45176b8
[COMPONENT] Remove 'post on status change' option for email transport 2021-09-14 13:05:49 +01:00
Hugo Sales e5082657b7
[COMPONENT][PLUGIN] Small refactor and add license 2021-09-14 13:05:48 +01:00
Hugo Sales da0d88e0f2
[MODULE] Renamed modules to components 2021-09-14 13:05:46 +01:00