Commit Graph

5659 Commits

Author SHA1 Message Date
Diogo Peralta Cordeiro 56ba7bd845
[ImageEncoder][VideoEncoder] Properly decide when to take action 2021-10-27 04:19:33 +01:00
Eliseu Amaro 60b15ea79d
[Plugins][FAVOURITE] No longer a form, a link to a new page is provided instead. The amount of forms per page were blocking rendering for the majority of its duration. 2021-10-27 04:19:32 +01:00
Hugo Sales 299e893ca9
[TOOLS][PHPStan][DocCheck] Fix errors found by PHPStan and Doc Check 2021-10-27 04:19:31 +01:00
Diogo Peralta Cordeiro 028ea79fff
[CORE][Router] Properly act on Accept headers 2021-10-27 04:19:30 +01:00
Eliseu Amaro f78cfed41a
[TWIG][CSS] Template refactoring, classes and their respective CSS is now more consistent. CSS variables are back. 2021-10-27 04:19:29 +01:00
Diogo Peralta Cordeiro 8fdc52636f
[ActivityPub] Port RSA 2021-10-27 04:19:29 +01:00
Diogo Peralta Cordeiro 8544fe157b
[FreeNetwork] First steps porting webfinger/lrdd to v3, GET webfinger requests already have a basic result 2021-10-27 04:19:29 +01:00
Hugo Sales 9109c61af5
[TOOLS][CS-FIXER] Run new PHP CS Fixer config. Notably, adds strict_types 2021-10-27 04:19:28 +01:00
Diogo Peralta Cordeiro 517ed953f2
[FreeNetwork] First step towards de-duplication mechanism for federation
Refactored AS2 inside AP; [ENTITY][Activity] went from core to AP
Webfinger plugin will be part of FreeNetwork component
2021-10-06 11:48:22 +01:00
Eliseu Amaro 3cb6563c40 [TWIG][EndShowStyles] Route as an event argument 2021-10-06 00:34:27 +01:00
Eliseu Amaro 78dd7137f8 [PLUGIN] ProfileColor color settings can be null. 2021-10-05 19:12:51 +01:00
Eliseu Amaro a268aee53a [CSS][PLUGIN] ProfileColor now handles both the background and foreground colors. Various button CSS fixes. 2021-10-05 19:04:30 +01:00
Eliseu Amaro 1705b543d3 [PLUGIN] Delete note action added. If the author of a note is logged in, the action will be added to that note. Once the author presses it, the note will be deleted from the DB. 2021-10-04 17:11:44 +01:00
Eliseu Amaro 80d1be323d [COMPONENTS][Search][CSS] Extra header forms now accessible through a details element. Re-organizing templates structure. 2021-10-04 12:17:14 +01:00
Eliseu Amaro d38ad60c76 [COMPONENTS][CSS] Adding components styling properly. 2021-10-01 17:25:51 +01:00
Hugo Sales 19c2a91232
[TOOLS][PHPStan][ProfileColor][ENTITY][TEST][AttachmentThumbnail] Fix issues reported by phpstan 2021-09-27 19:50:56 +01:00
Eliseu Amaro 4a17adc182
[PLUGINS][ProfileColor] Actors are now shown with their own colors for other. 2021-09-25 19:40:17 +01:00
Eliseu Amaro 7b8eb3fda9
[PLUGINS][ProfileColor] Current color is now selected by default. Not found exception is now handled. 2021-09-25 19:40:17 +01:00
Diogo Peralta Cordeiro a681acae67
[ENTITY][AttachmentThumbnail] Every image should have width and height attributes 2021-09-25 19:40:11 +01:00
Eliseu Amaro 808da203ad [PLUGINS][ProfileColor] Settings page render problem fixed. ColorType given data wasn't a string. 2021-09-25 12:51:25 +01:00
Eliseu Amaro 57b94af9f6 [PLUGINS][ProfileColor] Re-organized plugins templates and assets. ProfileColor plugin fixed. 2021-09-25 11:17:56 +01:00
Diogo Peralta Cordeiro 3268559f9a
[AttachmentThumbnail] Use other thumbnail when requested isn't available and there's no original file 2021-09-23 16:19:50 +01:00
Hugo Sales bb81f1f717
[Embed] Use new attachment route format 2021-09-23 14:54:21 +01:00
Hugo Sales 6a2c3eb711
[ImageEncoder] Ensure proper memory limits are used when loading images from disk 2021-09-23 14:54:21 +01:00
Eliseu Amaro a557ba0224 [Timelines][Plugins][Left] Plugins now provide their path ID. Feed redone as it's own independant template. 2021-09-22 16:47:06 +01:00
Diogo Peralta Cordeiro 05f16a3084
[ENTITY][AttachmentThumbnail] Now thumbnails are always only available in three sizes: small, medium, big
Commit jointly produced with eli (Eliseu Amaro)

Breaking change: Entity changed to only store the tinyint referring to the size stored

With this, the logic was simplified and now it's not possible to make an
instance produce unnecessary thumbs. The aspect ratio is preserved and
thus the thumbs will always look nice. New configuration was added to
maintain flexibility.
2021-09-22 15:13:46 +01:00
Diogo Peralta Cordeiro 7beb5c2995
[GSFile] Fix sanitize configuration 2021-09-22 15:13:46 +01:00
Eliseu Amaro 3f618c2674 [TWIG][Cards][Profile] Card templates! Profile now has a card template to be used everywhere you need to show quick actor information. 2021-09-22 14:11:59 +01:00
Diogo Peralta Cordeiro 9e4c43e8fd
[ActivityStreamsTwo] Further work on routes and use render event on note's content 2021-09-20 17:05:04 +01:00
Diogo Peralta Cordeiro 7813723ca1
[ActivityPub] Inbox must work without actor, specify source for AS2 2021-09-20 17:03:23 +01:00
Eliseu Amaro 543853c374 [PLUGINS][Actor][Profile] Current user profile in line with other users. Directory plugin actor template standardized. 2021-09-20 14:39:11 +01:00
Diogo Peralta Cordeiro 67d62cf37b
[TWIG] Remove kludge event TwigPopulateVars 2021-09-18 07:27:35 +01:00
Diogo Peralta Cordeiro fda998e335
[Avatar] We definitely don't need an event to retrieve avatar urls 2021-09-18 07:26:10 +01:00
Diogo Peralta Cordeiro 2bd19fa087
[NOTE][Posting] Revert regressions introduced with c90efe2c52
Entity Note: It doesn't make sense to handle attachments on Note::create.
Attachments exist out of Notes, they are a thing on their own.
Furthermore, they aren't always handled the same, they most definitely
aren't always uploaded files.

FileQuota: It doesn't make sense to check if a file is greater than max
allowed upload size here. The plugin ensures a user is inside his
allowed quota, it's ignorant to anything else. Whether a file respect
max upload is a core thing that must be handled directly in the Posting
component. TODO: The configuration regarding user and monthly quota
must become FileQuotaPlugin settings and be removed from core.

c90efe2c52 - [UI] Add mechanism for rendering note contents in different formats. Implement plaintext rendering. Use rendered field for note content, rather than the content itself
2021-09-18 05:12:18 +01:00
Diogo Peralta Cordeiro 941cbe6599
[Actor] Refactor GSActor into Actor 2021-09-18 05:12:17 +01:00
Eliseu Amaro 6c899b7b61
[Plugins][Components] Fixed issue where right panel form was rendered multiple times in actors plugin page. Actors page done. 2021-09-18 05:12:16 +01:00
Eliseu Amaro e4b650be46
[PLUGINS][Settings] Removed unused templates. Directory plugin templates now using actual templates. Notification settings using details element now. 2021-09-18 05:12:16 +01:00
Diogo Peralta Cordeiro d6f31d102a
[CORE][ActivityStreamsTwo][ActivityPub] Set all routes
Allow global routes to act for every actor
Fix Favoured stream query
2021-09-18 05:12:15 +01:00
Eliseu Amaro 42f9a6a79c
[CSS][Attachments] Attachments page view done. Standardized left and right panels sections. Applying styling through key classes to be defined in docs. 2021-09-18 05:12:10 +01:00
Hugo Sales 8f0a3e4977
[UI] Add mechanism for rendering note contents in different formats. Implement plaintext rendering. Use rendered field for note content, rather than the content itself 2021-09-18 05:12:06 +01:00
Hugo Sales f344ed376c
[ATTACHMENTS][Embed][UI] Allow plugins to provide a title for an attachment, if a note has none, implement such a mechanism in Embed and cache the result, since it is potentially costly 2021-09-18 05:12:06 +01:00
Diogo Peralta Cordeiro 365edbaff0
[ActivityStreamsTwo] Initial Actor support
Various bug fixes
2021-09-15 10:26:53 +01:00
Diogo Peralta Cordeiro 7c465bba5f
[NOTE] Add mimetype to notes 2021-09-14 13:13:45 +01:00
Hugo Sales b74d944ae3
[TOOLS][PHPStan] Raise PHPStan level to 3 and fix new errors 2021-09-14 13:13:45 +01:00
Hugo Sales 4e30e5aad9
[TOOLS] Fix all issues found by PHPStan level 2 2021-09-14 13:13:44 +01:00
Diogo Peralta Cordeiro 4b1780a2ee
[ActivityStreamsTwo] Introduce a structure for data representation in ActivityStreams 2.0
Type factory borrowed from landrok/activitypub
2021-09-14 13:13:44 +01:00
Diogo Peralta Cordeiro 8123086881
[Embed] Fix normalizeEmbedLibMetadata for thumbnails starting with '/' 2021-09-14 13:13:43 +01:00
Eliseu Amaro 61071a6821
[PLUGINS][Reply][Repeat][Favourite] Base template semantic rework. Reply, repeat and favourite respective classes are now assigned in their NoteHandlerPlugin. 2021-09-14 13:13:43 +01:00
Eliseu Amaro 681144b380
[PLUGINS][Favourite][CSS] Favourite label now shows whether it's favourited or not already. 2021-09-14 13:13:42 +01:00
Hugo Sales add8f4a52f
[TOOLS] Fix all errors found by PHPStan level 1 2021-09-14 13:13:42 +01:00
Hugo Sales eb833b62e2
[TOOLS] Fix all level 0 errors found by PHPStan and move constant definition to bootstrap file 2021-09-14 13:13:42 +01:00
Eliseu Amaro c612fe6df5
[PLUGINS][Reply][CSS] Help text added. Styling reply page done. 2021-09-14 13:13:41 +01:00
Hugo Sales bdde047dfa
[PLUGINS][Embed] Embed references a table that does not exist. It seems to mean `attachment_embed`, rather than `link_to_attachment` 2021-09-14 13:13:40 +01:00
Hugo Sales 16cde6dfd7
[PLUGINS][Reply] Redirect back to previous URL on note reply. Move controller to own class
This should be safe against open redirects, as it doesn't allow redirecting to other domains
2021-09-14 13:13:40 +01:00
Hugo Sales 61d95265a9
[PLUGINS][Repeat] Delete note repeat rather than the original Note. Don't fetch when we want a simple count 2021-09-14 13:13:39 +01:00
Hugo Sales be27a10244
[EVENTS] Rename event `RouteInFormat` to `ControllerResponseInFormat` 2021-09-14 13:13:39 +01:00
Eliseu Amaro 6fdec483cd
[Reply] RedirectionException wasn't allowing other handlers to do their job. 2021-09-14 13:13:39 +01:00
Eliseu Amaro 85db9464ca
[Reply] Fixed reply plugin action, there was no need to query the database when handling. 2021-09-14 13:13:39 +01:00
Eliseu Amaro f000532b7e
[Favourite][Reply][Repeat] The respective svg for note actions is assigned. Repeat note handler needs work. "An exception has been thrown during the rendering of a template ("No value in table note matches the requested criteria")." exception thrown on repeat. 2021-09-14 13:13:39 +01:00
Diogo Peralta Cordeiro 8880af8197
[ActivityStreamsTwo] Introduce a structure for data representation in ActivityStreams 2.0
Type factory borrowed from landrok/activitypub
2021-09-14 13:13:37 +01:00
Diogo Peralta Cordeiro 1ee8df1494
[DOCS][Developer] Elaborate on implementing and configuring a module 2021-09-14 13:13:37 +01:00
Diogo Peralta Cordeiro ab142ab52d
[FileQuota] Update plugin to respect the new entities 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro 415089914f
[VideoEncoder] Port plugin to v3 properly 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro 2b7232891e
[ImageEncoder] Make plugin respect instance config and use the new core interface 2021-09-14 13:13:35 +01:00
Hugo Sales 811caaadf9
[MODULES][PLUGINS] Move noteActionHandle utility to NoteHandlerPlugin which plugins which handle actions on notes should extend 2021-09-14 13:13:34 +01:00
Hugo Sales 458b6d0009
[UI] Rename all forms to more specific names, to avoid form name collisions 2021-09-14 13:13:33 +01:00
Hugo Sales 4b2a92d052
[UI][Attachment] Use Attachment methods to get the proper URL, rather than crafting it in a template 2021-09-14 13:13:32 +01:00
Hugo Sales 6799052ff5
[ATTACHMENTS] Ensure thumbnail dimensions are bounded and change way cropping is implemented 2021-09-14 13:13:32 +01:00
Diogo Peralta Cordeiro f67173061b
[VideoEncoder] Add plugin composer dependency php-ffmpeg/php-ffmpeg 2021-09-14 13:13:32 +01:00
Diogo Peralta Cordeiro ac45008240
[Embed] Move composer dependency embed/embed from core to plugin 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro 177801c81b
[Embed][StoreRemoteMedia] Re-add {white,black}list check config 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro 78f4ccb576
[ImageEncoder] Fix ImageSanitization, it should never modify the input image 2021-09-14 13:13:31 +01:00
Hugo Sales 4f880eb761
[PLUGINS][ENTITY][Cover][ProfileColor] Clean up after interns and move entity defintions to be inside the corresponding plugin, rather than in core 2021-09-14 13:13:29 +01:00
Diogo Peralta Cordeiro 1906d4f276
[Embed] Add UI element and fix some bugs 2021-09-14 13:13:27 +01:00
Diogo Peralta Cordeiro ef1a9ce3b1
[ImageEncoder] Handle VIPS unsupported image type 2021-09-14 13:13:27 +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 fb28a3656a
[Embed] Retrieve remote thumbnails and other improvements 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 7a0a6f1f22
[Embed] Fix usage of EmbedLib
Fix other minor bugs
2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro d076781c74
[AttachmentToNote][Attachment] Add title getter to Attachment 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro bac18715c5
[StoreRemoteMedia] Implement the first version of it in v3 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro fbbbde4275
[AttachmentShowRelated] Bug fix after re-introduction of NoteActions 2021-09-14 13:13:25 +01:00
Eliseu Amaro 5de0704de2
[Favourite][TWIG][CSS] Favourite shows alt-text and properly sets colours. Titles translated on the right panel. 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
Diogo Peralta Cordeiro a7c8da0534
[FileQuota] We'll get back to this plugin later 2021-09-14 13:13:24 +01:00
Hugo Sales 061a85d6b3
[EVENTS] Change FormatNoteList do separate in and out arguments
This is necessary due to some weird problem which I wasn't able to figure out (but which doesn't matter)
that somehow causes the event to be called twice during testing, and thus the function was exploding
2021-09-14 13:13:23 +01:00
Hugo Sales cdf3426567
[CONTROLLR][UserPanel][PLUGINS] Add submit button to notification settings for each transport 2021-09-14 13:13:23 +01:00
Eliseu Amaro 1647c5391f
[Favourite][TWIG][CSS] Favourite now works. 2021-09-14 13:13:22 +01:00
Hugo Sales 77742c56c3
[ImageEncoder] Don't print_r the exception as that leads to an OOM error 2021-09-14 13:13:18 +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
Eliseu Amaro 6dd0292397
[SETTINGS][ROUTES][CONTROLLER] Settings overhaul, refactoring to accommodate new global settings view. WIP, component settings aren't shown at the moment.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:12 +01:00
Eliseu Amaro 701b4967b4
[TWIG] Microformats added to timeline, note's view and media. Should be backwards compatible as well.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro ee3ed5f096
[TWIG][CSS] Timeline WIP. Creating a notice is now done on the right panel. HTML structure improvements, such as the timeline divided from the navigation div. 2021-09-14 13:13:05 +01:00
Diogo Peralta Cordeiro a5348f2427
[MEDIA][AttachmentThumbnail] Add mimetype to Entity 2021-09-14 13:13:04 +01:00
Diogo Peralta Cordeiro 41dcef3c7b
[Media] EncoderPlugins should handle the views that concern them
Ensure the intended filetypes and mimetypes during Vips conversions (part 2)
Sanitize Attachments instead of Validate (part 2)
Various bug fixes
2021-09-14 13:13:04 +01:00
Diogo Peralta Cordeiro 481e953cde
[Media] File quota should be triggered by the Core 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 6a999b8237
[Embed] Do not create AttachmenThumbnail 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 4fcccb1d1c
[CORE][ImageEncoder] Add width and height back in attachment entity and allow for differently sized thumbs
The strategy adopted involves predicting the thumb size as we did in v2 before having vips resize
2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro 1c9f807595
[Embed] Fix some bugs and change AttachmentEmbed::url to ::media_url 2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro a3860e6257
[Embed] Local config 2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro 837f644458
[UTIL][Formatting] Add twigRenderFile 2021-09-14 13:12:55 +01:00
Hugo Sales 5067bcd074
[ImageEncoder][FileQuota] Move quota enforcement to it's own plugin, so it can be easily shared and disabled 2021-09-14 13:12:55 +01:00
Diogo Peralta Cordeiro 8cb64ede7f
[AttachmentShowRelated] Move Attachment related to plugin 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 aad4bddedd
[ImageEncoder] Implement attachment validation for images. This limits the maximum dimensions of the file, enforces a per file, per user and per user-month size quota and fixes the title if it's a filename, by replacing the extension to the new one 2021-09-14 13:12:54 +01:00
Diogo Peralta Cordeiro 110c2572a4
[TEMPLATES] Minor refactoring, extending left was weird 2021-09-14 13:12:54 +01:00
Hugo Sales ced610d942
[Embed] Use Formatting utilities rather than substr and such 2021-09-14 13:12:53 +01:00
Diogo Peralta Cordeiro 9008bee558
[Embed] Add docblock to handle function to pass pre-commit hook 2021-09-14 13:12:53 +01:00
Hugo Sales b1e514832b
[Embed][ENTITY] Fix embed route and use attachment_view rather than _show. Rename Entity::have to Entity::has, because grammar 2021-09-14 13:12:52 +01:00
Hugo Sales 30107de079
[Embed] Fix plugin. Only attempt to show an image, if we have one 2021-09-14 13:12:52 +01:00
Hugo Sales a7ef2babe6
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:12:52 +01:00
Hugo Sales bb1ba11fcf
[AUTOGENERATED] Run bin/generate_entity_fields for the Embed plugin 2021-09-14 13:12:51 +01:00
Hugo Sales 4cd152f640
[Embed] Review and port v2 code 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 8dff0b1d0c
[Favourite] Make twig event operate on array rather than string 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
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 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 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 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 483ac38888
[Directory] Fixup directory plugin 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 8e56dbb95c
[Favourite] Move table and left panel links to plugin 2021-09-14 13:11:49 +01:00
Hugo Sales 1687ecaa24
[FAVOURITE] Temporary commit to fix exception in timeline 2021-09-14 13:11:48 +01:00
Hugo Sales 974bbe164e
[Favourite] Move controller to plugin 2021-09-14 13:11:48 +01:00
Hugo Sales 00d71e7035
Rename FFmpeg to VideoThumbnail FIXME 2021-09-14 13:11:48 +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
Hugo Sales f8199159c3
[FFmpeg] Copy FFmpeg plugin from v2 2021-09-14 13:10:54 +01:00
Hugo Sales 3b901745d5
[Embed][StoreRemoteMedia][Media] Copy and cleanup plugins from v2 2021-09-14 13:10:54 +01:00
Hugo Sales fe478c6104
[Media] Copy media subsystem from v2 and roughly structure it for v3 2021-09-14 13:10:54 +01:00
Hugo Sales ad67358c3b
[ActivityPub] Remove ActivityPub plugin until we're ready to work on it, as it needs significant work 2021-09-14 13:10:51 +01:00
up201706832 8cc0360298
[REPLY] Fixed CSS for reply form, making it now usable 2021-09-14 13:10:19 +01:00
Daniel 15454cab7f
[ProfileColor] Added profile color css 2021-09-14 13:10:19 +01:00
Daniel d17582094d
[ProfileColor] Visualize profile color 2021-09-14 13:10:19 +01:00
Daniel afae038cff
[ProfileColor] Added Profile Color entity, color form and db store/load to color settings controler 2021-09-14 13:10:19 +01:00
Daniel 20a5005e1d
[ProfileColor] Added plugin base, controller and settings template 2021-09-14 13:10:19 +01:00
Angelo D. Moura d4c0f33be4
[Directory] Lint fix - missed a coma 2021-09-14 13:10:18 +01:00
Angelo D. Moura 77d7fcc138
[Directory] Finished implementing groups stream as a plugin 2021-09-14 13:10:18 +01:00
Angelo D. Moura fe170ff508
[Directory] Finished implementing groups stream using Directory plugin 2021-09-14 13:10:18 +01:00
Daniel 0289888397
[Directory] Add documentation 2021-09-14 13:10:17 +01:00
Daniel 019e3d91e4
[Directory] Moved /actors stream to directory plugin 2021-09-14 13:10:17 +01:00
Daniel 6c1b1323a0
[Cover] Remove of cover form 2021-09-14 13:10:17 +01:00
Daniel b79c8b092d
[Cover] Added cover route verifications 2021-09-14 13:10:17 +01:00
Daniel 4eafcd5058
[Cover] Removed commented code 2021-09-14 13:10:17 +01:00
Daniel fdc2bc39d0
[Cover] Input restrictions, Code cleanup 2021-09-14 13:10:17 +01:00
Daniel 4949abac9d
[Cover] Added cover css, changed cover settings route name 2021-09-14 13:10:16 +01:00
Daniel e2ce1a8070
[Cover] Added temporary css 2021-09-14 13:10:16 +01:00
Daniel aeec9149fc
[Cover] Cover route, cover now renders 2021-09-14 13:10:16 +01:00
Daniel cf8b3b7b73
[Cover] Added TWIG vars for profile plugins 2021-09-14 13:10:16 +01:00
Daniel 1cfe64cc25
[Cover] Added Cover Entity, updated form handler
Basically the same as the avatar
2021-09-14 13:10:16 +01:00
Daniel 7739518717
[Cover] Started implementing Cover plugin: base class, route, base templates, added tabs in profile template 2021-09-14 13:10:16 +01:00
Pastilhas 2c3599721e
[DOCKER][MAIL] Removed unused config files and scripts
Now user is created on setup and dockerfile
2021-09-14 13:10:14 +01:00
Daniel 1747e14824
[Poll] Removed/refactored unnecessary files, changed redirect to default parameters in new poll route 2021-09-14 13:10:13 +01:00
Daniel c0d363e317
[Poll] Restructured templates, added misssing poll related css 2021-09-14 13:10:13 +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
Daniel 090c593a61
[Poll] Started testing with note integration 2021-09-14 13:10:13 +01:00
Daniel 50ec306243
[Poll] Added file headers 2021-09-14 13:10:12 +01:00
Daniel ffb4b9df23
[Poll] Added modified param for Poll/Poll response, added PollTest 2021-09-14 13:10:12 +01:00
Daniel f34fb9c7b9
[Poll] Added variable num of options
not sure if it is the right way to do it
2021-09-14 13:10:12 +01:00
Daniel cdbf7da8be
[Poll] Added templates, response counting 2021-09-14 13:10:12 +01:00
Daniel 27a0c43f7b
[Poll] Store poll response to DB 2021-09-14 13:10:12 +01:00
Daniel 3725818e4f
[Poll] Added New Route, RespondPoll, Poll Response, PollResponseForm 2021-09-14 13:10:12 +01:00
Daniel dbb55362c8
[Poll] Fixed ShowPoll route, moved Poll Entity, created NewPollForm
Entity was temporarily moved to src/Entity in order to load from DB, since it is yet no possible to do that from Plugin
2021-09-14 13:10:12 +01:00
Daniel 03f02bed4d
[AUTOGENERATED][Poll] Add auto generated code for poll entity and new route 2021-09-14 13:10:12 +01:00
Daniel 5978a069e9
[Poll] Started porting Poll Plugin 2021-09-14 13:10:12 +01:00
Daniel 95f95d2dd8
[TESTS] Added unit tests 2021-09-14 13:10:08 +01:00
Hugo Sales 279cfcd058
[PLUGIN][Favourite] Move favourite table definition to inside the plugin, as it is now supported 2021-09-14 13:06:57 +01:00
Hugo Sales e2e53d9a2a
[AUTOGENERATED] Update auto generated code in entities 2021-09-14 13:06:56 +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 f95f69c778
Add some missing documentation to ActivityPub 2021-09-14 13:06:56 +01:00
Hugo Sales fc015c6fdf
[NETWORK][TreeNotes] Add TreeNotes plugin which takes over the responsibility of displaying a conversation as a tree, in order to reduce the number of queries 2021-09-14 13:06:56 +01:00
Hugo Sales 5c53889739
[Reply] Fix bug where wrong variable is used when replying to a note 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 221829c6fd
[Reply] Fix missing use statement 2021-09-14 13:06:54 +01:00
Hugo Sales 147ff89e74
[NoteAction] Refactor duplicated code out to base class 2021-09-14 13:06:53 +01:00
Hugo Sales 0c0b00da93
[Directory] Add missing use statement 2021-09-14 13:06:53 +01:00
Hugo Sales a248f23cef
[Reply] Move reply functionality to a plugin 2021-09-14 13:06:52 +01:00
Hugo Sales 72208b066c
[NoteActions] Refactor note actions and fix bug in favourite 2021-09-14 13:06:51 +01:00
Hugo Sales 4c15271d36
[UI] Display error when submitted form is invalid 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 6b1689e1df
[Repeat][Favourite] Only display action buttons if logged in (instead of forcing login) 2021-09-14 13:06:50 +01:00
Hugo Sales 26f01c4c92
[Posting] Fix posting form name and css 2021-09-14 13:06:49 +01:00
Hugo Sales a98af6ab6a
[Directory] Add directory plugin, for listing people and groups 2021-09-14 13:06:48 +01:00
rainydaysavings ff9b5d9c01
[PLUGIN] Removing unnecessary labels 2021-09-14 13:06:48 +01:00
rainydaysavings 6188524586
[PLUGIN] Recycle initial implementation 2021-09-14 13:06:47 +01:00
rainydaysavings 8a0418d8cf
[Favourite] Add backend support for favourite 2021-09-14 13:06:47 +01:00
Hugo Sales f60bdaa2f0
[DB][MODULES][ActivityPub] Cleanup table definitions 2021-09-14 13:06:45 +01:00
Hugo Sales b624359b9a
[ActivityPub] Initial cleanup, removing 'die' statements, and ignoring the subfolders 2021-09-14 13:06:39 +01:00
Hugo Sales 0230dd04df
[PLUGIN] Remove Test plugin 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 e5082657b7
[COMPONENT][PLUGIN] Small refactor and add license 2021-09-14 13:05:48 +01:00
Hugo Sales 995b4cfb9b
[PLUGIN] Update example plugin 2021-09-14 13:05:47 +01:00
Diogo Cordeiro cb7518a750
[DOCUMENTATION][TOOL] Small bug fixes and docblock elaboration 2021-09-14 13:05:24 +01:00
Hugo Sales 0c79dfc67b
[MODULES] Rename extensions to modules, add example plugin, change plugin location 2021-09-14 13:04:37 +01:00
Hugo Sales 6df658a987
[CORE][EXTENSIONS] Added extension (modules, plugins) loading and test plugin, which is able to handle events 2021-09-14 13:01:34 +01:00
Hugo Sales 11154a0d8c
[V3] Big Crunch
And so, just as it begins, so too must it end
One should not dwell and stall, for more is to come
2021-09-14 13:01:23 +01:00
Diogo Peralta Cordeiro 7d8988d50c [VersionBump] 2.0.0beta0
Updated composer and translations

