mirror of
https://github.com/friendica/friendica
synced 2025-01-03 14:02:26 +00:00
Merge branch 'develop' into refactoring-of-app-class
This commit is contained in:
commit
c1b48be75c
8 changed files with 81 additions and 74 deletions
|
@ -45,6 +45,7 @@ steps:
|
|||
composer_install:
|
||||
image: friendicaci/php8.2:php8.2.16
|
||||
commands:
|
||||
- mkdir addon # create empty addon folder to appease composer
|
||||
- export COMPOSER_HOME=.composer
|
||||
- composer validate
|
||||
- composer install --no-dev --optimize-autoloader
|
||||
|
|
|
@ -43,6 +43,7 @@ steps:
|
|||
composer_install:
|
||||
image: friendicaci/php8.2:php8.2.16
|
||||
commands:
|
||||
- mkdir addon # create empty addon folder to appease composer
|
||||
- export COMPOSER_HOME=.composer
|
||||
- composer validate
|
||||
- composer install --no-dev --optimize-autoloader
|
||||
|
|
|
@ -152,7 +152,7 @@
|
|||
"mikey179/vfsstream": "^1.6",
|
||||
"mockery/mockery": "^1.3",
|
||||
"php-mock/php-mock-phpunit": "^2.10",
|
||||
"phpstan/phpstan": "^1.12",
|
||||
"phpstan/phpstan": "^2.0",
|
||||
"phpunit/phpunit": "^9"
|
||||
},
|
||||
"scripts": {
|
||||
|
|
14
composer.lock
generated
14
composer.lock
generated
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "11175d4e9806e8a5069d010140431af1",
|
||||
"content-hash": "3e31a2243fb69e47e1b7000cca946fa2",
|
||||
"packages": [
|
||||
{
|
||||
"name": "asika/simple-console",
|
||||
|
@ -4834,20 +4834,20 @@
|
|||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "1.12.7",
|
||||
"version": "2.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan.git",
|
||||
"reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0"
|
||||
"reference": "ab4e9b4415a5fc9e4d27f7fe16c8bc9d067dcd6d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc2b9976bd8b0f84ec9b0e50cc35378551de7af0",
|
||||
"reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/ab4e9b4415a5fc9e4d27f7fe16c8bc9d067dcd6d",
|
||||
"reference": "ab4e9b4415a5fc9e4d27f7fe16c8bc9d067dcd6d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2|^8.0"
|
||||
"php": "^7.4|^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpstan/phpstan-shim": "*"
|
||||
|
@ -4888,7 +4888,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-10-18T11:12:07+00:00"
|
||||
"time": "2024-11-11T15:43:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
|
|
|
@ -89,7 +89,9 @@ class BaseCollection extends \ArrayIterator
|
|||
*/
|
||||
public function map(callable $callback): BaseCollection
|
||||
{
|
||||
return new self(array_map($callback, $this->getArrayCopy()), $this->getTotalCount());
|
||||
$class = get_class($this);
|
||||
|
||||
return new $class(array_map($callback, $this->getArrayCopy()), $this->getTotalCount());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -102,7 +104,9 @@ class BaseCollection extends \ArrayIterator
|
|||
*/
|
||||
public function filter(callable $callback = null, int $flag = 0): BaseCollection
|
||||
{
|
||||
return new self(array_filter($this->getArrayCopy(), $callback, $flag));
|
||||
$class = get_class($this);
|
||||
|
||||
return new $class(array_filter($this->getArrayCopy(), $callback, $flag));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -112,14 +116,16 @@ class BaseCollection extends \ArrayIterator
|
|||
*/
|
||||
public function reverse(): BaseCollection
|
||||
{
|
||||
return new self(array_reverse($this->getArrayCopy()), $this->getTotalCount());
|
||||
$class = get_class($this);
|
||||
|
||||
return new $class(array_reverse($this->getArrayCopy()), $this->getTotalCount());
|
||||
}
|
||||
|
||||
/**
|
||||
* Split the collection in smaller collections no bigger than the provided length
|
||||
*
|
||||
* @param int $length
|
||||
* @return self[]
|
||||
* @return static[]
|
||||
*/
|
||||
public function chunk(int $length): array
|
||||
{
|
||||
|
@ -128,7 +134,9 @@ class BaseCollection extends \ArrayIterator
|
|||
}
|
||||
|
||||
return array_map(function ($array) {
|
||||
return new self($array);
|
||||
$class = get_class($this);
|
||||
|
||||
return new $class($array);
|
||||
}, array_chunk($this->getArrayCopy(), $length));
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,10 @@ class ActivityPubConversion extends BaseModule
|
|||
{
|
||||
$results = [];
|
||||
|
||||
$visible_whitespace = function (string $s): string {
|
||||
return '<pre>' . htmlspecialchars($s) . '</pre>';
|
||||
};
|
||||
|
||||
if (!empty($_REQUEST['source'])) {
|
||||
try {
|
||||
$source = json_decode($_REQUEST['source'], true);
|
||||
|
@ -39,11 +43,11 @@ class ActivityPubConversion extends BaseModule
|
|||
$formatted = json_encode($source, JSON_PRETTY_PRINT);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Formatted'),
|
||||
'content' => $this->visible_whitespace(trim(var_export($formatted, true), "'")),
|
||||
'content' => $visible_whitespace(trim(var_export($formatted, true), "'")),
|
||||
];
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Source'),
|
||||
'content' => $this->visible_whitespace(var_export($source, true))
|
||||
'content' => $visible_whitespace(var_export($source, true))
|
||||
];
|
||||
$activity = JsonLD::compact($source);
|
||||
if (!$activity) {
|
||||
|
@ -51,7 +55,7 @@ class ActivityPubConversion extends BaseModule
|
|||
}
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Activity'),
|
||||
'content' => $this->visible_whitespace(var_export($activity, true))
|
||||
'content' => $visible_whitespace(var_export($activity, true))
|
||||
];
|
||||
|
||||
$type = JsonLD::fetchElement($activity, '@type');
|
||||
|
@ -99,14 +103,14 @@ class ActivityPubConversion extends BaseModule
|
|||
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Object data'),
|
||||
'content' => $this->visible_whitespace(var_export($object_data, true))
|
||||
'content' => $visible_whitespace(var_export($object_data, true))
|
||||
];
|
||||
|
||||
$item = ActivityPub\Processor::createItem($object_data, true);
|
||||
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Result Item'),
|
||||
'content' => $this->visible_whitespace(var_export($item, true))
|
||||
'content' => $visible_whitespace(var_export($item, true))
|
||||
];
|
||||
} catch (\Throwable $e) {
|
||||
$results[] = [
|
||||
|
@ -126,9 +130,4 @@ class ActivityPubConversion extends BaseModule
|
|||
|
||||
return $o;
|
||||
}
|
||||
|
||||
private function visible_whitespace(string $s): string
|
||||
{
|
||||
return '<pre>' . htmlspecialchars($s) . '</pre>';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,6 +30,11 @@ class Babel extends BaseModule
|
|||
protected function content(array $request = []): string
|
||||
{
|
||||
$results = [];
|
||||
|
||||
$visible_whitespace = function (string $s): string {
|
||||
return '<pre>' . htmlspecialchars($s) . '</pre>';
|
||||
};
|
||||
|
||||
if (!empty($request['text'])) {
|
||||
self::checkFormSecurityTokenForbiddenOnError('babel');
|
||||
switch (($request['type'] ?? '') ?: 'bbcode') {
|
||||
|
@ -37,24 +42,24 @@ class Babel extends BaseModule
|
|||
$bbcode = $request['text'];
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Source input'),
|
||||
'content' => $this->visible_whitespace($bbcode)
|
||||
'content' => $visible_whitespace($bbcode)
|
||||
];
|
||||
|
||||
$plain = Text\BBCode::toPlaintext($bbcode, false);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::toPlaintext'),
|
||||
'content' => $this->visible_whitespace($plain)
|
||||
'content' => $visible_whitespace($plain)
|
||||
];
|
||||
|
||||
$html = Text\BBCode::convertForUriId(0, $bbcode);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::convert (raw HTML)'),
|
||||
'content' => $this->visible_whitespace($html)
|
||||
'content' => $visible_whitespace($html)
|
||||
];
|
||||
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::convert (hex)'),
|
||||
'content' => $this->visible_whitespace(bin2hex($html)),
|
||||
'content' => $visible_whitespace(bin2hex($html)),
|
||||
];
|
||||
|
||||
$results[] = [
|
||||
|
@ -65,19 +70,19 @@ class Babel extends BaseModule
|
|||
$bbcode2 = Text\HTML::toBBCode($html);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::convert => HTML::toBBCode'),
|
||||
'content' => $this->visible_whitespace($bbcode2)
|
||||
'content' => $visible_whitespace($bbcode2)
|
||||
];
|
||||
|
||||
$markdown = Text\BBCode::toMarkdown($bbcode);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::toMarkdown'),
|
||||
'content' => $this->visible_whitespace($markdown)
|
||||
'content' => $visible_whitespace($markdown)
|
||||
];
|
||||
|
||||
$html2 = Text\Markdown::convert($markdown);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::toMarkdown => Markdown::convert (raw HTML)'),
|
||||
'content' => $this->visible_whitespace($html2)
|
||||
'content' => $visible_whitespace($html2)
|
||||
];
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::toMarkdown => Markdown::convert'),
|
||||
|
@ -87,13 +92,13 @@ class Babel extends BaseModule
|
|||
$bbcode3 = Text\Markdown::toBBCode($markdown);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::toMarkdown => Markdown::toBBCode'),
|
||||
'content' => $this->visible_whitespace($bbcode3)
|
||||
'content' => $visible_whitespace($bbcode3)
|
||||
];
|
||||
|
||||
$bbcode4 = Text\HTML::toBBCode($html2);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('BBCode::toMarkdown => Markdown::convert => HTML::toBBCode'),
|
||||
'content' => $this->visible_whitespace($bbcode4)
|
||||
'content' => $visible_whitespace($bbcode4)
|
||||
];
|
||||
|
||||
$tags = Text\BBCode::getTags($bbcode);
|
||||
|
@ -101,22 +106,22 @@ class Babel extends BaseModule
|
|||
$body = Item::setHashtags($bbcode);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Item Body'),
|
||||
'content' => $this->visible_whitespace($body)
|
||||
'content' => $visible_whitespace($body)
|
||||
];
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Item Tags'),
|
||||
'content' => $this->visible_whitespace(var_export($tags, true)),
|
||||
'content' => $visible_whitespace(var_export($tags, true)),
|
||||
];
|
||||
|
||||
$body2 = PageInfo::searchAndAppendToBody($bbcode, true);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('PageInfo::appendToBody'),
|
||||
'content' => $this->visible_whitespace($body2)
|
||||
'content' => $visible_whitespace($body2)
|
||||
];
|
||||
$html3 = Text\BBCode::convertForUriId(0, $body2);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('PageInfo::appendToBody => BBCode::convert (raw HTML)'),
|
||||
'content' => $this->visible_whitespace($html3)
|
||||
'content' => $visible_whitespace($html3)
|
||||
];
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('PageInfo::appendToBody => BBCode::convert'),
|
||||
|
@ -127,7 +132,7 @@ class Babel extends BaseModule
|
|||
$diaspora = trim($request['text']);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Source input (Diaspora format)'),
|
||||
'content' => $this->visible_whitespace($diaspora),
|
||||
'content' => $visible_whitespace($diaspora),
|
||||
];
|
||||
|
||||
$markdown = XML::unescape($diaspora);
|
||||
|
@ -136,13 +141,13 @@ class Babel extends BaseModule
|
|||
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Source input (Markdown)'),
|
||||
'content' => $this->visible_whitespace($markdown),
|
||||
'content' => $visible_whitespace($markdown),
|
||||
];
|
||||
|
||||
$html = Text\Markdown::convert($markdown);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Markdown::convert (raw HTML)'),
|
||||
'content' => $this->visible_whitespace($html),
|
||||
'content' => $visible_whitespace($html),
|
||||
];
|
||||
|
||||
$results[] = [
|
||||
|
@ -153,14 +158,14 @@ class Babel extends BaseModule
|
|||
$bbcode = Text\Markdown::toBBCode($markdown);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Markdown::toBBCode'),
|
||||
'content' => $this->visible_whitespace($bbcode),
|
||||
'content' => $visible_whitespace($bbcode),
|
||||
];
|
||||
break;
|
||||
case 'html' :
|
||||
$html = trim($request['text']);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Raw HTML input'),
|
||||
'content' => $this->visible_whitespace($html),
|
||||
'content' => $visible_whitespace($html),
|
||||
];
|
||||
|
||||
$results[] = [
|
||||
|
@ -172,12 +177,12 @@ class Babel extends BaseModule
|
|||
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('HTML Purified (raw)'),
|
||||
'content' => $this->visible_whitespace($purified),
|
||||
'content' => $visible_whitespace($purified),
|
||||
];
|
||||
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('HTML Purified (hex)'),
|
||||
'content' => $this->visible_whitespace(bin2hex($purified)),
|
||||
'content' => $visible_whitespace(bin2hex($purified)),
|
||||
];
|
||||
|
||||
$results[] = [
|
||||
|
@ -188,7 +193,7 @@ class Babel extends BaseModule
|
|||
$bbcode = Text\HTML::toBBCode($html);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('HTML::toBBCode'),
|
||||
'content' => $this->visible_whitespace($bbcode)
|
||||
'content' => $visible_whitespace($bbcode)
|
||||
];
|
||||
|
||||
$html2 = Text\BBCode::convertForUriId(0, $bbcode);
|
||||
|
@ -205,25 +210,25 @@ class Babel extends BaseModule
|
|||
$bbcode2plain = Text\BBCode::toPlaintext($bbcode);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('HTML::toBBCode => BBCode::toPlaintext'),
|
||||
'content' => $this->visible_whitespace($bbcode2plain),
|
||||
'content' => $visible_whitespace($bbcode2plain),
|
||||
];
|
||||
|
||||
$markdown = Text\HTML::toMarkdown($html);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('HTML::toMarkdown'),
|
||||
'content' => $this->visible_whitespace($markdown)
|
||||
'content' => $visible_whitespace($markdown)
|
||||
];
|
||||
|
||||
$text = Text\HTML::toPlaintext($html, 0);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('HTML::toPlaintext'),
|
||||
'content' => $this->visible_whitespace($text),
|
||||
'content' => $visible_whitespace($text),
|
||||
];
|
||||
|
||||
$text = Text\HTML::toPlaintext($html, 0, true);
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('HTML::toPlaintext (compact)'),
|
||||
'content' => $this->visible_whitespace($text),
|
||||
'content' => $visible_whitespace($text),
|
||||
];
|
||||
break;
|
||||
case 'twitter':
|
||||
|
@ -236,7 +241,7 @@ class Babel extends BaseModule
|
|||
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Decoded post'),
|
||||
'content' => $this->visible_whitespace(var_export($status, true)),
|
||||
'content' => $visible_whitespace(var_export($status, true)),
|
||||
];
|
||||
|
||||
$postarray = [];
|
||||
|
@ -255,7 +260,7 @@ class Babel extends BaseModule
|
|||
|
||||
$results[] = [
|
||||
'title' => DI::l10n()->t('Post array before expand entities'),
|
||||
'content' => $this->visible_whitespace(var_export($postarray, true)),
|
||||
'content' => $visible_whitespace(var_export($postarray, true)),
|
||||
];
|
||||
} else {
|
||||
$results[] = [
|
||||
|
@ -285,9 +290,4 @@ class Babel extends BaseModule
|
|||
|
||||
return $o;
|
||||
}
|
||||
|
||||
private function visible_whitespace($s): string
|
||||
{
|
||||
return '<pre>' . htmlspecialchars($s) . '</pre>';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1880,31 +1880,29 @@ class Receiver
|
|||
|
||||
$object_data = self::getObjectDataFromActivity($object);
|
||||
|
||||
$receiverdata = self::getReceivers($object, $actor ?: $object_data['actor'] ?? '', $object_data['tags'], true, false);
|
||||
$receivers = $reception_types = [];
|
||||
foreach ($receiverdata as $key => $data) {
|
||||
$receivers[$key] = $data['uid'];
|
||||
$reception_types[$data['uid']] = $data['type'] ?? 0;
|
||||
}
|
||||
|
||||
$object_data['receiver_urls'] = self::getReceiverURL($object);
|
||||
$object_data['receiver'] = $receivers;
|
||||
$object_data['reception_type'] = $reception_types;
|
||||
$object_data['receiver'] = [];
|
||||
$object_data['reception_type'] = [];
|
||||
$object_data['unlisted'] = false;
|
||||
|
||||
$receiverdata = self::getReceivers($object, $actor ?: $object_data['actor'] ?? '', $object_data['tags'], true, false);
|
||||
|
||||
foreach ($receiverdata as $key => $data) {
|
||||
if ($data['uid'] !== -1) {
|
||||
$object_data['reception_type'][$data['uid']] = $data['type'] ?? 0;
|
||||
}
|
||||
|
||||
if ($key !== -1) {
|
||||
$object_data['receiver'][$key] = $data['uid'];
|
||||
} else {
|
||||
$object_data['unlisted'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($object['pixelfed:capabilities'])) {
|
||||
$object_data['capabilities'] = self::getCapabilities($object);
|
||||
}
|
||||
|
||||
$object_data['unlisted'] = in_array(-1, $object_data['receiver']);
|
||||
|
||||
if (array_key_exists(-1, $object_data['receiver'])) {
|
||||
unset($object_data['receiver'][-1]);
|
||||
}
|
||||
|
||||
if (array_key_exists(-1, $object_data['reception_type'])) {
|
||||
unset($object_data['reception_type'][-1]);
|
||||
}
|
||||
|
||||
return $object_data;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue