Merge remote-tracking branch 'upstream/2021.06-rc' into http-input-data
This commit is contained in:
commit
a69e128fe4
|
@ -1186,12 +1186,12 @@ function api_statuses_update($type)
|
||||||
INNER JOIN `user` ON `user`.`uid` = `photo`.`uid` WHERE `resource-id` IN
|
INNER JOIN `user` ON `user`.`uid` = `photo`.`uid` WHERE `resource-id` IN
|
||||||
(SELECT `resource-id` FROM `photo` WHERE `id` = ?) AND `photo`.`uid` = ?
|
(SELECT `resource-id` FROM `photo` WHERE `id` = ?) AND `photo`.`uid` = ?
|
||||||
ORDER BY `photo`.`width` DESC LIMIT 2", $id, api_user()));
|
ORDER BY `photo`.`width` DESC LIMIT 2", $id, api_user()));
|
||||||
|
|
||||||
if (!empty($media)) {
|
if (!empty($media)) {
|
||||||
$ressources[] = $media[0]['resource-id'];
|
$ressources[] = $media[0]['resource-id'];
|
||||||
$phototypes = Images::supportedTypes();
|
$phototypes = Images::supportedTypes();
|
||||||
$ext = $phototypes[$media[0]['type']];
|
$ext = $phototypes[$media[0]['type']];
|
||||||
|
|
||||||
$attachment = ['type' => Post\Media::IMAGE, 'mimetype' => $media[0]['type'],
|
$attachment = ['type' => Post\Media::IMAGE, 'mimetype' => $media[0]['type'],
|
||||||
'url' => DI::baseUrl() . '/photo/' . $media[0]['resource-id'] . '-' . $media[0]['scale'] . '.' . $ext,
|
'url' => DI::baseUrl() . '/photo/' . $media[0]['resource-id'] . '-' . $media[0]['scale'] . '.' . $ext,
|
||||||
'size' => $media[0]['datasize'],
|
'size' => $media[0]['datasize'],
|
||||||
|
@ -1199,7 +1199,7 @@ function api_statuses_update($type)
|
||||||
'description' => $media[0]['desc'] ?? '',
|
'description' => $media[0]['desc'] ?? '',
|
||||||
'width' => $media[0]['width'],
|
'width' => $media[0]['width'],
|
||||||
'height' => $media[0]['height']];
|
'height' => $media[0]['height']];
|
||||||
|
|
||||||
if (count($media) > 1) {
|
if (count($media) > 1) {
|
||||||
$attachment['preview'] = DI::baseUrl() . '/photo/' . $media[1]['resource-id'] . '-' . $media[1]['scale'] . '.' . $ext;
|
$attachment['preview'] = DI::baseUrl() . '/photo/' . $media[1]['resource-id'] . '-' . $media[1]['scale'] . '.' . $ext;
|
||||||
$attachment['preview-width'] = $media[1]['width'];
|
$attachment['preview-width'] = $media[1]['width'];
|
||||||
|
|
|
@ -128,6 +128,7 @@ function dfrn_poll_init(App $a)
|
||||||
$_SESSION['visitor_handle'] = $r[0]['addr'];
|
$_SESSION['visitor_handle'] = $r[0]['addr'];
|
||||||
$_SESSION['visitor_visiting'] = $r[0]['uid'];
|
$_SESSION['visitor_visiting'] = $r[0]['uid'];
|
||||||
$_SESSION['my_url'] = $r[0]['url'];
|
$_SESSION['my_url'] = $r[0]['url'];
|
||||||
|
$_SESSION['remote_comment'] = $r[0]['subscribe'];
|
||||||
|
|
||||||
Session::setVisitorsContacts();
|
Session::setVisitorsContacts();
|
||||||
|
|
||||||
|
@ -497,8 +498,10 @@ function dfrn_poll_content(App $a)
|
||||||
$_SESSION['authenticated'] = 1;
|
$_SESSION['authenticated'] = 1;
|
||||||
$_SESSION['visitor_id'] = $r[0]['id'];
|
$_SESSION['visitor_id'] = $r[0]['id'];
|
||||||
$_SESSION['visitor_home'] = $r[0]['url'];
|
$_SESSION['visitor_home'] = $r[0]['url'];
|
||||||
|
$_SESSION['visitor_handle'] = $r[0]['addr'];
|
||||||
$_SESSION['visitor_visiting'] = $r[0]['uid'];
|
$_SESSION['visitor_visiting'] = $r[0]['uid'];
|
||||||
$_SESSION['my_url'] = $r[0]['url'];
|
$_SESSION['my_url'] = $r[0]['url'];
|
||||||
|
$_SESSION['remote_comment'] = $r[0]['subscribe'];
|
||||||
|
|
||||||
Session::setVisitorsContacts();
|
Session::setVisitorsContacts();
|
||||||
|
|
||||||
|
|
|
@ -326,7 +326,7 @@ function settings_post(App $a)
|
||||||
$detailed_notif = (($_POST['detailed_notif'] == 1) ? 1 : 0);
|
$detailed_notif = (($_POST['detailed_notif'] == 1) ? 1 : 0);
|
||||||
|
|
||||||
$notify_ignored = (($_POST['notify_ignored'] == 1) ? 1 : 0);
|
$notify_ignored = (($_POST['notify_ignored'] == 1) ? 1 : 0);
|
||||||
|
|
||||||
$notify = 0;
|
$notify = 0;
|
||||||
|
|
||||||
if (!empty($_POST['notify1'])) {
|
if (!empty($_POST['notify1'])) {
|
||||||
|
|
|
@ -158,4 +158,4 @@ function unfollow_process(string $url)
|
||||||
}
|
}
|
||||||
|
|
||||||
DI::baseUrl()->redirect($return_path);
|
DI::baseUrl()->redirect($return_path);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,4 +43,4 @@ function update_notes_content(App $a) {
|
||||||
$text = notes_content($a, $profile_uid);
|
$text = notes_content($a, $profile_uid);
|
||||||
|
|
||||||
System::htmlUpdateExit($text);
|
System::htmlUpdateExit($text);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ use Friendica\Core\L10n;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
use Friendica\Core\Theme;
|
use Friendica\Core\Theme;
|
||||||
use Friendica\Database\Database;
|
use Friendica\Database\Database;
|
||||||
|
use Friendica\Model\Contact;
|
||||||
use Friendica\Model\Profile;
|
use Friendica\Model\Profile;
|
||||||
use Friendica\Module\Special\HTTPException as ModuleHTTPException;
|
use Friendica\Module\Special\HTTPException as ModuleHTTPException;
|
||||||
use Friendica\Network\HTTPException;
|
use Friendica\Network\HTTPException;
|
||||||
|
@ -464,6 +465,11 @@ class App
|
||||||
if (Core\Session::get('visitor_home') != $_GET["zrl"]) {
|
if (Core\Session::get('visitor_home') != $_GET["zrl"]) {
|
||||||
Core\Session::set('my_url', $_GET['zrl']);
|
Core\Session::set('my_url', $_GET['zrl']);
|
||||||
Core\Session::set('authenticated', 0);
|
Core\Session::set('authenticated', 0);
|
||||||
|
|
||||||
|
$remote_contact = Contact::getByURL($_GET['zrl'], false, ['subscribe']);
|
||||||
|
if (!empty($remote_contact['subscribe'])) {
|
||||||
|
$_SESSION['remote_comment'] = $remote_contact['subscribe'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Model\Profile::zrlInit($this);
|
Model\Profile::zrlInit($this);
|
||||||
|
|
|
@ -127,8 +127,8 @@ class TagCloud
|
||||||
private static function tagCalc(array $arr)
|
private static function tagCalc(array $arr)
|
||||||
{
|
{
|
||||||
$tags = [];
|
$tags = [];
|
||||||
$min = 1e9;
|
$min = 1000000000.0;
|
||||||
$max = -1e9;
|
$max = -1000000000.0;
|
||||||
$x = 0;
|
$x = 0;
|
||||||
|
|
||||||
if (!$arr) {
|
if (!$arr) {
|
||||||
|
@ -145,7 +145,7 @@ class TagCloud
|
||||||
}
|
}
|
||||||
|
|
||||||
usort($tags, 'self::tagsSort');
|
usort($tags, 'self::tagsSort');
|
||||||
$range = max(.01, $max - $min) * 1.0001;
|
$range = max(0.01, $max - $min) * 1.0001;
|
||||||
|
|
||||||
for ($x = 0; $x < count($tags); $x ++) {
|
for ($x = 0; $x < count($tags); $x ++) {
|
||||||
$tags[$x][2] = 1 + floor(9 * ($tags[$x][1] - $min) / $range);
|
$tags[$x][2] = 1 + floor(9 * ($tags[$x][1] - $min) / $range);
|
||||||
|
|
|
@ -465,7 +465,7 @@ class Installer
|
||||||
|
|
||||||
$status = $this->checkFunction('proc_open',
|
$status = $this->checkFunction('proc_open',
|
||||||
DI::l10n()->t('Program execution functions'),
|
DI::l10n()->t('Program execution functions'),
|
||||||
DI::l10n()->t('Error: Program execution functions required but not enabled.'),
|
DI::l10n()->t('Error: Program execution functions (proc_open) required but not enabled.'),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
$returnVal = $returnVal ? $status : false;
|
$returnVal = $returnVal ? $status : false;
|
||||||
|
|
|
@ -2739,9 +2739,10 @@ class Item
|
||||||
*
|
*
|
||||||
* @param string $body
|
* @param string $body
|
||||||
* @param string $url
|
* @param string $url
|
||||||
|
* @param int $type
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function containsLink(string $body, string $url)
|
public static function containsLink(string $body, string $url, int $type = 0)
|
||||||
{
|
{
|
||||||
// Make sure that for example site parameters aren't used when testing if the link is contained in the body
|
// Make sure that for example site parameters aren't used when testing if the link is contained in the body
|
||||||
$urlparts = parse_url($url);
|
$urlparts = parse_url($url);
|
||||||
|
@ -2749,6 +2750,12 @@ class Item
|
||||||
unset($urlparts['fragment']);
|
unset($urlparts['fragment']);
|
||||||
$url = Network::unparseURL($urlparts);
|
$url = Network::unparseURL($urlparts);
|
||||||
|
|
||||||
|
// Remove media links to only search in embedded content
|
||||||
|
// @todo Check images for image link, audio for audio links, ...
|
||||||
|
if (in_array($type, [Post\Media::AUDIO, Post\Media::VIDEO, Post\Media::IMAGE])) {
|
||||||
|
$body = preg_replace("/\[url=[^\[\]]*\](.*)\[\/url\]/Usi", ' $1 ', $body);
|
||||||
|
}
|
||||||
|
|
||||||
if (strpos($body, $url)) {
|
if (strpos($body, $url)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2777,7 +2784,7 @@ class Item
|
||||||
|
|
||||||
// @todo In the future we should make a single for the template engine with all media in it. This allows more flexibilty.
|
// @todo In the future we should make a single for the template engine with all media in it. This allows more flexibilty.
|
||||||
foreach ($attachments['visual'] as $attachment) {
|
foreach ($attachments['visual'] as $attachment) {
|
||||||
if (self::containsLink($item['body'], $attachment['url'])) {
|
if (self::containsLink($item['body'], $attachment['url'], $attachment['type'])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2955,7 +2962,7 @@ class Item
|
||||||
|
|
||||||
// @todo Use a template
|
// @todo Use a template
|
||||||
$rendered = BBCode::convertAttachment('', BBCode::INTERNAL, false, $data);
|
$rendered = BBCode::convertAttachment('', BBCode::INTERNAL, false, $data);
|
||||||
} elseif (!self::containsLink($content, $data['url'])) {
|
} elseif (!self::containsLink($content, $data['url'], Post\Media::HTML)) {
|
||||||
$rendered = Renderer::replaceMacros(Renderer::getMarkupTemplate('content/link.tpl'), [
|
$rendered = Renderer::replaceMacros(Renderer::getMarkupTemplate('content/link.tpl'), [
|
||||||
'$url' => $data['url'],
|
'$url' => $data['url'],
|
||||||
'$title' => $data['title'],
|
'$title' => $data['title'],
|
||||||
|
|
|
@ -36,15 +36,14 @@ use Friendica\Worker\Delivery;
|
||||||
class Mail
|
class Mail
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Insert received private message
|
* Insert private message
|
||||||
*
|
*
|
||||||
* @param array $msg
|
* @param array $msg
|
||||||
|
* @param bool $notifiction
|
||||||
* @return int|boolean Message ID or false on error
|
* @return int|boolean Message ID or false on error
|
||||||
*/
|
*/
|
||||||
public static function insert($msg)
|
public static function insert($msg, $notifiction = true)
|
||||||
{
|
{
|
||||||
$user = User::getById($msg['uid']);
|
|
||||||
|
|
||||||
if (!isset($msg['reply'])) {
|
if (!isset($msg['reply'])) {
|
||||||
$msg['reply'] = DBA::exists('mail', ['parent-uri' => $msg['parent-uri']]);
|
$msg['reply'] = DBA::exists('mail', ['parent-uri' => $msg['parent-uri']]);
|
||||||
}
|
}
|
||||||
|
@ -63,6 +62,10 @@ class Mail
|
||||||
|
|
||||||
$msg['created'] = (!empty($msg['created']) ? DateTimeFormat::utc($msg['created']) : DateTimeFormat::utcNow());
|
$msg['created'] = (!empty($msg['created']) ? DateTimeFormat::utc($msg['created']) : DateTimeFormat::utcNow());
|
||||||
|
|
||||||
|
$msg['author-id'] = Contact::getIdForURL($msg['from-url'], 0, false);
|
||||||
|
$msg['uri-id'] = ItemURI::insert(['uri' => $msg['uri'], 'guid' => $msg['guid']]);
|
||||||
|
$msg['parent-uri-id'] = ItemURI::getIdByURI($msg['parent-uri']);
|
||||||
|
|
||||||
DBA::lock('mail');
|
DBA::lock('mail');
|
||||||
|
|
||||||
if (DBA::exists('mail', ['uri' => $msg['uri'], 'uid' => $msg['uid']])) {
|
if (DBA::exists('mail', ['uri' => $msg['uri'], 'uid' => $msg['uid']])) {
|
||||||
|
@ -71,12 +74,8 @@ class Mail
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$msg['author-id'] = Contact::getIdForURL($msg['from-url'], 0, false);
|
|
||||||
$msg['uri-id'] = ItemURI::insert(['uri' => $msg['uri'], 'guid' => $msg['guid']]);
|
|
||||||
$msg['parent-uri-id'] = ItemURI::getIdByURI($msg['parent-uri']);
|
|
||||||
|
|
||||||
if ($msg['reply']) {
|
if ($msg['reply']) {
|
||||||
$reply = DBA::selectFirst('mail', ['uri', 'uri-id'], ['parent-uri' => $mail['parent-uri'], 'reply' => false]);
|
$reply = DBA::selectFirst('mail', ['uri', 'uri-id'], ['parent-uri' => $msg['parent-uri'], 'reply' => false]);
|
||||||
|
|
||||||
$msg['thr-parent'] = $reply['uri'];
|
$msg['thr-parent'] = $reply['uri'];
|
||||||
$msg['thr-parent-id'] = $reply['uri-id'];
|
$msg['thr-parent-id'] = $reply['uri-id'];
|
||||||
|
@ -95,19 +94,22 @@ class Mail
|
||||||
DBA::update('conv', ['updated' => DateTimeFormat::utcNow()], ['id' => $msg['convid']]);
|
DBA::update('conv', ['updated' => DateTimeFormat::utcNow()], ['id' => $msg['convid']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// send notifications.
|
if ($notifiction) {
|
||||||
$notif_params = [
|
$user = User::getById($msg['uid']);
|
||||||
'type' => Notification\Type::MAIL,
|
// send notifications.
|
||||||
'otype' => Notification\ObjectType::MAIL,
|
$notif_params = [
|
||||||
'verb' => Activity::POST,
|
'type' => Notification\Type::MAIL,
|
||||||
'uid' => $user['uid'],
|
'otype' => Notification\ObjectType::MAIL,
|
||||||
'cid' => $msg['contact-id'],
|
'verb' => Activity::POST,
|
||||||
'link' => DI::baseUrl() . '/message/' . $msg['id'],
|
'uid' => $user['uid'],
|
||||||
];
|
'cid' => $msg['contact-id'],
|
||||||
|
'link' => DI::baseUrl() . '/message/' . $msg['id'],
|
||||||
|
];
|
||||||
|
|
||||||
notification($notif_params);
|
notification($notif_params);
|
||||||
|
|
||||||
Logger::info('Mail is processed, notification was sent.', ['id' => $msg['id'], 'uri' => $msg['uri']]);
|
Logger::info('Mail is processed, notification was sent.', ['id' => $msg['id'], 'uri' => $msg['uri']]);
|
||||||
|
}
|
||||||
|
|
||||||
return $msg['id'];
|
return $msg['id'];
|
||||||
}
|
}
|
||||||
|
@ -195,9 +197,7 @@ class Mail
|
||||||
$replyto = $convuri;
|
$replyto = $convuri;
|
||||||
}
|
}
|
||||||
|
|
||||||
$post_id = null;
|
$post_id = self::insert(
|
||||||
$success = DBA::insert(
|
|
||||||
'mail',
|
|
||||||
[
|
[
|
||||||
'uid' => local_user(),
|
'uid' => local_user(),
|
||||||
'guid' => $guid,
|
'guid' => $guid,
|
||||||
|
@ -214,13 +214,9 @@ class Mail
|
||||||
'uri' => $uri,
|
'uri' => $uri,
|
||||||
'parent-uri' => $replyto,
|
'parent-uri' => $replyto,
|
||||||
'created' => DateTimeFormat::utcNow()
|
'created' => DateTimeFormat::utcNow()
|
||||||
]
|
], false
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($success) {
|
|
||||||
$post_id = DBA::lastInsertId();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* When a photo was uploaded into the message using the (profile wall) ajax
|
* When a photo was uploaded into the message using the (profile wall) ajax
|
||||||
|
@ -301,8 +297,7 @@ class Mail
|
||||||
return -4;
|
return -4;
|
||||||
}
|
}
|
||||||
|
|
||||||
DBA::insert(
|
self::insert(
|
||||||
'mail',
|
|
||||||
[
|
[
|
||||||
'uid' => $recipient['uid'],
|
'uid' => $recipient['uid'],
|
||||||
'guid' => $guid,
|
'guid' => $guid,
|
||||||
|
@ -320,7 +315,7 @@ class Mail
|
||||||
'parent-uri' => $me['url'],
|
'parent-uri' => $me['url'],
|
||||||
'created' => DateTimeFormat::utcNow(),
|
'created' => DateTimeFormat::utcNow(),
|
||||||
'unknown' => 1
|
'unknown' => 1
|
||||||
]
|
], false
|
||||||
);
|
);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -351,7 +351,7 @@ class Media
|
||||||
|
|
||||||
foreach ($attachments as $attachment) {
|
foreach ($attachments as $attachment) {
|
||||||
// Only store attachments that are part of the unshared body
|
// Only store attachments that are part of the unshared body
|
||||||
if (strpos($unshared_body, $attachment['url']) !== false) {
|
if (Item::containsLink($unshared_body, $attachment['url'], $attachment['type'])) {
|
||||||
self::insert($attachment);
|
self::insert($attachment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -600,7 +600,7 @@ class Media
|
||||||
$body = preg_replace("/\s*\[attachment .*?\].*?\[\/attachment\]\s*/ism", '', $body);
|
$body = preg_replace("/\s*\[attachment .*?\].*?\[\/attachment\]\s*/ism", '', $body);
|
||||||
|
|
||||||
foreach (self::getByURIId($uriid, [self::IMAGE, self::AUDIO, self::VIDEO]) as $media) {
|
foreach (self::getByURIId($uriid, [self::IMAGE, self::AUDIO, self::VIDEO]) as $media) {
|
||||||
if (Item::containsLink($body, $media['url'])) {
|
if (Item::containsLink($body, $media['url'], $media['type'])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,8 @@ class PublicTimeline extends BaseApi
|
||||||
*/
|
*/
|
||||||
public static function rawContent(array $parameters = [])
|
public static function rawContent(array $parameters = [])
|
||||||
{
|
{
|
||||||
|
$uid = self::getCurrentUserID();
|
||||||
|
|
||||||
$request = self::getRequest([
|
$request = self::getRequest([
|
||||||
'local' => false, // Show only local statuses? Defaults to false.
|
'local' => false, // Show only local statuses? Defaults to false.
|
||||||
'remote' => false, // Show only remote statuses? Defaults to false.
|
'remote' => false, // Show only remote statuses? Defaults to false.
|
||||||
|
@ -88,7 +90,12 @@ class PublicTimeline extends BaseApi
|
||||||
$condition = DBA::mergeConditions($condition, ['gravity' => GRAVITY_PARENT]);
|
$condition = DBA::mergeConditions($condition, ['gravity' => GRAVITY_PARENT]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$items = Post::selectForUser(0, ['uri-id', 'uid'], $condition, $params);
|
if (!empty($uid)) {
|
||||||
|
$condition = DBA::mergeConditions($condition,
|
||||||
|
["NOT EXISTS (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `cid` = `parent-author-id` AND (`blocked` OR `ignored`))", $uid]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$items = Post::selectForUser($uid, ['uri-id', 'uid'], $condition, $params);
|
||||||
|
|
||||||
$statuses = [];
|
$statuses = [];
|
||||||
while ($item = Post::fetch($items)) {
|
while ($item = Post::fetch($items)) {
|
||||||
|
|
|
@ -43,7 +43,7 @@ class Attach extends BaseModule
|
||||||
|
|
||||||
// @TODO: Replace with parameter from router
|
// @TODO: Replace with parameter from router
|
||||||
$item_id = intval($a->argv[1]);
|
$item_id = intval($a->argv[1]);
|
||||||
|
|
||||||
// Check for existence
|
// Check for existence
|
||||||
$item = MAttach::exists(['id' => $item_id]);
|
$item = MAttach::exists(['id' => $item_id]);
|
||||||
if ($item === false) {
|
if ($item === false) {
|
||||||
|
|
|
@ -70,7 +70,7 @@ class HTTPRequest implements IHTTPRequest
|
||||||
*
|
*
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function get(string $url, array $opts = [], int &$redirects = 0)
|
public function get(string $url, array $opts = [], &$redirects = 0)
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@ class HTTPRequest implements IHTTPRequest
|
||||||
*
|
*
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function post(string $url, $params, array $headers = [], int $timeout = 0, int &$redirects = 0)
|
public function post(string $url, $params, array $headers = [], int $timeout = 0, &$redirects = 0)
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
|
|
||||||
|
@ -447,7 +447,7 @@ class HTTPRequest implements IHTTPRequest
|
||||||
*
|
*
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function fetch(string $url, int $timeout = 0, string $accept_content = '', string $cookiejar = '', int &$redirects = 0)
|
public function fetch(string $url, int $timeout = 0, string $accept_content = '', string $cookiejar = '', &$redirects = 0)
|
||||||
{
|
{
|
||||||
$ret = $this->fetchFull($url, $timeout, $accept_content, $cookiejar, $redirects);
|
$ret = $this->fetchFull($url, $timeout, $accept_content, $cookiejar, $redirects);
|
||||||
|
|
||||||
|
@ -461,7 +461,7 @@ class HTTPRequest implements IHTTPRequest
|
||||||
*
|
*
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function fetchFull(string $url, int $timeout = 0, string $accept_content = '', string $cookiejar = '', int &$redirects = 0)
|
public function fetchFull(string $url, int $timeout = 0, string $accept_content = '', string $cookiejar = '', &$redirects = 0)
|
||||||
{
|
{
|
||||||
return $this->get(
|
return $this->get(
|
||||||
$url,
|
$url,
|
||||||
|
|
|
@ -114,7 +114,12 @@ class Status extends BaseDataTransferObject
|
||||||
$this->visibility = $visibility[$item['private']];
|
$this->visibility = $visibility[$item['private']];
|
||||||
|
|
||||||
$languages = json_decode($item['language'], true);
|
$languages = json_decode($item['language'], true);
|
||||||
$this->language = is_array($languages) ? array_key_first($languages) : null;
|
if (is_array($languages)) {
|
||||||
|
reset($languages);
|
||||||
|
$this->language = key($languages);
|
||||||
|
} else {
|
||||||
|
$this->language = null;
|
||||||
|
}
|
||||||
|
|
||||||
$this->uri = $item['uri'];
|
$this->uri = $item['uri'];
|
||||||
$this->url = $item['plink'] ?? null;
|
$this->url = $item['plink'] ?? null;
|
||||||
|
|
|
@ -401,9 +401,13 @@ class Post
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetching of Diaspora posts doesn't always work. There are issues with reshares and possibly comments
|
// Fetching of Diaspora posts doesn't always work. There are issues with reshares and possibly comments
|
||||||
if (($item['network'] != Protocol::DIASPORA) && empty($comment) && !empty(Session::get('remote_comment'))) {
|
if (!local_user() && ($item['network'] != Protocol::DIASPORA) && !empty(Session::get('remote_comment'))) {
|
||||||
$remote_comment = [DI::l10n()->t('Comment this item on your system'), DI::l10n()->t('Remote comment'),
|
$remote_comment = [DI::l10n()->t('Comment this item on your system'), DI::l10n()->t('Remote comment'),
|
||||||
str_replace('{uri}', urlencode($item['uri']), Session::get('remote_comment'))];
|
str_replace('{uri}', urlencode($item['uri']), Session::get('remote_comment'))];
|
||||||
|
|
||||||
|
// Ensure to either display the remote comment or the local activities
|
||||||
|
$buttons = [];
|
||||||
|
$comment_html = '';
|
||||||
} else {
|
} else {
|
||||||
$remote_comment = '';
|
$remote_comment = '';
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,7 +103,7 @@ class InstallerTest extends MockedTest
|
||||||
$this->mockL10nT('File Information PHP module', 1);
|
$this->mockL10nT('File Information PHP module', 1);
|
||||||
$this->mockL10nT('Error: File Information PHP module required but not installed.', 1);
|
$this->mockL10nT('Error: File Information PHP module required but not installed.', 1);
|
||||||
$this->mockL10nT('Program execution functions', 1);
|
$this->mockL10nT('Program execution functions', 1);
|
||||||
$this->mockL10nT('Error: Program execution functions required but not enabled.', 1);
|
$this->mockL10nT('Error: Program execution functions (proc_open) required but not enabled.', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function assertCheckExist($position, $title, $help, $status, $required, $assertionArray)
|
private function assertCheckExist($position, $title, $help, $status, $required, $assertionArray)
|
||||||
|
@ -248,7 +248,7 @@ class InstallerTest extends MockedTest
|
||||||
self::assertFalse($install->checkFunctions());
|
self::assertFalse($install->checkFunctions());
|
||||||
self::assertCheckExist(9,
|
self::assertCheckExist(9,
|
||||||
'Program execution functions',
|
'Program execution functions',
|
||||||
'Error: Program execution functions required but not enabled.',
|
'Error: Program execution functions (proc_open) required but not enabled.',
|
||||||
false,
|
false,
|
||||||
true,
|
true,
|
||||||
$install->getChecks());
|
$install->getChecks());
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 2021.06-rc\n"
|
"Project-Id-Version: 2021.06-rc\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-05-21 18:18+0000\n"
|
"POT-Creation-Date: 2021-05-23 07:49+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -1117,11 +1117,11 @@ msgstr ""
|
||||||
msgid "Invalid profile URL."
|
msgid "Invalid profile URL."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mod/dfrn_request.php:355 src/Model/Contact.php:2159
|
#: mod/dfrn_request.php:355 src/Model/Contact.php:2164
|
||||||
msgid "Disallowed profile URL."
|
msgid "Disallowed profile URL."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mod/dfrn_request.php:361 src/Model/Contact.php:2164
|
#: mod/dfrn_request.php:361 src/Model/Contact.php:2169
|
||||||
#: src/Module/Friendica.php:80
|
#: src/Module/Friendica.php:80
|
||||||
msgid "Blocked domain"
|
msgid "Blocked domain"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -4072,7 +4072,8 @@ msgid "Program execution functions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/Installer.php:468
|
#: src/Core/Installer.php:468
|
||||||
msgid "Error: Program execution functions required but not enabled."
|
msgid ""
|
||||||
|
"Error: Program execution functions (proc_open) required but not enabled."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/Installer.php:474
|
#: src/Core/Installer.php:474
|
||||||
|
@ -4645,60 +4646,60 @@ msgstr ""
|
||||||
msgid "Forum"
|
msgid "Forum"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2169
|
#: src/Model/Contact.php:2174
|
||||||
msgid "Connect URL missing."
|
msgid "Connect URL missing."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2178
|
#: src/Model/Contact.php:2183
|
||||||
msgid ""
|
msgid ""
|
||||||
"The contact could not be added. Please check the relevant network "
|
"The contact could not be added. Please check the relevant network "
|
||||||
"credentials in your Settings -> Social Networks page."
|
"credentials in your Settings -> Social Networks page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2219
|
#: src/Model/Contact.php:2224
|
||||||
msgid ""
|
msgid ""
|
||||||
"This site is not configured to allow communications with other networks."
|
"This site is not configured to allow communications with other networks."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2220 src/Model/Contact.php:2233
|
#: src/Model/Contact.php:2225 src/Model/Contact.php:2238
|
||||||
msgid "No compatible communication protocols or feeds were discovered."
|
msgid "No compatible communication protocols or feeds were discovered."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2231
|
#: src/Model/Contact.php:2236
|
||||||
msgid "The profile address specified does not provide adequate information."
|
msgid "The profile address specified does not provide adequate information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2236
|
#: src/Model/Contact.php:2241
|
||||||
msgid "An author or name was not found."
|
msgid "An author or name was not found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2239
|
#: src/Model/Contact.php:2244
|
||||||
msgid "No browser URL could be matched to this address."
|
msgid "No browser URL could be matched to this address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2242
|
#: src/Model/Contact.php:2247
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to match @-style Identity Address with a known protocol or email "
|
"Unable to match @-style Identity Address with a known protocol or email "
|
||||||
"contact."
|
"contact."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2243
|
#: src/Model/Contact.php:2248
|
||||||
msgid "Use mailto: in front of address to force email check."
|
msgid "Use mailto: in front of address to force email check."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2249
|
#: src/Model/Contact.php:2254
|
||||||
msgid ""
|
msgid ""
|
||||||
"The profile address specified belongs to a network which has been disabled "
|
"The profile address specified belongs to a network which has been disabled "
|
||||||
"on this site."
|
"on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2254
|
#: src/Model/Contact.php:2259
|
||||||
msgid ""
|
msgid ""
|
||||||
"Limited profile. This person will be unable to receive direct/personal "
|
"Limited profile. This person will be unable to receive direct/personal "
|
||||||
"notifications from you."
|
"notifications from you."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2313
|
#: src/Model/Contact.php:2318
|
||||||
msgid "Unable to retrieve contact information."
|
msgid "Unable to retrieve contact information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -4845,7 +4846,7 @@ msgstr ""
|
||||||
msgid "View on separate page"
|
msgid "View on separate page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Mail.php:120 src/Model/Mail.php:258
|
#: src/Model/Mail.php:134 src/Model/Mail.php:272
|
||||||
msgid "[no subject]"
|
msgid "[no subject]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue