modified file smtp-mailer

This commit is contained in:
2024-06-27 12:11:15 +00:00
committed by Gitium
parent 91db4aebe1
commit 19e351ef3b
1005 changed files with 230351 additions and 8670 deletions
wp-content/upgrade-temp-backup/plugins
activitypub
authldap
companion-auto-update
gp-premium
backgrounds
blog
colors
copyright
disable-elements
dist
elements
general
gp-premium.php
hooks
inc
langs
gp-premium-ar.mogp-premium-bn_BD.mogp-premium-cs_CZ.mogp-premium-da_DK.mogp-premium-de_DE-42da344ccb044413769d16ed3484307b.jsongp-premium-de_DE-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-de_DE-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-de_DE-cbab080b0f20fd6c323029398be6c986.jsongp-premium-de_DE-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-de_DE.mogp-premium-es_AR.mogp-premium-es_ES-42da344ccb044413769d16ed3484307b.jsongp-premium-es_ES-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-es_ES-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-es_ES-cbab080b0f20fd6c323029398be6c986.jsongp-premium-es_ES-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-es_ES.mogp-premium-fi-42da344ccb044413769d16ed3484307b.jsongp-premium-fi-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-fi-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-fi-cbab080b0f20fd6c323029398be6c986.jsongp-premium-fi-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-fi.mogp-premium-fr_FR-42da344ccb044413769d16ed3484307b.jsongp-premium-fr_FR-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-fr_FR-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-fr_FR.mogp-premium-hr.mogp-premium-hu_HU.mogp-premium-it_IT.mogp-premium-nb_NO.mogp-premium-nl_NL-42da344ccb044413769d16ed3484307b.jsongp-premium-nl_NL-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-nl_NL-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-nl_NL-cbab080b0f20fd6c323029398be6c986.jsongp-premium-nl_NL-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-nl_NL.mogp-premium-pl_PL.mogp-premium-pt_BR.mogp-premium-pt_PT-42da344ccb044413769d16ed3484307b.jsongp-premium-pt_PT-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-pt_PT-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-pt_PT.mogp-premium-ru_RU-42da344ccb044413769d16ed3484307b.jsongp-premium-ru_RU-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-ru_RU-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-ru_RU-cbab080b0f20fd6c323029398be6c986.jsongp-premium-ru_RU-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-ru_RU.mogp-premium-sv_SE-42da344ccb044413769d16ed3484307b.jsongp-premium-sv_SE-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-sv_SE-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-sv_SE-cbab080b0f20fd6c323029398be6c986.jsongp-premium-sv_SE-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-sv_SE.mogp-premium-uk.mogp-premium-vi.mogp-premium-zh_CN.mo
library
menu-plus
page-header
readme.txt
secondary-nav
sections
site-library
spacing
typography
woocommerce
wpml-config.xml
jetpack-protect
CHANGELOG.mdLICENSE.txtSECURITY.md
assets
build
composer.jsonjetpack-protect.php
jetpack_vendor
automattic
jetpack-a8c-mc-stats
jetpack-admin-ui
jetpack-assets
jetpack-backup-helper-script-manager
jetpack-boost-core
jetpack-boost-speed-score
jetpack-config
jetpack-connection
jetpack-constants
jetpack-device-detection
jetpack-identity-crisis
jetpack-ip
jetpack-jitm
jetpack-licensing
jetpack-logo
jetpack-my-jetpack
jetpack-password-checker
jetpack-plugins-installer
jetpack-redirect
jetpack-roles
jetpack-status
jetpack-sync
jetpack-transport-helper
jetpack-waf
i18n-map.php
readme.txt
src
vendor
menu-icons
CHANGELOG.mdLICENSE
css
images
includes
js
languages
mailin.phpmenu-icons.phpreadme.mdreadme.txt
vendor
autoload.php
codeinwp
gutenberg-menu-icons
icon-picker
menu-item-custom-fields
themeisle-sdk
composer
simple-local-avatars
smtp-mailer
two-factor

@ -3,10 +3,14 @@ namespace Activitypub\Integration;
use DateTime;
use Activitypub\Webfinger as Webfinger_Util;
use Activitypub\Http;
use Activitypub\Collection\Users;
use Activitypub\Collection\Followers;
use Activitypub\Integration\Nodeinfo;
use Enable_Mastodon_Apps\Mastodon_API;
use Enable_Mastodon_Apps\Entity\Account;
use Enable_Mastodon_Apps\Entity\Status;
use Enable_Mastodon_Apps\Entity\Media_Attachment;
use function Activitypub\get_remote_metadata_by_actor;
@ -23,9 +27,11 @@ class Enable_Mastodon_Apps {
*/
public static function init() {
\add_filter( 'mastodon_api_account_followers', array( self::class, 'api_account_followers' ), 10, 2 );
\add_filter( 'mastodon_api_account', array( self::class, 'api_account' ), 20, 2 );
\add_filter( 'mastodon_api_account', array( self::class, 'api_account_add_followers' ), 20, 2 );
\add_filter( 'mastodon_api_account', array( self::class, 'api_account_external' ), 10, 2 );
\add_filter( 'mastodon_api_search', array( self::class, 'api_search' ), 40, 2 );
\add_filter( 'mastodon_api_get_posts_query_args', array( self::class, 'api_get_posts_query_args' ) );
\add_filter( 'mastodon_api_statuses', array( self::class, 'api_statuses_external' ), 10, 2 );
}
/**
@ -95,8 +101,8 @@ class Enable_Mastodon_Apps {
*
* @return Enable_Mastodon_Apps\Entity\Account The filtered Account
*/
public static function api_account( $account, $user_id ) {
if ( ! $account instanceof Account ) {
public static function api_account_add_followers( $account, $user_id ) {
if ( ! $account instanceof Account || ! is_numeric( $user_id ) ) {
return $account;
}
@ -121,8 +127,9 @@ class Enable_Mastodon_Apps {
}
}
$account->acct = $user->get_webfinger();
$account->acct = $user->get_preferred_username();
$account->note = $user->get_summary();
$account->followers_count = Followers::count_followers( $user_id );
return $account;
}
@ -136,34 +143,47 @@ class Enable_Mastodon_Apps {
* @return Enable_Mastodon_Apps\Entity\Account The filtered Account
*/
public static function api_account_external( $user_data, $user_id ) {
if ( ! preg_match( '/^' . ACTIVITYPUB_USERNAME_REGEXP . '$/', $user_id ) ) {
if ( $user_data || is_numeric( $user_id ) ) {
// Only augment.
return $user_data;
}
$uri = Webfinger_Util::resolve( $user_id );
if ( ! $uri ) {
if ( ! $uri || is_wp_error( $uri ) ) {
return $user_data;
}
$acct = Webfinger_Util::uri_to_acct( $uri );
$account = self::get_account_for_actor( $uri );
if ( $account ) {
return $account;
}
return $user_data;
}
private static function get_account_for_actor( $uri ) {
if ( ! is_string( $uri ) ) {
return null;
}
$data = get_remote_metadata_by_actor( $uri );
if ( ! $data || is_wp_error( $data ) ) {
return $user_data;
return null;
}
$account = new Account();
$acct = Webfinger_Util::uri_to_acct( $uri );
if ( str_starts_with( $acct, 'acct:' ) ) {
$acct = substr( $acct, 5 );
}
if ( $user_data instanceof Account ) {
$account = $user_data;
} else {
$account = new Account();
}
$account->id = strval( $user_id );
$account->id = $acct;
$account->username = $acct;
$account->acct = $acct;
$account->display_name = $data['name'];
$account->url = $uri;
if ( ! empty( $data['summary'] ) ) {
$account->note = $data['summary'];
}
@ -178,8 +198,8 @@ class Enable_Mastodon_Apps {
}
if ( isset( $data['image'] ) ) {
$account->header = $data['image'];
$account->header_static = $data['image'];
$account->header = $data['image']['url'];
$account->header_static = $data['image']['url'];
}
$account->created_at = new DateTime( $data['published'] );
@ -233,4 +253,114 @@ class Enable_Mastodon_Apps {
return $search_data;
}
public function api_get_posts_query_args( $args ) {
if ( isset( $args['author'] ) && is_string( $args['author'] ) ) {
$uri = Webfinger_Util::resolve( $args['author'] );
if ( $uri && ! is_wp_error( $uri ) ) {
$args['activitypub'] = $uri;
unset( $args['author'] );
}
}
return $args;
}
public static function api_statuses_external( $statuses, $args ) {
if ( ! isset( $args['activitypub'] ) ) {
return $statuses;
}
$data = get_remote_metadata_by_actor( $args['activitypub'] );
if ( ! $data || is_wp_error( $data ) || ! isset( $data['outbox'] ) ) {
return $statuses;
}
$response = Http::get( $data['outbox'], true );
if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) !== 200 ) {
return $statuses;
}
$outbox = json_decode( wp_remote_retrieve_body( $response ), true );
if ( ! $outbox || is_wp_error( $outbox ) || ! isset( $outbox['first'] ) ) {
return $statuses;
}
$account = self::get_account_for_actor( $args['activitypub'] );
if ( ! $account ) {
return $statuses;
}
$response = Http::get( $outbox['first'], true );
if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) !== 200 ) {
return $statuses;
}
$posts = json_decode( wp_remote_retrieve_body( $response ), true );
$activitypub_statuses = array_map(
function ( $item ) use ( $account ) {
$object = $item['object'];
if ( ! isset( $object['type'] ) || 'Note' !== $object['type'] ) {
return null;
}
$status = new Status();
$status->id = Mastodon_API::remap_url( $object['id'] );
$status->created_at = new DateTime( $object['published'] );
$status->content = $object['content'];
$status->account = $account;
if ( ! empty( $object['inReplyTo'] ) ) {
$status->in_reply_to_id = $object['inReplyTo'];
}
if ( ! empty( $object['visibility'] ) ) {
$status->visibility = $object['visibility'];
}
$status->uri = $object['url'];
if ( ! empty( $object['attachment'] ) ) {
$status->media_attachments = array_map(
function ( $attachment ) {
$default_attachment = array(
'url' => null,
'mediaType' => null,
'name' => null,
'width' => 0,
'height' => 0,
'blurhash' => null,
);
$attachment = array_merge( $default_attachment, $attachment );
$media_attachment = new Media_Attachment();
$media_attachment->id = Mastodon_API::remap_url( $attachment['url'], $attachment );
$media_attachment->type = strtok( $attachment['mediaType'], '/' );
$media_attachment->url = $attachment['url'];
$media_attachment->preview_url = $attachment['url'];
$media_attachment->description = $attachment['name'];
$media_attachment->blurhash = $attachment['blurhash'];
$media_attachment->meta = array(
'original' => array(
'width' => $attachment['width'],
'height' => $attachment['height'],
'size' => $attachment['width'] . 'x' . $attachment['height'],
'aspect' => $attachment['width'] / $attachment['height'],
),
);
return $media_attachment;
},
$object['attachment']
);
}
return $status;
},
$posts['orderedItems']
);
return $activitypub_statuses;
}
}