composer install --no-dev
composer dump-autoload --optimize
git add vendor/ --force
make updatepo
2021-07-18 12:51:07 +01:00
Diogo Peralta Cordeiro 31433db539 [ActivityPub][POSTMAN] Do not die on network errors 2021-07-16 18:03:12 +01:00
Diogo Peralta Cordeiro bdb4c54fa8 [DirectMessage] Fix some wrong calls after MessageModel introduction in d9a9a3746b 2021-07-16 17:36:33 +01:00
Diogo Peralta Cordeiro 55293e4008 [ActivityPub][INBOX] CREATE NOTE Attachments, we handle enclosures elsewhere
It was trying to make enclosures with objects instead of strings, also attachments don't use this, only links
2021-07-16 17:07:13 +01:00
Diogo Peralta Cordeiro bb2c845f62 [ActivityPub][INBOX] CREATE NOTE now accepts <br> tag 2021-07-16 15:48:02 +01:00
Diogo Peralta Cordeiro fbeadc1d49 [StoreRemoteMedia][SCRIPTS] Fix typo in query
This was introduced in 11ebb98919f56f7dcf888adfbebf9e8826f995b4#diff-96141878409d7418ea5a9eefbde509b43482c01R70
The arg number should have been one, as there's only one...
2021-07-16 15:46:25 +01:00
Alexei Sorokin b6ce12a267 Update the project homepage and IRC channel 2021-06-12 11:30:12 +03:00
Diogo Peralta Cordeiro b4b71f7626 [StoreRemoteMedia] Fix failing to show remote thumbnails on first load
imgPath onCreateFileImageThumbnailSource would throw FileNotFoundException
2021-04-13 14:58:55 +01:00
Diogo Peralta Cordeiro f088a3d54f [Embed] Apply encoding and increased type strictness patches from StoreRemoteMedia 2021-04-13 14:55:45 +01:00
Diogo Peralta Cordeiro 5b23781e68 [StoreRemoteMedia] Gracefully recover from poorly encoded images 2021-04-13 14:54:56 +01:00
Diogo Peralta Cordeiro edc9fd203d [StoreRemoteMedia] Increase type strictness 2021-04-13 14:54:56 +01:00
Diogo Peralta Cordeiro 844ecbf71e [Embed] Revert defaults and fix Readme example 2021-02-21 20:20:48 +00:00
Diogo Peralta Cordeiro 8570ad2094 [StoreRemoteMedia][SCRIPTS] Move removeRemoteMedia deleteRemoteMedia 2021-02-21 16:03:47 +00:00
Diogo Peralta Cordeiro bc3eb7bccc [MEDIA] Allow thumbnail only entries 2021-02-21 16:03:47 +00:00
Diogo Peralta Cordeiro 800c0daafe [StoreRemoteMedia][SCRIPTS] Update removeRemoteMedia 2021-02-21 16:03:47 +00:00
Diogo Peralta Cordeiro d47bb3736e [Media] Document recently added settings and add some more
Fix some buggy ones, especially Embed crop
2021-02-21 16:03:46 +00:00
Diogo Peralta Cordeiro ec1719e61d [StoreRemoteMedia][Embed] Bump plugins version 2021-02-21 16:03:46 +00:00
Diogo Peralta Cordeiro ef0f65720e [StoreRemoteMedia] Remote images are now stored exactly on the necessary size for the thumb 2021-02-21 16:03:46 +00:00
Diogo Peralta Cordeiro 22b5dd8567 [Media] Fix several issues
[StoreRemoteMedia] Upgrade plugin to use the new Media system

