Commit Graph

5659 Commits

Author SHA1 Message Date
Diogo Peralta Cordeiro 630e22579e
[PLUGIN][RepeatNote] Add support for onGSVerbToActivityStreamsTwoActivityType 2021-12-20 13:32:48 +00:00
Diogo Peralta Cordeiro 8d1e000574
[PLUGIN][Favourite] Add support for onGSVerbToActivityStreamsTwoActivityType 2021-12-20 13:32:48 +00:00
Diogo Peralta Cordeiro a9c73a8f33
[PLUGIN][ActivityPub] Add mention tags 2021-12-20 13:32:48 +00:00
Diogo Peralta Cordeiro a005a7bcea
[PLUGIN][ActivityPub] Add getUriByObject, so that we can construct activities referring to other known objects (local or foreign) 2021-12-20 13:32:46 +00:00
Diogo Peralta Cordeiro 1d09a02ad6
[FreeNetwork][ActivityPub] Sometimes remote Actors report empty full names in not very explicit manners 2021-12-19 19:04:05 +00:00
Hugo Sales a81ac673ac
[CORE][ENTITY] Rename 'Entity::getWithPK' to 'Entity::getByPK' 2021-12-19 19:04:01 +00:00
Hugo Sales ff38efd5f1
[PLUGIN][ProfileColor] Cache results 2021-12-13 15:49:52 +00:00
Diogo Peralta Cordeiro 5dd9e5a3d7
[PLUGIN][RepeatNote] Add Notifications and ActivityPub support
Minor bug fixes
2021-12-10 04:05:41 +00:00
Diogo Peralta Cordeiro 0ee4cc7709
[PLUGIN][Favourite] Notify when actor favours a note 2021-12-10 04:05:35 +00:00
Diogo Peralta Cordeiro 4992ff153b
[PLUGIN][RepeatNote] Fill activity log and fix some bugs
Refactored the plugin.
2021-12-10 04:05:26 +00:00
Diogo Peralta Cordeiro 01689edc66
[PLUGIN][Favourite] Report already favoured or unfavoured 2021-12-10 04:05:22 +00:00
Hugo Sales 1be4b3d481
[EVENT][FilterNoteList] Use an in-out parameter, so multiple events can act on this 2021-12-09 21:39:00 +00:00
Hugo Sales 26b95fae96
[PLUGIN][StemWord] Remove the country part from the code. Ignore if no stemmer is found for the given language 2021-12-09 16:23:09 +00:00
Eliseu Amaro 774e32f834
[PLUGINS][TreeNotes] Working, however feed is still not formatted
[ENTITY][Note] Fix for getReplies()
2021-12-09 00:15:47 +00:00
Diogo Peralta Cordeiro 64122a9612
[PLUGIN][Favourite] Add ActivityPub Inbox support 2021-12-08 23:24:25 +00:00
Diogo Peralta Cordeiro 5025901c86
[PLUGIN][Favourite] Log changes into Activity 2021-12-08 23:24:25 +00:00
Diogo Peralta Cordeiro 480a42cca5
[PLUGIN][ActivityPub] Introduce ActivitypubObject. Beware, inside the plugin, an Object can never be an Activity.
Many bug fixes and other major changes (interface changed, see EVENTS.md)
2021-12-08 23:24:23 +00:00
Eliseu Amaro df92b0d225
[COMPONENTS][Conversation] Refactored Reply plugin into Conversation component
[PLUGIN][TreeNotes] TODO: think it is broken, perhaps a problem of the conversation arguments passed in note card template
2021-12-08 22:48:04 +00:00
Hugo Sales 614e02b4c6
[PLUGIN][TagBasedFiltering] Add to user settings page and split adding tags from note/actor from editing blocked 2021-12-08 19:57:36 +00:00
Hugo Sales d52a043705
[TWIG] Restructure user settings template, making it much easier to use and extend 2021-12-08 19:57:35 +00:00
Hugo Sales 3b8a3e953d
[CONTROLLER][FeedController] Make post processing happen more automatically, reducing noise in individual controllers. Now it's enough to simply extends App\Core\Controller\FeedController, to implement a feed 2021-12-08 10:20:37 +00:00
Hugo Sales 7783922b2e
[CONTROLLER][PLUGIN][Directory][Favourite][Reply][CORE][FeedController] Refactor to new FeedController 2021-12-07 23:34:32 +00:00
Hugo Sales c131e47176
[COMPONENT][Tag] Remove wrong canonicalization of tags in tag feed controller. Fix display of original tags 2021-12-07 20:10:59 +00:00
Eliseu Amaro 4657a1d6a5
[COMPONENTS][Tag] Fix actor tag template
[PLUGINS][RelatedTags] Fix actor tag template
2021-12-07 15:35:27 +00:00
Eliseu Amaro 546c5c84fd
[COMPONENTS][Tag] Actor/Note tag template polished
[PLUGINS][RelatedTags] Disable rendering of template when no results are found
2021-12-06 22:22:23 +00:00
Diogo Peralta Cordeiro 330e09f2d3
[PLUGIN][ActivityPub] Only store a new object if there were no previous activities with it before 2021-12-05 21:09:30 +00:00
Diogo Peralta Cordeiro 5196b669b9
[PLUGIN][ActivityPub] Add attachment support to Notes 2021-12-05 21:04:20 +00:00
Diogo Peralta Cordeiro 19b8a7648e
[PLUGIN][ActivityPub] Implement Avatar support 2021-12-05 20:08:14 +00:00
Hugo Sales 2a161c9c66
[PLUGIN][TagBasedFiltering] Block actor tags, but don't block notes from the current actor 2021-12-05 19:18:57 +00:00
Hugo Sales 9f445632b2
[PLUGIN][TagBasedFiltering] Expand to allow filtering by actor tags 2021-12-05 17:55:49 +00:00
Hugo Sales e29e1cc87c
[ENTITY] Rename 'getFrom' to 'getBy' 2021-12-05 17:55:46 +00:00
Hugo Sales c40866ecf6
[PLUGIN][TagBasedFiltering] Add TagBasedFiltering plugin, which allows filtering feeds by note tags and (soon) actor tags 2021-12-05 17:54:58 +00:00
Hugo Sales 1457aa8220
[UI][PLUGIN][DeleteNote][EVENT] Add 'AddExtraNoteActions' event, which can be leveraged to add extra actions on each note, but which are normally collapsed 2021-12-05 17:54:58 +00:00
Diogo Peralta Cordeiro 9512890264
[PLUGIN][ActivityPub] Implement Actor Update
Diverse minor bug fixes
2021-12-05 03:11:08 +00:00
Diogo Peralta Cordeiro 778cb57d83
[PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface
Instructions below

To extend an Activity properties do:

public function onActivityPubValidateActivityStreamsTwoData(string $type_name, array &$validators): bool {
    if ($type_name === '{Type}') {
        $validators['attribute'] = myValidator::class;
    }
    return Event::next;
}

The Validator should be of the form:

use ActivityPhp\Type;
use ActivityPhp\Type\Util;
use Plugin\ActivityPub\Util\ModelValidator;

class myValidator extends ModelValidator
{
    /**
     * Validate Attribute's value
     *
     * @param mixed $value from JSON's attribute
     * @param mixed $container A {Type}
     * @return bool
     * @throws Exception
     */
    public function validate($value, $container): bool
    {
        // Validate that container is a {Type}
        Util::subclassOf($container, Type\Extended\Object\{Type}::class, true);

        return {Validation Result};

To act on received activities do:

public function onActivityPubNew{Type}(&$obj): bool {

To add information to Activities being federated by ActivityPub do:

public function ActivityPubAddActivityStreamsTwoData(string $type_name, &$type): bool {

To implement an ActivityStreams 2.0 representation do:

public function onActivityPubActivityStreamsTwoResponse(string $route, arrray $vars, ?TypeResponse &$response = null): bool {
        if ($route === '{Object route}') {
                $response = ModelResponse::handle($vars[{Object}]);
                return Event::stop;
        }
        return Event::next;
}
2021-12-04 21:05:07 +00:00
Diogo Peralta Cordeiro 044649c745
[PLUGIN][VideoEncoder] Some videos don't have images (video stream), only audio, handle that 2021-12-03 03:32:44 +00:00
Diogo Peralta Cordeiro 582519e13e
[COMPONENT][Attachment] Do not show download links for non-local attachments 2021-12-03 03:32:43 +00:00
Eliseu Amaro ff5f346fec
[PLUGINS][Oomox] Further checks done when handling form requests. Improved documentation, fixed typos and diminished repeated calls 2021-12-03 03:32:38 +00:00
Diogo Peralta Cordeiro b66873e289
[PLUGIN][StoreRemoteMedia] Do not save empty files 2021-12-03 01:16:57 +00:00
Diogo Peralta Cordeiro 70ed04a7db
[COMPONENT][Link] Fix some minor issues with empty headed links, typo in event handler's name, and refactor entity to inside component 2021-12-03 00:46:52 +00:00
Diogo Peralta Cordeiro bded039282
[PLUGIN][Embed] try catch absence of favicon 2021-12-02 22:49:27 +00:00
Diogo Peralta Cordeiro 2e11001b8f
[PLUGIN][Embed] Fix links 2021-12-02 22:21:49 +00:00
Diogo Peralta Cordeiro 2445b5318d
[PLUGIN][Embed] Make it work when content-length header is not provided 2021-12-02 21:26:06 +00:00
Diogo Peralta Cordeiro bfec10fc95
[COMPONENT][Attachment][Entity][Attachment] getThumbnail can be null 2021-12-02 21:26:05 +00:00
Eliseu Amaro 12557a1e16
[PLUGINS][Oomox] Reset theme colors added 2021-12-02 20:26:27 +00:00
Diogo Peralta Cordeiro eeaad19754
[Attachment] Move Controller and Entities to a Component
There's no problem in having the templates in the core
2021-12-02 15:14:07 +00:00
Eliseu Amaro 37ef8cddfa
[ENTITY][Note] Add getLanguageLocale() and getNoteLanguageShortDisplay()
[CARDS][Note] Render note's language short display

[PLUGINS] Bring back titles to Reply, Repeat and Favourite actions
2021-12-02 15:05:49 +00:00
Diogo Peralta Cordeiro d044039272
[FreeNetwork] Initial multi-protocol support 2021-12-02 14:23:21 +00:00
Diogo Peralta Cordeiro dbaee08038
[FreeNetwork] Move mentions logic from AP to FN and handle local webfinger mentions properly 2021-12-02 11:12:04 +00:00
Diogo Peralta Cordeiro 53c46127c1
[ActivityPub][Explorer] Store remote's url properly 2021-12-02 11:12:03 +00:00
Diogo Peralta Cordeiro 6f543ccc06
[ActivityPub][Model][Activity] Translate including objects 2021-12-01 20:53:51 +00:00
Eliseu Amaro dcbb3488c4
[PLUGINS][Reply] Fix onAppendCardNote return 2021-12-01 19:47:45 +00:00
Hugo Sales b7fe924bdd
[TOOLS][DOCS] Add missing doc blocks, as signaled by doc-checker 2021-12-01 19:47:44 +00:00
Hugo Sales 0b57b20d38
[UI][PLUGIN][Reply][Favourite][ENTITY][Feed] Remove replies and favourite links from navigation/view.html.twig and add them to the feeds section 2021-12-01 19:47:43 +00:00
Hugo Sales 36613a826d
[CONTROLLER][PLUGIN][Reply] Move reply controller to it's plugin 2021-12-01 19:47:43 +00:00
Hugo Sales 3fbd2cd2b9
[PLUGIN][RelatedTags] Remove duplicate results 2021-12-01 19:47:41 +00:00
Diogo Peralta Cordeiro 424df54a1b
[ActivityPub] Add HTTP Signatures 2021-12-01 19:47:41 +00:00
Diogo Peralta Cordeiro 123544fa50
[ActivityPub] Port Postman 2021-12-01 19:47:40 +00:00
Diogo Peralta Cordeiro df3fbbc9e7
[ActivityPub] Add ActivityToType
Minor bug fixes
2021-12-01 19:47:39 +00:00
Eliseu Amaro c8ba81897c
[PLUGINS][Reply] getReplyToNote performance improvement
[CSS] Replies padding fix
2021-11-29 23:12:09 +00:00
Eliseu Amaro 01078e20fb
[PLUGINS][Reply] Fix return on getReplyToNote
The array contained an object, the result was within that object and not the object itself.
2021-11-29 23:12:09 +00:00
Eliseu Amaro db33800ade
[PLUGINS][Reply] Array key 'reply_to' checked if it exists.
Plugin\Reply\Entity\NoteReply::getReplyToNote lacked a check to make sure the 'reply_to' key existed within the array resulting from the query.
2021-11-29 23:12:09 +00:00
Hugo Sales 3477ad5efc
[PLUGINS][RelatedTags] Add related tags plugin and needed infrastructure. Initial work on pinned content 2021-11-29 22:42:51 +00:00
Hugo Sales 6680772e47
[UI][I18N][UTIL][FormFields][Language][COMPONENTS][Posting][PLUGINS][Reply] Factor out translation from `FormFields::language` and remove help text in cases from Posting and Reply 2021-11-29 22:42:50 +00:00
Eliseu Amaro 798a5f3796
[PLUGINS][Oomox] HTML's input[type='color'] doesn't support alpha values. Feature to apply custom shadow color removed as a result. 2021-11-29 22:42:48 +00:00
Eliseu Amaro 6ec0b9f077
[CSS] User panel CSS fixes.
[PLUGINS][Oomox] Reformatted file.
2021-11-29 22:42:48 +00:00
Eliseu Amaro 04257c5fd9
[PLUGINS][Oomox] Resulting forms are now aware of user defined colours and fallback to defaults. 2021-11-29 22:42:48 +00:00
Eliseu Amaro 3da524af58
[PLUGINS][Oomox] WIP Settings for both the light and dark themes. 2021-11-29 22:42:47 +00:00
Diogo Peralta Cordeiro 56526c9ba6
[ActivityPub][Inbox] Restore Create Note Functionality
Minor bug fixes
2021-11-29 22:42:46 +00:00
Eliseu Amaro 7145dba8af
[PLUGINS][Oomox] getEntity added.
[CORE][Cache] exists added.
2021-11-27 15:14:17 +00:00
Hugo Sales 42f40f9ebe
[CORE][CONTROLLER][Network] Refactor term 'network' into 'feeds' 2021-11-26 23:34:37 +00:00
Eliseu Amaro d46a6163a0
[PLUGINS][Oomox] Hotfix: cache wasn't set. Proper labels. 2021-11-26 15:01:30 +00:00
Eliseu Amaro 180ae15647
[PLUGINS][Oomox] User theme CSS file is served. Settings page needs polish, and option to revert changes. 2021-11-26 14:45:28 +00:00
Eliseu Amaro 7fa2418e54
[PLUGINS][Oomox] Theme colours WIP. 2021-11-26 14:45:28 +00:00
Hugo Sales 6cd7be6abc
[UI][CONTROLLER][ENTITY][DOCS] Refactor term 'timeline' into 'feed' 2021-11-26 13:05:23 +00:00
Hugo Sales b1262919da
[TOOLS] Fix (most) issues found by PHPStan 2021-11-25 23:08:30 +00:00
Hugo Sales 98b719dca3
[COMPONENTS][Tag] Split tag into words and stem each 2021-11-25 20:37:53 +00:00
Hugo Sales a64c488e21
[PLUGINS] Add StemWord plugin, which stems words, given a language. Currently used for tags 2021-11-25 20:37:53 +00:00
Eliseu Amaro d8147cbd2d
[PLUGINS][AttachmentShowRelated] Fixed note template error. Fixed if statement.
[CORE][Controller] Commented CSP out.
2021-11-24 12:46:32 +00:00
Hugo Sales 1dd86a2302
[TESTS] Many tests fixes (already fixed the dependant code) 2021-11-20 21:32:25 +00:00
Eliseu Amaro 0aa43783e8
[PLUGIN][Repeat] Repeat now repeats attachments as it should.
[COMPONENTS][Posting] Now accepts attachments already processed.
[ENTITY][Note] Added getAttachmentsWithTitle().
2021-11-17 17:14:15 +00:00
Diogo Peralta Cordeiro 89d36a68e5
[ENTITY][Actor] Add is_local, it's common to depend, and this makes it much faster, with a low space cost 2021-11-16 23:26:20 +00:00
Eliseu Amaro 2561823550
[PLUGIN][Repeat] Fixed corner case where the user would return to repeat form page and try to repeat the note again. 2021-11-16 19:39:03 +00:00
Eliseu Amaro acc43a276b
[PLUGIN][Reply] User's own replies wont display their own nickname on rendering the original note. 2021-11-16 19:36:17 +00:00
Eliseu Amaro 9dbbc9e18e
[PLUGIN][Repeat] Fixed bug where checks dependant on user being logged in were attempted. 2021-11-15 19:25:52 +00:00
Eliseu Amaro 6e90e51f0c
[PLUGIN][CONTROLLER][Repeat] Fixed Repeat controller to update note_repeat table on removal. 2021-11-15 19:25:52 +00:00
Eliseu Amaro b71e869843
[PLUGIN][Repeat] onAppendCardNote added. getNoteRepeats implemented. 2021-11-15 19:25:52 +00:00
Hugo Sales f667b558f7
[TESTS] Fix SecurityTest
This test was broken by changes in the routing and in the templates.
However, this revealead a potential open redirect and duplicated code
in the Reply and Favourite plugins
2021-11-11 12:39:28 +00:00
Eliseu Amaro d0f9fde7c2
[PLUGIN][Reply] WIP. Note complementary info now shows who has replied on the original note! 2021-11-10 15:44:28 +00:00
Eliseu Amaro f2f1bdc145
[PLUGIN][Reply] Separated replies from Note table.
[PLUGIN][Repeat] Deleted unnecessary card note template, info now to
appended at the end of note.
[PLUGIN][TreeNotes] WIP to accomodate reply plugin changes.
[TWIG][Runtime] Removed getAdditionalTemplateVars event.
2021-11-10 13:29:53 +00:00
Eliseu Amaro cf09b48e92
[PLUGINS][Repeat] Added note_repeat entity, fixed visual discrepancies, and completed the expected functionality.
[ENTITY][Note] Removed repeat_off from table. It is now part of the Repeat plugin.
2021-11-01 21:19:56 +00:00
Diogo Peralta Cordeiro c862c9bf18
[ActivityPub] Make remote mentions great again 2021-11-01 12:16:46 +00:00
Eliseu Amaro 9a23e03330
[PLUGINS][Repeat] Repeat template override WIP. 2021-10-29 17:26:20 +01:00
Hugo Sales 4d9a5aae5a
[ActivityPub] Always explicitly compare the results of `Event::handle` to the constants `next` or `stop` 2021-10-28 17:28:02 +01:00
Eliseu Amaro 3388e0e8f1
[TWIG][Cards] Note template fully refactored. Template has now macros for different views for the card.
[PLUGINS][Repeat] WIP: Action added.
[PLUGINS][Favourite] Changes to accomodate note card template refactoring.
[CSS] Fixed textarea from being resized horizontally.
2021-10-27 20:44:51 +01:00
Eliseu Amaro d47f125894
[PLUGINS][Favourite] Refactored redirection to previous url. User is now unable to do invalid actions (ex. favour an already favourited note).
[PLUGINS][ActivityPub] Fixed favour route id to be more consistent.
2021-10-27 20:44:50 +01:00
Diogo Peralta Cordeiro 51c984849f
[ActivityPub] Port Explorer 2021-10-27 04:22:19 +01:00
Eliseu Amaro 45f65baf96
[PLUGINS][Embed] Polished embed template in order to better utilize space.
[CSS][Feed] Embed related additions.
2021-10-27 04:19:34 +01:00
Diogo Peralta Cordeiro 0407ac38cf
[AudioEncoder] Introduce basic audio plugin to provide an attachment template and duration metadata for audio mimetype 2021-10-27 04:19:34 +01:00
Eliseu Amaro ebf675ec59
[Plugins][FAVOURITE] Redirect added. Only redirects from the route the user came from, not the anchored note. To be added. Further corner cases fixed. 2021-10-27 04:19:33 +01:00
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