Commit Graph

18286 Commits

Author SHA1 Message Date
Miguel Dantas
ab3e8ce21d [LIB_REFACTOR] Fix requires 2021-07-16 19:44:34 +01:00
Miguel Dantas
2ab2e22a36 [LIB_REFACTOR] Moving files into separate semantic categories 2021-07-16 19:44:34 +01:00
Miguel Dantas
5e16606358 [RedisCache] Fix call to getPayload on int. The library is badly documented, but seems to return the TTL instead of the normal redis response
Issue description as reported by aab:

About one day after enabling redis plugin:

PHP Fatal error:  Uncaught Error: Call to a member function getPayload() on int in /var/www/html/plugins/RedisCache/RedisCachePlugin.php:96
Stack trace:
0 /var/www/html/lib/event.php(89): RedisCachePlugin->onStartCacheSet('gnusocial:gatea...', Object(Queue_item), NULL, 86400, false)
1 /var/www/html/lib/cache.php(202): Event::handle('StartCacheSet', Array)
2 /var/www/html/classes/Memcached_DataObject.php(496): Cache->set('gnusocial:gatea...', Object(Queue_item))
3 /var/www/html/classes/Memcached_DataObject.php(416): Memcached_DataObject->encache()
4 /var/www/html/classes/Managed_DataObject.php(620): Memcached_DataObject->update(Object(Queue_item))
5 /var/www/html/classes/Queue_item.php(74): Managed_DataObject->update(Object(Queue_item))
6 /var/www/html/lib/dbqueuemanager.php(75): Queue_item::top(Array, Array)
7 /var/www/html/lib/iomaster.php(287): DBQueueManager->poll()
8 /var/www/html/lib/iomaster.php(161): IoMaster->poll()
9 /var/www/html/scripts/queuedaemon.php(112): IoMaster->service()
10 /var/www/html/lib/spawni in /var/www/html/plugins/RedisCache/RedisCachePlugin.php on line 96
2021-07-16 19:44:34 +01:00
Miguel Dantas
ba593bfa39 [Memcached] Fix call to undefined method close
Issue description as reported by aab:

Memcached config in config.php:

    addPlugin('Memcached', [ 'servers' => ['127.0.0.1', 11211],
                             'defaultExpiry' => 86400 // 24h
                           ]);

Memcached and php-memchached installed.

The error appears when executing startdaemons.

Log:

    PHP Fatal error:  Uncaught Error: Call to undefined method Memcached::close() in /var/www/html/plugins/Memcached/MemcachedPlugin.php:202
    Stack trace:
    #0 /var/www/html/lib/event.php(89): MemcachedPlugin->onStartCacheReconnect(false)
    #1 /var/www/html/lib/cache.php(273): Event::handle('StartCacheRecon...', Array)
    #2 /var/www/html/lib/spawningdaemon.php(209): Cache->reconnect()
    #3 /var/www/html/lib/spawningdaemon.php(188): SpawningDaemon->resetDb()
    #4 /var/www/html/lib/spawningdaemon.php(118): SpawningDaemon->initAndRunChild(3)
    #5 /var/www/html/lib/daemon.php(168): SpawningDaemon->run()
    #6 /var/www/html/scripts/queuedaemon.php(186): Daemon->runOnce()
    #7 {main}
      thrown in /var/www/html/plugins/Memcached/MemcachedPlugin.php on line 202
2021-07-16 19:44:34 +01:00
Miguel Dantas
a99ae06573 [Embed] Fix use of undefined img_data
Got error 'PHP message: PHP Notice: Undefined variable: img_data in /var/www/html/plugins/Embed/EmbedPlugin.php on line 544'
2021-07-16 19:44:34 +01:00
tenma
8f070f53ec [CORE] Fix undefined offset warnings in different files
This problem was presentend in the following issue:
https://notabug.org/diogo/gnu-social/issues/60

AcceptHeader/util:
- Perform isset before using the required array values
2021-07-16 19:44:34 +01:00
tenma
fe2168c5ae [ActivityPub] Add support fox search-box profile/notice grabbing
NoticeSearchAction:
- Add new event before finding query matches

ActivityPubPlugin:
- Subscribe new searchNotice event
- Bump minor version number