API Changes:
- Added getters to File to better formalize the ideas of the commit "[Media] Fix issues with database file storage"

UI Changes:
- Now presented thumbnails are actual thumbnails (bug fix)
- Attachment actions have a slightly more extended behaviour

Many other minor bug fixes...
2021-02-21 16:03:46 +00:00
Diogo Peralta Cordeiro f9290705f8 [ActivityPub] Attachment fetch should happen on StoreRemoteMedia 2021-02-21 16:03:46 +00:00
Diogo Peralta Cordeiro 6028175bfc [Media] Fix issues with database file storage
Fixed file quota as well.

There can be more than one file for the same filehash IF the url are different.

Possible states:
  - A file with no url and with filename is a local file.
  - A file with an url but no filename is a remote file that wasn't fetched,
    not even the thumbnail.
  - A file with an url and filename is a fetched remote file (maybe just a
    thumbnail of it).
  - A file with no filename nor url is a redirect.

Routes:
  Given these states, updated routes so that an attachment can only be
  retrieved by id and a file by filehash.

Major API changes:
  File::getByHash now returns a yield of files

Major UI changes:
  - Now remote non stored files are presented.
  - /view became preferred
  - Redirects to remote originals are preferred.

Many other minor bug fixes...
2021-02-21 16:03:46 +00:00
Diogo Peralta Cordeiro b1e6b00545 [ActivityPub] Re-implement Delete Actor 2021-02-21 15:00:58 +00:00
Alexei Sorokin 06dfd91a82 Various fixes
Fix OAuth and Realtime issues introduced in 9a515b9234

[DATABASE] Fix an empty default value mistake introduced in
fde929b151

[DATABASE][PostgreSQL] Avoid use of pg_constraint.consrc, which was removed in
PostgreSQL 12.

[DATABASE][MariaDB] Fix a typo introduced in aed2344bd4

[DAEMON] Wrap an assignment inside "switch":
a follow-up to adc689cb15
2020-10-11 18:29:47 +03:00
Alexei Sorokin c540466147 [XMPP] Respond to ping and track time monotonically
This also fetches a necessary update from the XMPPHP upstream.
2020-09-27 00:16:08 +03:00
Alexei Sorokin 4d8b04cda9 Clear out potential duplicates when semi-joining a union
Using a left outer join as a semi-join is not a valid approach.
Can still be used for an anti-semi-join.
2020-09-21 22:25:33 +03:00
Alexei Sorokin aed2344bd4 Set the character set before making a connection
Ideally the character set should be set with the connection, and so this is
exactly what's being done now.

And now the character set code is attempted to be generalised.
2020-09-16 19:34:49 +03:00
Alexei Sorokin 52d67b0f44 Avoid ordering just by a timestamp
Try to also employ an id when possible.
Involves reworking some of the indices.
2020-09-15 16:59:27 +03:00
Alexei Sorokin 8079a476b6 Remove "magic quotes" code and avoid wrong order implode
"Magic quotes" were removed in PHP 5.4, no need to mitigate it anymore.

Avoid implode() with the join()-like order of arguments which was deprecated
since PHP 7.4 and implicitly since PHP 5.3.
Also avoid implode() with an implicit separator for stylistic reasons.