Activitypub_explorer:
- Update lookup to make remote-grabbing optional
2021-07-16 19:44:34 +01:00
tenma
3392939004 [ActivityPub] Handle DELETE-Person activity
ActivityPubPlugin:
- update grab_notice_from_url to make online grab optional
- subscribe events of user and profile deletion
- bump minor version number

Activitypub_inbox_handler:
- separate handle_delete for delete-note and delete-person

Activitypub_postman:
- add delete-person logic

Activitypub_delete:
- update validation method to check for the "Person" type
- update to_array method to target the activity
2021-07-16 19:44:34 +01:00
Miguel Dantas
18d9875e59 [CORE] Fix small bug where Notice was sending a JSON representation to the queue, instead of sending itself 2021-07-16 19:44:34 +01:00
tenma
58a9c71391 [AP] Fix subscription events
Both StartSubscribe and StartUnsubscribe had a wrong initial if-condition.
Furthermore, this events were calling Activitypub_profile::from_profile()
which is wrong because it creates the Activitypub_profile object when
the goal is only to check if it exists already.
2021-07-16 19:44:34 +01:00
tenma
6af86536aa [AP] Subscribe RemoteFollow plugin events for allowing following with the remote-follow button 2021-07-16 19:44:34 +01:00
tenma
66c5d17469 [OStatus] Port remote-follow to the RemoteFollow plugin
OStatusPlugin:
- Stop adding the remote-follow button
- Subscribe to required RemoteFollow plugin events
- Drop main/ostatussub route and update urls to the main/RemoteFollowSub route
- Bump plugin minor version number

actions/ostatusgroup,
actions/ostatuspeopletag:
- Update urls to the main/RemoteFollowSub route

lib/util:
- Port required functions from OStatusSubAction and adapt to be used with the new events
2021-07-16 19:44:34 +01:00
tenma
32ae48358d [RemoteFollow] Initial work in the RemoteFollow plugin
lib/default.php
- Add RemoteFollow to the list of default plugins

RemoteFollowPlugin:
- Subscribe events to add the remote-follow button

RemoteFollowInitAction:
- Handles the remote-follow form and getting the redirection url for follow completion

RemoteFollowSubAction:
- Handles the remote profile pulling and actual following
2021-07-16 19:44:34 +01:00
Miguel Dantas
d9668a6d07 [URLMAPPER] Fix small bug in URLMapper: a dynamic route might not exist even if a static one does 2021-07-16 19:44:34 +01:00
Miguel Dantas
12172f08d7 [DirectMessage] Fixed use of incorrect type which prevented posting notices with only one word 2021-07-16 19:44:34 +01:00
tenma
84ba14426c [AP] Update version info 2021-07-16 19:44:34 +01:00
tenma
13d7c3debe [AP] Prevent postman to include the actor's followers for every sent activity 2021-07-16 19:44:34 +01:00
tenma
738f9cb89c [AP] Support Private Messaging
ActivityPubPlugin:
- Subscribe DirectMessage events

Activitypub_inbox_handler:
- Update handle_create_note to create private messages

Activitypub_postman:
- Add create_direct_note for sending private messages

Activitypub_create:
- Update create_to_array to support the 'directMessage' attribute
- Add isPrivateNote to verify private activities

Activitypub_notice:
- Update create_note to support the 'directMessage' attribute
- Remove isPrivateNote

lib/models:
- Add Activitypub_message, the model in charge of private notes
2021-07-16 19:44:34 +01:00
tenma
3852ad175f [AP] Fix Follow collections
Activitypub_profile:
- Fix subscription-counter getter functions, invalid profiles were being counted

apActorFollowingAction:
- Small rewrite of generate_following, didn't make sense to not use try-catch block

apActorFollowersAction:
- Small rewrite of generate_followers, didn't make sense to not use try-catch block
2021-07-16 19:44:34 +01:00
tenma
83f179989e [AP] Handle unlisted/followers-only notices
Note that this commit isn't intended to add support for sending such notes
in GS. Instead, we handle the reception, storage and direct reply to this
type of notices, in AP.

ActivityPubPlugin:
- Subscribe the event StartNoticeSave to hack answering non-public notes

Activitypub_create:
- Add 'directMessage' attribute to the Create activity, defaulting to false for now
- Update validation method: validate 'directMessage' and add debug

Activitypub_notice:
- Handle incoming unlisted/followers-only notes
- Add support for unlisted-replies
- Add method to verify private (direct) notices

inbox_handler:
- Add handler for CREATE Note
- Prepare logic for private-messaging
- Overall refactor: Class members were continuously being passed as function arguments without need

SharePlugin:
- Stop showing the announce button in non public posts
2021-07-16 19:44:34 +01:00
tenma
0d9606ffbf [AP] Properly target public notices
ActivityPubPlugin:
- Use TO as principal audience, CC as secondary
- Update note validation
2021-07-16 19:44:34 +01:00
Miguel Dantas
4a56a61094 [RedisCache] Added plugin description, fixes 'empty msgid' error 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
8d9b88a8bc [OverwriteThemeBackground] This new plugin will let the admin set a custom background theme independent 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
616858ea89 [ExtendedProfile] Fix Admin menu option 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
428878b6d8 [MODULES] Allow to delete third party plugins 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
0d7c0069f2 [MODULES] Allow to upload third party plugins
Fixed some bugs
2021-07-16 19:44:34 +01:00
Diogo Cordeiro
ca22279797 [MODULES] List all available plugins and allow enabling them via UI
Yet another revision of the Admin Plugin Management tool
2021-07-16 19:44:34 +01:00
Diogo Cordeiro
5524cf331c [DOCUMENTATION][DEVELOPERS][PLUGINS] Some updates to Plugins doc 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
a43c10582f [TagCloud] Add Readme 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
8d848683ad [SearchSub][README] No longer is a default plugin since 8614cd77 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
0c6d94fca8 [SamplePlugin] Review and update with the latest GNU social best practices 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
68db757269 [ConversationTree] Format the plugin, add strict typing and fix docblocks 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
76609d8f37 [OfflineBackup] Fix plugin 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
33ac4aed32 [PLUGINS] Removed OpenX as the service doesn't exist anymore 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
2d7ca37036 [GroupFavorited] Fix plugin 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
3bf010ddd8 [ExtendedProfile] Hide 'Extra fields' from profile when no field was created by the sysadmin 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
9a9fa89a0c [ExtendedProfile] Allow to delete custom profile field 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
fd1a7a5e68 [Plugins] Incorporated GNUsocialExtendedProfile as part of ExtendedProfile
Also improved a lot of the plugin and made things in a way it would make sense
2021-07-16 19:44:34 +01:00
Diogo Cordeiro
c71fa9099f [GNUsocialProfileExtensions] Fixed plugin 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
9bb6fc3f0d [PLUGINS] Removed GNUsocial{Photo, Photos, Video} as we don't need them anymore 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
3909d49982 [PLUGINS] Removed GeoURL as the service doesn't exist anymore 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
a4680524a7 [ForceGroup] Modernized plugin and improved documentation 2021-07-16 19:44:34 +01:00
Diogo Cordeiro
5a679ac561 [DEFAULT] Add 'DirectionDetector' as a default plugin 2021-07-16 19:44:33 +01:00
Diogo Cordeiro
66edc49bcf [ChooseTheme] Fixed plugin 2021-07-16 19:44:33 +01:00
Diogo Cordeiro
0ecf9eb649 [BlankAd] Fixed plugin 2021-07-16 19:44:33 +01:00
Diogo Cordeiro
79cce82e50 [Awesomeness] Fixed plugin 2021-07-16 19:44:33 +01:00
Diogo Cordeiro
5ca939fdd2 [DEFAULT] Add 'AccountManager' as a default plugin 2021-07-16 19:44:33 +01:00
Diogo Cordeiro
fa28646d43 [CORE] Core modules shouldn't show up in version action 2021-07-16 19:44:33 +01:00
Diogo Cordeiro
20a6f1d4f4 [CORE] Plugin API now extends a new Module API 2021-07-16 19:44:33 +01:00
Diogo Cordeiro
3821d2317e [PLUGIN API] Bug fixes and improvements 2021-07-16 19:44:33 +01:00