mktime() with no arguments has been deprecated since PHP 5.1.
2020-09-15 14:59:27 +03:00
Alexei Sorokin fde929b151 [DATABASE] Switch from PEAR DB to MDB2 2020-09-14 22:46:29 +03:00
Alexei Sorokin 96f1cc1a5c [ActivityPub][INBOX][Delete] Stop if the ID is not present 2020-09-14 21:32:41 +03:00
Alexei Sorokin 647bf8c953 [ActivityPub] Fix use of ActivityPubPlugin::pull_remote_profile
It does not throw but return null.
2020-09-14 20:48:10 +03:00
Alexei Sorokin d2c7d70f49 Fix "Implement a class for automatic temporary file handling"
TemporaryFile::commit throws instead of returning a bool.
2020-09-14 20:37:48 +03:00
Alexei Sorokin adc689cb15 Avoid use of assignments bare inside statements
Either use them in a subroutine call or put parentheses around the assignment.
2020-09-08 12:42:51 +03:00
Alexei Sorokin 08145f635f Implement a class for automatic temporary file handling
And adopt it all over the code.
2020-09-04 13:15:23 +03:00
Alexei Sorokin 55136c1c6f [DirectMessage] Simplify the inbox query 2020-09-02 15:12:20 +03:00
Alexei Sorokin fc300607e5 [ActivityPub] Check if a Notice is public via CC as well 2020-09-01 01:20:13 +03:00
Diogo Cordeiro 8c20ed0c89 [ActivityPub] Fix note URIs 2020-08-31 22:18:49 +01:00
Diogo Cordeiro c8e9cbdbb8 [ActivityPub] Tombstones now have datetimes 2020-08-30 01:59:38 +01:00
Diogo Cordeiro 11a7182594 [ActivityPub] Implement Failed Queue 2020-08-29 20:32:21 +01:00
Diogo Cordeiro 817074a787 [ActivityPub] Fix DELETE 2020-08-29 20:32:18 +01:00
Diogo Cordeiro c75bf1a19d [ActivityPub] Fix issues concerning Activity URIs
And some other minor bugs.
2020-08-29 11:29:12 +01:00
Alexei Sorokin 11ebb98919 [DATABASE] Fix use of ORDER BY with DISTINCT
statuses/retweets_of_me has performance fixed, so it is also stripped of its
"bad query" status.
2020-08-27 11:15:39 +03:00
Diogo Cordeiro e4093343c2 [ActivityPub] Revert moving Disfavor to Queues
It seems this kind of notice isn't queued?
2020-08-27 02:14:47 +01:00
Diogo Cordeiro 101ea554ef [ActivityPub][Queues] Fix Like 2020-08-27 02:12:22 +01:00
Diogo Cordeiro ef6a986dc6 [TheFreeNetwork] Do not allow lower priority protocols to handle remote actors already handled by the higher ones 2020-08-27 01:32:15 +01:00
Alexei Sorokin db593496a7 [Directory] Fix SQL string quotation 2020-08-26 16:27:35 +03:00
Alexei Sorokin 00c492891e [Foreign_link] Change the type of "credentials" to blob
TwitterOAuthClient::packToken uses \0 as a delimeter which can cause issues on
TEXT or VARCHAR.
2020-08-25 16:06:37 +03:00
Alexei Sorokin 0e81f9c726 [OpenID] Correct table definition types
"server_url" should not be blob.
Lengths are adjusted to Auth/OpenID/(PostgreSQL|MySQL)Store.php.
2020-08-24 16:27:44 +03:00
Alexei Sorokin 20e5a6d1f3 [TwitterBridge][DAEMONS] Fix database connection clean-up 2020-08-24 15:43:14 +03:00
Alexei Sorokin afd18db381 [TwitterBridge] Create Foreign_user before Foreign_link
To keep foreign key constraints intact.
2020-08-13 23:59:40 +03:00
tenma 2f845e98e8 [FFmpeg] Add FFmpeg plugin
FFmpeg plugin serves as a better performant/quality alternative to
resize animated GIFs than the ImageMagick plugin.
2020-08-14 23:32:15 +01:00
tenma 8a2c1658a8 [ImageMagick] Remove unnecessary code
ImageMagickPlugin:
- Remove animated thumbnail setting, we'll be able to use FFmpeg for performance
- Remove onFillImageFileMetadata and onCreateFileImageThumbnailSource(), these
  are handled just fine by ImageFile
- Bump minor version number

README:
- Update
2020-08-14 19:48:02 +01:00
Alexei Sorokin b65c200922 [File] Fix file deletion violating foreign keys 2020-08-13 23:56:31 +03:00
Alexei Sorokin 33caf31237 [RedisCache] Connections should not be shared by daemon threads 2020-08-13 22:51:22 +03:00
Alexei Sorokin cb7effca05 [Memcached] Do not set persistent connections for daemons 2020-08-13 22:51:22 +03:00
Alexei Sorokin 8745a3e824 [Embed] Fix a query typo in fixup_files.php
Regression introduced in ec86de2bc4
2020-08-13 22:51:22 +03:00
Alexei Sorokin 2109c7b830 [Bookmark] Silence a warning when no tags in BookmarkForm 2020-08-12 13:19:59 +03:00
Alexei Sorokin 629857d3ef [Bookmark] Fix undefined variable "rendered" in Activity options 2020-08-12 13:12:36 +03:00
Alexei Sorokin 14e2621a05 [RSSCloud] Avoid the deprecated in PHP each() function 2020-08-11 19:40:46 +03:00
Alexei Sorokin 2abe910ff5 [RSSCloud] Update schema definition 2020-08-11 18:23:45 +03:00
Alexei Sorokin 535b87bb64 [RedisCache][DiskCache] Check if unserialize succeeded 2020-08-10 11:12:31 +03:00
Alexei Sorokin e63c0d1b03 [TwitterBridge] Check if Notice::$lat and Notice::$lon are defined 2020-08-10 10:35:45 +03:00
Alexei Sorokin 07b0aa8f52 [DATABASE] Fix remaining misuses of SQL's GROUP BY 2020-08-10 19:29:04 +03:00
Alexei Sorokin 7cb10b71bb [RequireValidatedEmail] Only check current user posts
This check made registration impossible when welcomeuser didn't have validation
as well.

And rename the "grandfatherCutoff" option to "exemptBefore".
"Grandfathering" is a relatively obscure term linked to the history of the
United States of America, so replace that with something self-descriptive.
2020-08-09 23:58:25 +03:00
Alexei Sorokin 042e4b070c [EmailAuthentication] Check if e-mail with filter_var 2020-08-09 20:35:31 +03:00
Alexei Sorokin b20c0bdec7 Clean Notice_prefs and Fave_tally when a notice is deleted 2020-08-08 12:22:35 +03:00
Alexei Sorokin 0a6bb5190f [ExtendedProfile] Clean up of missing array indices handling 2020-08-07 11:59:17 +03:00
Alexei Sorokin cf353f8829 [TwitterBridge] Do not fail on missing notice 2020-08-07 11:42:21 +03:00
t3nma 22d650469b [TwitterBridge] Fix issue "Only variables should be assigned by reference"
From the docs: "The new operator returns a reference automatically, so
assigning the result of new by reference is not allowed as of PHP 7.0.0"
2020-08-06 17:25:27 +01:00
Diogo Cordeiro 849ad494d8 [ActivityPub][NOTICE] Process attachments 2020-08-05 18:23:41 +01:00
Diogo Cordeiro 1428ac2cb0 [ActivityPub][NOTICE] Fix variable being wrongly reused 2020-08-05 17:53:31 +01:00
Diogo Cordeiro efdc7d9ba0 [ActivityPub][INBOX][Delete] Support Delete Actor object being a Tombstone 2020-08-05 17:53:31 +01:00
Diogo Cordeiro e4e41bb595 [ActivityPub][NOTICE] Fix other federation protocols mention handling 2020-08-04 20:00:55 +01:00
Diogo Cordeiro 379fbb6e5d [ActivityPub][SCRIPTS] Add fix_subscriptions.php 2020-08-04 17:12:01 +01:00
Diogo Cordeiro 09c3236afc [TheFreeNetwork][fix_duplicates.php] Don't die because you couldn't federate an undo follow 2020-08-04 13:03:33 +01:00
Alexei Sorokin e206995268 Set HTTP status codes with http_​response_​code() 2020-08-04 14:12:17 +03:00
Diogo Cordeiro a9c365a5eb [VersionBump] 2.0.0alpha0
Ran composer update and locale updater
2020-08-04 05:31:44 +01:00
t3nma 1675916fda [ActivityPub][QUEUES] Handle Create (AS1 POST) verb properly
Fixes a bug introduced in e504d13120
2020-08-03 18:21:47 +01:00
Alexei Sorokin 20be1d179a [OpenID][DATABASE] Store UNIX timestamps as BIGINT 2020-07-31 18:40:53 +03:00
Alexei Sorokin 92e8c40c55 [DATABASE] Add explicit indices for all foreign keys
This adds a requirement for all definitions that have foreign keys to also
require indices for all source (local) attributes mentioned in foreign keys.

MariaDB/MySQL creates indices for source attributes automatically, so this
serves as a way to get rid of those automatic indices and create clean explicit
ones instead.

In PostgreSQL, most of the time, indices on the source are necessary to
decrease performance penalty of foreign keys (like in MariaDB), but they aren't
created automatically, so this serves to remove that difference between
PostgreSQL and MariaDB.
2020-07-31 16:36:40 +03:00
Alexei Sorokin 0bfa747382 [DATABASE] Fix index identifiers and clean up redundant ones 2020-07-31 16:12:48 +03:00
t3nma be3c4263b3 [DirectMessage] Update ApiDirectMessageNew action
- Messages are now saved as Notices
2020-07-29 17:50:29 +01:00
t3nma f00852a619 [DirectMessage] Update ApiDirectMessage action
- getMessages() is now fetching from the Notice table as supposed
- every show{format}* method is properly updated to use Notice objects
- json and xml responses retrieve multi-recipients without compromising
  backwards compatibility
2020-07-28 05:49:37 +01:00
t3nma 83df8848c8 [DirectMessage] Update inboxMessages() to stop fetching replies
This is yet to be supported in the plugin.
2020-07-28 05:48:43 +01:00
t3nma 99183ce4e2 [DirectMessage] PSR12-format 2020-07-28 04:46:10 +01:00
Alexei Sorokin 434ce56e33 [DOCUMENTATION] Adopt PSR-12 and clarify on arrays 2020-07-27 19:19:42 +03:00
Alexei Sorokin ec86de2bc4 [DATABASE] Update "modified" in Managed_DataObject instead of a DBMS trigger
Instead of relying on the MariaDB's ON UPDATE CURRENT_TIMESTAMP trigger update
"modified" attributes in Managed_DataObject. Every raw query that needs
adjusting is adjusted, as they won't update "modified" automatically anymore.

The main goal behind this change is to fix "modified" updates on PostgreSQL.
2020-07-27 19:10:33 +03:00
Alexei Sorokin 341f3d0ea5 [DATABASE] Fix more incorrect uses of quotation in SQL 2020-07-26 15:28:05 +03:00
Diogo Cordeiro 0def5f1dca [ActivityPub][Explorer] More robust exception handler for invalid remote answers 2020-07-23 15:54:40 +01:00
Alexei Sorokin ac94374f48 [RemoteFollow] Fix location display 2020-07-22 19:49:24 +03:00
Alexei Sorokin f9e38c1a8d [LRDD] Fix unhandled bad data in HostMeta, LinkHTML and WebFinger 2020-07-22 01:30:04 +03:00
Diogo Cordeiro 6db56cc949 [ActivityPub][AProfile] Complete strict typing 2020-07-21 23:22:07 +01:00
Alexei Sorokin 7081720ecb [DATABASE] Check SQL boolean values with "IS TRUE"
This way UNKNOWN (NULL) explicitly turns to FALSE when three-valued logic is
reduced to binary.
In pgsqlschema, however, use "IS FALSE" as boolean attributes in pg_index are
non-nullable, there is no outer join and there's no clear preference for NULL
reduction.

Over-complicated constructions in TagCloud queries have been simplified, which
should not affect their performance.

Additionally, in TagCloud's lib/subscriptionspeopleselftagcloudsection.php
a typing mistake in an equi-join of "profile_tag" and "profile_list" on
"tagger" was fixed.
That regression was introduced in f446db8e2a
2020-07-21 18:06:39 +03:00
Diogo Cordeiro f7ded4d87b [UserFlag] Fix type of onUserRightsCheck 2020-07-21 13:37:36 +01:00
Diogo Cordeiro 67780ca4a9 [UserFlag] Increase strict typing of main file
Run php-cs-fixer
Correct case of class name onDeleteRelated event handlers
2020-07-21 12:43:52 +01:00
Diogo Cordeiro 871f3c4bfe [ActivityPub] Increase type strictness on Explorer 2020-07-21 12:26:23 +01:00
Diogo Cordeiro 395fe8cb10 [ActivityPub] Fix wrong type handling on AProfile:update_profile 2020-07-21 12:02:07 +01:00
Diogo Cordeiro af936f6f8e [Bookmark] Fix misuse of XMLOutputter
Argument 3 passed to htmloutputter::input() must be of the type string or null, array given, called in /srv/gnusocial/plugins/Bookmark/forms/bookmark.php on line 166
2020-07-17 20:56:51 +01:00
Diogo Cordeiro 5512e95e0a [ExtendedProfile] Fix misuse of XMLOutputter
Argument 1 passed to xmloutputter::text() must be of the type string, null given, called in /srv/gnusocial/plugins/ExtendedProfile/lib/extendedprofilewidget.php on line 556
2020-07-17 20:50:16 +01:00
Diogo Cordeiro 3a2ec3ef9c [ActivityPub] Fix bug introduced with 4d171b27
Too few arguments to function Activitypub_notice::create_notice()
2020-07-07 17:57:48 +01:00
Alexei Sorokin 08283f6c54 [RedisCache] Catch string return type from Predis\Client::setex 2020-07-06 20:10:12 +03:00
Diogo Cordeiro 6526bdc824 [TheFreeNetwork] Fix small logic issue regarding StartTFNLookup return 2020-07-05 18:26:49 +01:00
Diogo Cordeiro 1967f46a69 [ActivityPub][SCRIPTS] Make update profiles work with an uri 2020-07-05 17:38:28 +01:00
Diogo Cordeiro e504d13120 [ActivityPub][QUEUES] Add Like, Undo and Delete 2020-07-05 16:58:05 +01:00
Diogo Cordeiro 2f284f4274 [ActivityPub][INBOX][Delete] Fix misconceptions
References:
- https://socialhub.activitypub.rocks/t/the-delete-activity-and-its-misconceptions/137
- https://socialhub.activitypub.rocks/t/the-update-activity-more-than-caching/260
2020-07-05 16:46:37 +01:00
Diogo Cordeiro 4d171b27a4 [ActivityPub][NOTE] Do not extract actor from attributedTo
There was no checking of attributedTo, actors and referent object IDs to make
sure they exist in the same domain. Therefore, one could spoof messages from
people by doing attributedTo: whoever-i-want-to-spoof
2020-07-05 15:38:12 +01:00
Diogo Cordeiro fe4a9a6189 [ActivityPub][Ostatus] Fetch avatars in accordance to the new media system 2020-07-05 15:37:52 +01:00
Alexei Sorokin 9a515b9234 [SCHEMA] Improve timestamp storage
Avoid the use of deprecated MariaDB "zero dates" globally. If they're present
as attribute defaults somewhere, they will be replaced with NULL implicitly.
The existing "zero dates" in MariaDB storage will be left intact and this
should not present any issues.

The "timestamp" type in table definitions now corresponds to DATETIME in
MariaDB with "DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", which
should be close enough to the original behaviour for compatibility purposes.
It is now the recommended type for "modified" attributes, because of the
update trigger on MariaDB. But there is no such trigger implemented on
PostgreSQL as of this moment.
2020-06-29 01:41:46 +03:00
Alexei Sorokin b924c180ae [DATABASE] Fix MariaDB schema verification 2020-06-28 20:05:11 +03:00
Diogo Cordeiro 737f3eb553 [ActivityPub][HTTPSignatures] Fix verify 2020-06-28 00:58:16 +01:00
Diogo Cordeiro 6e3954f3bb [ActivityPub][Inbox] Signature verification after Actor update would always fail 2020-06-28 00:49:55 +01:00
Diogo Cordeiro 7869a7c1b0 [ActivityPub][Inbox] With PHP 7.3 we don't need get_all_headers workaround anymore
Furthermore, it was broken on Apache2 because the actual function
doesn't put the resulting array's key in lowercase.
2020-06-27 20:43:43 +01:00
Diogo Cordeiro 1db6943702 [ActivityPub][Inbox] get_all_headers was nginx only 2020-06-26 14:08:47 +01:00
Diogo Cordeiro e8dff6c4a0 [TESTS] Move AcceptHeader from ActivityPub plugin to Core
Delete temporary ActivityPub tests (they were to be deleted long ago)
2020-06-25 15:50:12 +01:00
Diogo Cordeiro 23ed816035 [ExtendedProfile] Fix XML type bug 2020-06-24 21:44:25 +01:00
Diogo Cordeiro aa7aff3f6b [TESTS] Fix CommandInterpreterTest
Also corrected a bad refactoring that affected Xmpp plugin test
2020-06-24 13:54:38 +01:00
Alexei Sorokin 194976135f [DATABASE] Some query improvements
Make common_sql_weight employ standard SQL functions for the timestamp
difference in seconds.
Also replace UTC_TIMESTAMP in the MariaDB-specific part with CURRENT_TIMESTAMP
as it is the only occurence and GNU social sets UTC as a default timezone.

In a delete_orphan_files.php script simplify the main query considerably.

In clean_profiles.php stop using COUNT as if it is ANY, that is unnecessary
punishment for the database. Instead implement the anti-join with a
left outer join.

In Autocomplete and Activitypub_profile use joins instead of a WHERE OR
anti-pattern for the semi-joins.

In lib/ui/galleryaction.php replace a CROSS JOIN with an INNER JOIN.

In actions/sup.php remove a redundant subquery: WHERE is applied before
grouping either way.
2020-06-10 16:52:00 +03:00
Alexei Sorokin 0eec6fcfb6 [DATABASE] Replace NOW() with CURRENT_TIMESTAMP 2020-06-09 20:26:06 +03:00
Alexei Sorokin 09a772419a [DATABASE] Use "<>" as an SQL non-equality sign in more cases
A follow-up to commit 644b417f6c
2020-06-08 18:31:22 +03:00
Alexei Sorokin 6c035d01d4 [DATABASE] Start transactions with START TRANSACTION
"BEGIN" is non-standard and unnecessary.
2020-06-08 12:25:01 +03:00
susdiv 97bddc4537 [Autocomplete] Fix postgres incompatible query in AutocompleteAction 2020-06-05 19:14:37 +00:00
susdiv b8c0fa9fa0 [ActivityPub] Fix Postgres incompatible query in Following and Followed collection 2020-06-05 17:48:21 +00:00
Hugo Sales 7e83ddf80e [FIX] Fix 'Trying to access array offset on value of type null' in AntiBrutePlugin and SimpleCaptchaPlugin when using scripts 2020-05-24 16:55:37 +00:00
tenma a9be720f09 [OStatus] Remove TFN's deprecated Census event and fix small typo in the code 2020-05-09 11:50:26 +01:00
tenma d7906f113e [ActivityPub] Remove TFN's deprecated Census event 2020-05-09 11:50:26 +01:00
tenma cfba91ea43 [OStatus] Add TheFreeNetwork module's support in handling profile insertion
Ostatus_profile:
- Update createActivityObjectProfile to trigger TFN's assistance in inserting the profile
2020-05-09 11:50:26 +01:00
tenma 134b6f6478 [ActivityPub] Add TheFreeNetwork module's support in handling profile insertion
Activitypub_profile:
- Update do_insert to trigger TFN's assistance in inserting the profile

explorer:
- Use the new LRDD's method for grabbing profile aliases
2020-05-09 11:50:25 +01:00
tenma 9aedcc7997 [OStatus] Update salmonaction to use the new LRDD's method for grabbing aliases 2020-05-09 11:50:25 +01:00
tenma 35547e28ea [LRDD] Add a new method for grabing profile aliases 2020-05-09 11:50:25 +01:00
tenma c6543e1f95 [ActivityPub] Autofix profile URIs through alias discovering
Activitypub_profile:
- Add updateUri method

explorer:
- Add grab_aliases method
- Update grab_local_user's online course to grab and test aliases
2020-05-09 11:50:25 +01:00
Hugo Sales 6c844315aa [CORE] Fix 'Array and string offset access syntax with curly braces is deprecated' in AuthCryptModule and DirectionDetectorPlugin 2020-05-04 10:47:23 +00:00
Alexei Sorokin 872bb1388d [Nodeinfo] Count active users for full days and without silenced 2020-04-17 18:13:05 +03:00
Diogo Cordeiro e58188d136 [UI] Small improvement on attachment's visual 2020-04-07 13:28:34 +01:00
Diogo Cordeiro bb32c0af3b [SensitiveContent] Fix plugin settings
Also reformatted the code and minor bug fixed it
2020-04-07 13:28:29 +01:00
nee 63fd2c7037 [SensitiveContent] Add option to activate for not-logged-in visitors
Remove redundant setting retrival code.

An example config.php entry to activate the new config:
$config['site']['sensitivecontent']['hideforvisitors'] = true;
2020-04-07 02:59:35 +01:00
nee 520a2ba202 [SensitiveContent] Don't crash in GNU social classic
When an attachment has no thumbnail (for example when it's a video).
2020-04-07 02:59:30 +01:00
Diogo Cordeiro 6898cff623 [PLUGINS] Remove VideoThumbnails not useful anymore 2020-04-03 12:20:27 +01:00
Diogo Cordeiro f4558e3c41 [ActivityPub] Fix profile url handling 2020-03-28 03:16:24 +00:00
Diogo Cordeiro 073a181778 [ActivityPub] Fix undefined tag index 'type' in Activitypub_notice 2020-02-14 17:25:26 +00:00
Alexei Sorokin e7ab305335 [CORE] Use monotonic time via hrtime() where applicable
The realtime clock is not reliable when calculating elapsed time.
2020-01-07 19:48:13 +03:00
Diogo Cordeiro 60446dfc20 [CORE] Better queues defaults 2019-12-11 02:23:37 +00:00
Diogo Cordeiro dc211c9c44 [ActivityPub][Postman] Fix not sending notices to self 2019-12-11 01:30:25 +00:00
Diogo Cordeiro 27babac6dc [Ostatus] Partially revert 69add504e6
updateuris isn't needed after alll, we should solve this with TFNM and existing infrastructure.
2019-12-11 01:30:15 +00:00