Browse Source

Merge pull request #6485 from MrPetovan/bug/fixes-after-2019-03-develop-rebase

More fixes after develop rebase
pull/6505/head
Michael Vogel 2 years ago
committed by GitHub
parent
commit
08da1ed038
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 172 additions and 149 deletions
  1. +2
    -3
      .travis.yml
  2. +2
    -2
      config/dbstructure.config.php
  3. +5
    -0
      config/defaults.config.php
  4. +2
    -2
      database.sql
  5. +7
    -7
      mod/admin.php
  6. +2
    -0
      src/Content/ForumManager.php
  7. +4
    -2
      src/Content/OEmbed.php
  8. +0
    -3
      src/Content/Text/HTML.php
  9. +6
    -3
      src/Content/Widget/TagCloud.php
  10. +1
    -0
      src/Core/Console.php
  11. +1
    -0
      src/Core/Renderer.php
  12. +3
    -0
      src/Core/StorageManager.php
  13. +5
    -1
      src/Model/Attach.php
  14. +4
    -2
      src/Model/Event.php
  15. +2
    -2
      src/Model/Item.php
  16. +2
    -2
      src/Model/Mail.php
  17. +5
    -1
      src/Model/Photo.php
  18. +1
    -0
      src/Model/Term.php
  19. +0
    -1
      src/Module/Contact.php
  20. +10
    -11
      src/Module/Inbox.php
  21. +22
    -21
      src/Module/Photo.php
  22. +1
    -0
      src/Object/Image.php
  23. +0
    -1
      src/Protocol/ActivityPub/Transmitter.php
  24. +35
    -35
      src/Protocol/DFRN.php
  25. +6
    -6
      src/Protocol/Diaspora.php
  26. +13
    -13
      src/Protocol/Email.php
  27. +8
    -8
      src/Protocol/OStatus.php
  28. +6
    -6
      src/Util/Crypto.php
  29. +4
    -4
      src/Util/Temporal.php
  30. +12
    -12
      src/Util/XML.php
  31. +1
    -1
      src/Worker/Delivery.php

+ 2
- 3
.travis.yml View File

@ -1,11 +1,10 @@
---
language: php
## Friendica supports PHP version >= 5.6.1
## Friendica officially supports PHP version >= 7.1
php:
- 5.6
- 7.0
- 7.1
- 7.2
- 7.3
services:
- mysql


+ 2
- 2
config/dbstructure.config.php View File

@ -34,7 +34,7 @@
use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) {
define('DB_UPDATE_VERSION', 1299);
define('DB_UPDATE_VERSION', 1300);
}
return [
@ -1365,7 +1365,7 @@ return [
"comment" => "Background tasks queue entries",
"fields" => [
"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "Auto incremented worker task id"],
"parameter" => ["type" => "mediumblob", "comment" => "Task command"],
"parameter" => ["type" => "mediumtext", "comment" => "Task command"],
"priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "Task priority"],
"created" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Creation date"],
"pid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => "Process id of the worker"],


+ 5
- 0
config/defaults.config.php View File

@ -421,4 +421,9 @@ return [
// Must be writable by the ejabberd process. if set then it will prevent the running of multiple processes.
'lockpath' => '',
],
'debug' => [
// ap_inbox_log (Boolean)
// Logs every call to /inbox as a JSON file in Friendica's temporary directory
'ap_inbox_log' => false,
]
];

+ 2
- 2
database.sql View File

@ -1,6 +1,6 @@
-- ------------------------------------------
-- Friendica 2019.03-dev (The Tazmans Flax-lily)
-- DB_UPDATE_VERSION 1299
-- DB_UPDATE_VERSION 1300
-- ------------------------------------------
@ -1260,7 +1260,7 @@ CREATE TABLE IF NOT EXISTS `worker-ipc` (
--
CREATE TABLE IF NOT EXISTS `workerqueue` (
`id` int unsigned NOT NULL auto_increment COMMENT 'Auto incremented worker task id',
`parameter` mediumblob COMMENT 'Task command',
`parameter` mediumtext COMMENT 'Task command',
`priority` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'Task priority',
`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Creation date',
`pid` int unsigned NOT NULL DEFAULT 0 COMMENT 'Process id of the worker',


+ 7
- 7
mod/admin.php View File

@ -34,6 +34,7 @@ use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
use Friendica\Util\Strings;
use Friendica\Util\Temporal;
use Psr\Log\LogLevel;
/**
* Sets the current theme for theme settings pages.
@ -2497,7 +2498,7 @@ function admin_page_logs_post(App $a)
$logfile = (!empty($_POST['logfile']) ? Strings::escapeTags(trim($_POST['logfile'])) : '');
$debugging = !empty($_POST['debugging']);
$loglevel = (!empty($_POST['loglevel']) ? intval(trim($_POST['loglevel'])) : 0);
$loglevel = defaults($_POST, 'loglevel', LogLevel::ERROR);
Config::set('system', 'logfile', $logfile);
Config::set('system', 'debugging', $debugging);
@ -2529,12 +2530,11 @@ function admin_page_logs_post(App $a)
function admin_page_logs(App $a)
{
$log_choices = [
Logger::WARNING => 'Warning',
Logger::INFO => 'Info',
Logger::TRACE => 'Trace',
Logger::DEBUG => 'Debug',
Logger::DATA => 'Data',
Logger::ALL => 'All'
LogLevel::ERROR => 'Error',
LogLevel::WARNING => 'Warning',
LogLevel::NOTICE => 'Notice',
LogLevel::INFO => 'Info',
LogLevel::DEBUG => 'Debug',
];
if (ini_get('log_errors')) {


+ 2
- 0
src/Content/ForumManager.php View File

@ -105,6 +105,8 @@ class ForumManager
if (DBA::isResult($contacts)) {
$id = 0;
$entries = [];
foreach ($contacts as $contact) {
$selected = (($cid == $contact['id']) ? ' forum-selected' : '');


+ 4
- 2
src/Content/OEmbed.php View File

@ -86,7 +86,8 @@ class OEmbed
$redirects = 0;
$html_text = Network::fetchUrl($embedurl, false, $redirects, 15, 'text/*');
if ($html_text) {
$dom = @DOMDocument::loadHTML($html_text);
$dom = new DOMDocument();
$dom->loadHTML($html_text);
if ($dom) {
$xpath = new DOMXPath($dom);
$entries = $xpath->query("//link[@type='application/json+oembed']");
@ -274,7 +275,8 @@ class OEmbed
$html_text = mb_convert_encoding($text, 'HTML-ENTITIES', mb_detect_encoding($text));
// If it doesn't parse at all, just return the text.
$dom = @DOMDocument::loadHTML($html_text);
$dom = new DOMDocument();
$dom->loadHTML($html_text);
if (!$dom) {
return $text;
}


+ 0
- 3
src/Content/Text/HTML.php View File

@ -11,10 +11,7 @@ use Friendica\Content\Widget\ContactBlock;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Config;
use Friendica\Core\PConfig;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\Model\Contact;
use Friendica\Util\Network;
use Friendica\Util\Proxy as ProxyUtils;


+ 6
- 3
src/Content/Widget/TagCloud.php View File

@ -40,6 +40,7 @@ class TagCloud
$contact = DBA::selectFirst('contact', ['url'], ['uid' => $uid, 'self' => true]);
$url = System::removedBaseUrl($contact['url']);
$tags = [];
foreach ($r as $rr) {
$tag['level'] = $rr[2];
$tag['url'] = $url . '?tag=' . urlencode($rr[0]);
@ -88,7 +89,7 @@ class TagCloud
}
// Fetch tags
$r = DBA::p("SELECT `term`, COUNT(`term`) AS `total` FROM `term`
$tag_stmt = DBA::p("SELECT `term`, COUNT(`term`) AS `total` FROM `term`
LEFT JOIN `item` ON `term`.`oid` = `item`.`id`
WHERE `term`.`uid` = ? AND `term`.`type` = ?
AND `term`.`otype` = ?
@ -99,10 +100,12 @@ class TagCloud
$type,
TERM_OBJ_POST
);
if (!DBA::isResult($r)) {
if (!DBA::isResult($tag_stmt)) {
return [];
}
$r = DBA::toArray($tag_stmt);
return self::tagCalc($r);
}
@ -113,7 +116,7 @@ class TagCloud
* @param array $arr Array of tags/terms with tag/term name and total count of use.
* @return array Alphabetical sorted array of used tags/terms of an user.
*/
private static function tagCalc($arr)
private static function tagCalc(array $arr)
{
$tags = [];
$min = 1e9;


+ 1
- 0
src/Core/Console.php View File

@ -121,6 +121,7 @@ HELP;
$className = $this->subConsoles[$command];
/** @var Console $subconsole */
$subconsole = new $className($subargs);
foreach ($this->options as $name => $value) {


+ 1
- 0
src/Core/Renderer.php View File

@ -8,6 +8,7 @@ namespace Friendica\Core;
use Exception;
use Friendica\BaseObject;
use Friendica\Render\FriendicaSmarty;
use Friendica\Render\ITemplateEngine;
/**
* @brief This class handles Renderer related functions.


+ 3
- 0
src/Core/StorageManager.php View File

@ -3,6 +3,7 @@
namespace Friendica\Core;
use Friendica\Database\DBA;
use Friendica\Model\Storage\IStorage;
/**
@ -138,6 +139,7 @@ class StorageManager
while($r = DBA::fetch($rr)) {
$id = $r['id'];
$data = $r['data'];
/** @var IStorage $backendClass */
$backendClass = $r['backend-class'];
$backendRef = $r['backend-ref'];
if (!is_null($backendClass) && $backendClass !== '') {
@ -146,6 +148,7 @@ class StorageManager
}
Logger::log("save data to new backend " . $dest);
/** @var IStorage $dest */
$ref = $dest::put($data);
Logger::log("saved data as " . $ref);


+ 5
- 1
src/Model/Attach.php View File

@ -11,6 +11,7 @@ use Friendica\Core\System;
use Friendica\Core\StorageManager;
use Friendica\Database\DBA;
use Friendica\Database\DBStructure;
use Friendica\Model\Storage\IStorage;
use Friendica\Object\Image;
use Friendica\Util\Security;
use Friendica\Util\DateTimeFormat;
@ -176,7 +177,7 @@ class Attach extends BaseObject
* @return boolean/integer Row id on success, False on errors
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public function store($data, $uid, $filename, $filetype = '' , $filesize = null, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '')
public static function store($data, $uid, $filename, $filetype = '' , $filesize = null, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '')
{
if ($filetype === '') {
$filetype = Mimetype::getContentType($filename);
@ -186,6 +187,7 @@ class Attach extends BaseObject
$filesize = strlen($data);
}
/** @var IStorage $backend_class */
$backend_class = StorageManager::getBackend();
$backend_ref = '';
if ($backend_class !== '') {
@ -265,6 +267,7 @@ class Attach extends BaseObject
$items = self::select(['backend-class','backend-ref'], $conditions);
foreach($items as $item) {
/** @var IStorage $backend_class */
$backend_class = (string)$item['backend-class'];
if ($backend_class !== '') {
$fields['backend-ref'] = $backend_class::put($img->asString(), $item['backend-ref']);
@ -297,6 +300,7 @@ class Attach extends BaseObject
$items = self::select(['backend-class','backend-ref'], $conditions);
foreach($items as $item) {
/** @var IStorage $backend_class */
$backend_class = (string)$item['backend-class'];
if ($backend_class !== '') {
$backend_class::delete($item['backend-ref']);


+ 4
- 2
src/Model/Event.php View File

@ -644,15 +644,17 @@ class Event extends BaseObject
*/
private static function formatListForExport(array $events, $format)
{
$o = '';
if (!count($events)) {
return '';
return $o;
}
switch ($format) {
// Format the exported data as a CSV file.
case "csv":
header("Content-type: text/csv");
$o = '"Subject", "Start Date", "Start Time", "Description", "End Date", "End Time", "Location"' . PHP_EOL;
$o .= '"Subject", "Start Date", "Start Time", "Description", "End Date", "End Time", "Location"' . PHP_EOL;
foreach ($events as $event) {
/// @todo The time / date entries don't include any information about the


+ 2
- 2
src/Model/Item.php View File

@ -1790,13 +1790,13 @@ class Item extends BaseObject
DBA::insert('diaspora-interaction', ['uri-id' => $item['uri-id'], 'interaction' => $diaspora_signed_text], true);
}
$deleted = self::tagDeliver($item['uid'], $current_post);
self::tagDeliver($item['uid'], $current_post);
/*
* current post can be deleted if is for a community page and no mention are
* in it.
*/
if (!$deleted && !$dontcache) {
if (!$dontcache) {
$posted_item = self::selectFirst(self::ITEM_FIELDLIST, ['id' => $current_post]);
if (DBA::isResult($posted_item)) {
if ($notify) {


+ 2
- 2
src/Model/Mail.php View File

@ -157,7 +157,7 @@ class Mail
}
/**
* @param string $recipient recipient, default empty
* @param array $recipient recipient, default empty
* @param string $body message body, default empty
* @param string $subject message subject, default empty
* @param string $replyto reply to, default empty
@ -165,7 +165,7 @@ class Mail
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function sendWall($recipient = '', $body = '', $subject = '', $replyto = '')
public static function sendWall(array $recipient = [], $body = '', $subject = '', $replyto = '')
{
if (!$recipient) {
return -1;


+ 5
- 1
src/Model/Photo.php View File

@ -14,6 +14,7 @@ use Friendica\Core\System;
use Friendica\Core\StorageManager;
use Friendica\Database\DBA;
use Friendica\Database\DBStructure;
use Friendica\Model\Storage\IStorage;
use Friendica\Object\Image;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
@ -268,6 +269,7 @@ class Photo extends BaseObject
$data = "";
$backend_ref = "";
/** @var IStorage $backend_class */
if (DBA::isResult($existing_photo)) {
$backend_ref = (string)$existing_photo["backend-ref"];
$backend_class = (string)$existing_photo["backend-class"];
@ -334,6 +336,7 @@ class Photo extends BaseObject
$photos = self::select(["backend-class","backend-ref"], $conditions);
foreach($photos as $photo) {
/** @var IStorage $backend_class */
$backend_class = (string)$photo["backend-class"];
if ($backend_class !== "") {
$backend_class::delete($photo["backend-ref"]);
@ -363,6 +366,7 @@ class Photo extends BaseObject
$photos = self::select(["backend-class","backend-ref"], $conditions);
foreach($photos as $photo) {
/** @var IStorage $backend_class */
$backend_class = (string)$photo["backend-class"];
if ($backend_class !== "") {
$fields["backend-ref"] = $backend_class::put($img->asString(), $photo["backend-ref"]);
@ -479,7 +483,7 @@ class Photo extends BaseObject
}
/**
* @param string $exifCoord coordinate
* @param array $exifCoord coordinate
* @param string $hemi hemi
* @return float
*/


+ 1
- 0
src/Model/Term.php View File

@ -274,6 +274,7 @@ class Term
'network' => $item['author-network'], 'url' => $item['author-link']];
$tag['url'] = Contact::magicLinkByContact($author, $tag['url']);
$prefix = '';
if ($tag['type'] == TERM_HASHTAG) {
if ($orig_tag != $tag['url']) {
$item['body'] = str_replace($orig_tag, $tag['url'], $item['body']);


+ 0
- 1
src/Module/Contact.php View File

@ -8,7 +8,6 @@ use Friendica\Content\ContactSelector;
use Friendica\Content\Nav;
use Friendica\Content\Pager;
use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
use Friendica\Content\Widget;
use Friendica\Core\ACL;
use Friendica\Core\Hook;


+ 10
- 11
src/Module/Inbox.php View File

@ -2,6 +2,7 @@
/**
* @file src/Module/Inbox.php
*/
namespace Friendica\Module;
use Friendica\BaseModule;
@ -25,19 +26,17 @@ class Inbox extends BaseModule
System::httpExit(400);
}
// Enable for test purposes
/*
if (HTTPSignature::getSigner($postdata, $_SERVER)) {
$filename = 'signed-activitypub';
} else {
$filename = 'failed-activitypub';
if (Config::get('debug', 'ap_inbox_log')) {
if (HTTPSignature::getSigner($postdata, $_SERVER)) {
$filename = 'signed-activitypub';
} else {
$filename = 'failed-activitypub';
}
$tempfile = tempnam(get_temppath(), $filename);
file_put_contents($tempfile, json_encode(['argv' => $a->argv, 'header' => $_SERVER, 'body' => $postdata], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
Logger::log('Incoming message stored under ' . $tempfile);
}
$tempfile = tempnam(get_temppath(), $filename);
file_put_contents($tempfile, json_encode(['argv' => $a->argv, 'header' => $_SERVER, 'body' => $postdata], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
Logger::log('Incoming message stored under ' . $tempfile);
*/
if (!empty($a->argv[1])) {
$user = DBA::selectFirst('user', ['uid'], ['nickname' => $a->argv[1]]);
if (!DBA::isResult($user)) {


+ 22
- 21
src/Module/Photo.php View File

@ -46,28 +46,29 @@ class Photo extends BaseModule
}
$customsize = 0;
$photo = false;
switch($a->argc) {
case 4:
$customsize = intval($a->argv[2]);
$uid = self::stripExtension($a->argv[3]);
$photo = self::getAvatar($uid, $a->argv[1]);
break;
case 3:
$uid = self::stripExtension($a->argv[2]);
$photo = self::getAvatar($uid, $a->argv[1]);
break;
case 2:
$photoid = self::stripExtension($a->argv[1]);
$scale = 0;
if (substr($photoid, -2, 1) == "-") {
$scale = intval(substr($photoid, -1, 1));
$photoid = substr($photoid, 0, -2);
}
$photo = MPhoto::getPhoto($photoid, $scale);
if ($photo === false) {
$photo = MPhoto::createPhotoForSystemResource("images/nosign.jpg");
}
break;
case 4:
$customsize = intval($a->argv[2]);
$uid = self::stripExtension($a->argv[3]);
$photo = self::getAvatar($uid, $a->argv[1]);
break;
case 3:
$uid = self::stripExtension($a->argv[2]);
$photo = self::getAvatar($uid, $a->argv[1]);
break;
case 2:
$photoid = self::stripExtension($a->argv[1]);
$scale = 0;
if (substr($photoid, -2, 1) == "-") {
$scale = intval(substr($photoid, -1, 1));
$photoid = substr($photoid, 0, -2);
}
$photo = MPhoto::getPhoto($photoid, $scale);
if ($photo === false) {
$photo = MPhoto::createPhotoForSystemResource("images/nosign.jpg");
}
break;
}
if ($photo === false) {


+ 1
- 0
src/Object/Image.php View File

@ -23,6 +23,7 @@ use ImagickPixel;
*/
class Image
{
/** @var Imagick|resource */
private $image;
/*


+ 0
- 1
src/Protocol/ActivityPub/Transmitter.php View File

@ -23,7 +23,6 @@ use Friendica\Util\LDSignature;
use Friendica\Model\Profile;
use Friendica\Object\Image;
use Friendica\Protocol\ActivityPub;
use Friendica\Protocol\Diaspora;
use Friendica\Core\Cache;
use Friendica\Util\Map;
use Friendica\Util\Network;


+ 35
- 35
src/Protocol/DFRN.php View File

@ -529,17 +529,17 @@ class DFRN
/**
* @brief Adds the header elements for the DFRN protocol
*
* @param object $doc XML document
* @param array $owner Owner record
* @param string $authorelement Element name for the author
* @param string $alternatelink link to profile or category
* @param bool $public Is it a header for public posts?
* @param DOMDocument $doc XML document
* @param array $owner Owner record
* @param string $authorelement Element name for the author
* @param string $alternatelink link to profile or category
* @param bool $public Is it a header for public posts?
*
* @return object XML root object
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @todo Find proper type-hints
*/
private static function addHeader($doc, $owner, $authorelement, $alternatelink = "", $public = false)
private static function addHeader(DOMDocument $doc, $owner, $authorelement, $alternatelink = "", $public = false)
{
if ($alternatelink == "") {
@ -607,16 +607,16 @@ class DFRN
/**
* @brief Adds the author element in the header for the DFRN protocol
*
* @param object $doc XML document
* @param array $owner Owner record
* @param string $authorelement Element name for the author
* @param boolean $public boolean
* @param DOMDocument $doc XML document
* @param array $owner Owner record
* @param string $authorelement Element name for the author
* @param boolean $public boolean
*
* @return object XML author object
* @return \DOMElement XML author object
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @todo Find proper type-hints
*/
private static function addAuthor($doc, $owner, $authorelement, $public)
private static function addAuthor(DOMDocument $doc, array $owner, $authorelement, $public)
{
// Is the profile hidden or shouldn't be published in the net? Then add the "hide" element
$r = q(
@ -752,16 +752,16 @@ class DFRN
/**
* @brief Adds the author elements in the "entry" elements of the DFRN protocol
*
* @param object $doc XML document
* @param DOMDocument $doc XML document
* @param string $element Element name for the author
* @param string $contact_url Link of the contact
* @param array $item Item elements
*
* @return object XML author object
* @return \DOMElement XML author object
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @todo Find proper type-hints
*/
private static function addEntryAuthor($doc, $element, $contact_url, $item)
private static function addEntryAuthor(DOMDocument $doc, $element, $contact_url, $item)
{
$contact = Contact::getDetailsByURL($contact_url, $item["uid"]);
@ -795,15 +795,15 @@ class DFRN
/**
* @brief Adds the activity elements
*
* @param object $doc XML document
* @param string $element Element name for the activity
* @param string $activity activity value
* @param DOMDocument $doc XML document
* @param string $element Element name for the activity
* @param string $activity activity value
*
* @return object XML activity object
* @return \DOMElement XML activity object
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @todo Find proper type-hints
*/
private static function createActivity($doc, $element, $activity)
private static function createActivity(DOMDocument $doc, $element, $activity)
{
if ($activity) {
$entry = $doc->createElement($element);
@ -898,20 +898,20 @@ class DFRN
/**
* @brief Adds the "entry" elements for the DFRN protocol
*
* @param object $doc XML document
* @param string $type "text" or "html"
* @param array $item Item element
* @param array $owner Owner record
* @param bool $comment Trigger the sending of the "comment" element
* @param int $cid Contact ID of the recipient
* @param bool $single If set, the entry is created as an XML document with a single "entry" element
* @param DOMDocument $doc XML document
* @param string $type "text" or "html"
* @param array $item Item element
* @param array $owner Owner record
* @param bool $comment Trigger the sending of the "comment" element
* @param int $cid Contact ID of the recipient
* @param bool $single If set, the entry is created as an XML document with a single "entry" element
*
* @return object XML entry object
* @return \DOMElement XML entry object
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
* @todo Find proper type-hints
*/
private static function entry($doc, $type, array $item, array $owner, $comment = false, $cid = 0, $single = false)
private static function entry(DOMDocument $doc, $type, array $item, array $owner, $comment = false, $cid = 0, $single = false)
{
$mentioned = [];
@ -2414,7 +2414,7 @@ class DFRN
* @param object $xpath XPath object
* @param object $entry entry elements
* @param array $importer Record of the importer user mixed with contact of the content
* @param object $xml xml
* @param string $xml xml
* @return void
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
@ -2513,7 +2513,7 @@ class DFRN
$notice_info = $xpath->query("statusnet:notice_info", $entry);
if ($notice_info && ($notice_info->length > 0)) {
foreach ($notice_info->item(0)->attributes as $attributes) {
foreach ($notice_info->item[0]->attributes as $attributes) {
if ($attributes->name == "source") {
$item["app"] = strip_tags($attributes->textContent);
}
@ -2588,8 +2588,8 @@ class DFRN
$item['conversation-uri'] = XML::getFirstNodeValue($xpath, 'ostatus:conversation/text()', $entry);
$conv = $xpath->query('ostatus:conversation', $entry);
if (is_object($conv->item(0))) {
foreach ($conv->item(0)->attributes as $attributes) {
if (is_object($conv->item[0])) {
foreach ($conv->item[0]->attributes as $attributes) {
if ($attributes->name == "ref") {
$item['conversation-uri'] = $attributes->textContent;
}
@ -2603,8 +2603,8 @@ class DFRN
$item["parent-uri"] = $item["uri"];
$inreplyto = $xpath->query("thr:in-reply-to", $entry);
if (is_object($inreplyto->item(0))) {
foreach ($inreplyto->item(0)->attributes as $attributes) {
if (is_object($inreplyto->item[0])) {
foreach ($inreplyto->item[0]->attributes as $attributes) {
if ($attributes->name == "ref") {
$item["parent-uri"] = $attributes->textContent;
}


+ 6
- 6
src/Protocol/Diaspora.php View File

@ -648,15 +648,15 @@ class Diaspora
/**
* @brief Dispatches the different message types to the different functions
*
* @param array $importer Array of the importer user
* @param array $msg The post that will be dispatched
* @param object $fields SimpleXML object that contains the message
* @param array $importer Array of the importer user
* @param array $msg The post that will be dispatched
* @param SimpleXMLElement $fields SimpleXML object that contains the message
*
* @return int The message id of the generated message, "true" or "false" if there was an error
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function dispatch(array $importer, $msg, $fields = null)
public static function dispatch(array $importer, $msg, SimpleXMLElement $fields = null)
{
// The sender is the handle of the contact that sent the message.
// This will often be different with relayed messages (for example "like" and "comment")
@ -758,7 +758,7 @@ class Diaspora
*
* @param array $msg Array with the XML, the sender handle and the sender signature
*
* @return bool|array If the posting is valid then an array with an SimpleXML object is returned
* @return bool|SimpleXMLElement If the posting is valid then an array with an SimpleXML object is returned
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
@ -1077,7 +1077,7 @@ class Diaspora
* @param int $uid The user id
* @param string $handle The handle in the format user@domain.tld
*
* @return int Contact id
* @return array Contact data
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/


+ 13
- 13
src/Protocol/Email.php View File

@ -17,7 +17,7 @@ class Email
* @param string $mailbox The mailbox name
* @param string $username The username
* @param string $password The password
* @return object
* @return resource
* @throws \Exception
*/
public static function connect($mailbox, $username, $password)
@ -42,8 +42,8 @@ class Email
}
/**
* @param object $mbox mailbox
* @param string $email_addr email
* @param resource $mbox mailbox
* @param string $email_addr email
* @return array
* @throws \Exception
*/
@ -92,8 +92,8 @@ class Email
}
/**
* @param object $mbox mailbox
* @param integer $uid user id
* @param resource $mbox mailbox
* @param integer $uid user id
* @return mixed
*/
public static function messageMeta($mbox, $uid)
@ -103,9 +103,9 @@ class Email
}
/**
* @param object $mbox mailbox
* @param integer $uid user id
* @param string $reply reply
* @param resource $mbox mailbox
* @param integer $uid user id
* @param string $reply reply
* @return array
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
@ -166,11 +166,11 @@ class Email
// At the moment - only return plain/text.
// Later we'll repackage inline images as data url's and make the HTML safe
/**
* @param object $mbox mailbox
* @param integer $uid user id
* @param object $p parts
* @param integer $partno part number
* @param string $subtype sub type
* @param resource $mbox mailbox
* @param integer $uid user id
* @param object $p parts
* @param integer $partno part number
* @param string $subtype sub type
* @return string
*/
private static function messageGetPart($mbox, $uid, $p, $partno, $subtype)


+ 8
- 8
src/Protocol/OStatus.php View File

@ -1453,7 +1453,7 @@ class OStatus
* @param array $owner Contact data of the poster
* @param bool $show_profile Whether to show profile
*
* @return object author element
* @return \DOMElement author element
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
private static function addAuthor(DOMDocument $doc, array $owner, $show_profile = true)
@ -1573,7 +1573,7 @@ class OStatus
* @param bool $toplevel optional default false
* @param bool $feed_mode Behave like a regular feed for users if true
*
* @return object Entry element
* @return \DOMElement Entry element
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
@ -1605,7 +1605,7 @@ class OStatus
* @param DOMDocument $doc XML document
* @param array $contact Array of the contact that is added
*
* @return object Source element
* @return \DOMElement Source element
* @throws \Exception
*/
private static function sourceEntry(DOMDocument $doc, array $contact)
@ -1748,7 +1748,7 @@ class OStatus
* @param array $owner Contact data of the poster
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
*
* @return object Entry element with "like"
* @return \DOMElement Entry element with "like"
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
@ -1835,7 +1835,7 @@ class OStatus
* @param array $owner Contact data of the poster
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
*
* @return object Entry element
* @return \DOMElement Entry element
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
@ -1900,7 +1900,7 @@ class OStatus
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
* @param bool $feed_mode Behave like a regular feed for users if true
*
* @return object Entry element
* @return \DOMElement Entry element
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
@ -1976,7 +1976,7 @@ class OStatus
* @brief Adds elements to the XML document
*
* @param DOMDocument $doc XML document
* @param object $entry Entry element where the content is added
* @param \DOMElement $entry Entry element where the content is added
* @param array $item Data of the item that is to be posted
* @param array $owner Contact data of the poster
* @param string $title Title for the post
@ -1986,7 +1986,7 @@ class OStatus
* @return void
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
private static function entryContent(DOMDocument $doc, $entry, array $item, array $owner, $title, $verb = "", $complete = true, $feed_mode = false)
private static function entryContent(DOMDocument $doc, \DOMElement $entry, array $item, array $owner, $title, $verb = "", $complete = true, $feed_mode = false)
{
if ($verb == "") {
$verb = self::constructVerb($item);


+ 6
- 6
src/Util/Crypto.php View File

@ -423,13 +423,13 @@ class Crypto
*
* Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/crypto.php
*
* @param string $data
* @param array $data ['iv' => $iv, 'key' => $key, 'alg' => $alg, 'data' => $data]
* @param string $prvkey The private key used for decryption.
*
* @return string|boolean The decrypted string or false on failure.
* @throws \Exception
*/
public static function unencapsulate($data, $prvkey)
public static function unencapsulate(array $data, $prvkey)
{
if (!$data) {
return;
@ -437,23 +437,23 @@ class Crypto
$alg = ((array_key_exists('alg', $data)) ? $data['alg'] : 'aes256cbc');
if ($alg === 'aes256cbc') {
return self::encapsulateAes($data, $prvkey);
return self::encapsulateAes($data['data'], $prvkey);
}
return self::encapsulateOther($data, $prvkey, $alg);
return self::encapsulateOther($data['data'], $prvkey, $alg);
}
/**
*
* Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/crypto.php
*
* @param string $data
* @param array $data
* @param string $prvkey The private key used for decryption.
* @param string $alg
*
* @return string|boolean The decrypted string or false on failure.
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
private static function unencapsulateOther($data, $prvkey, $alg)
private static function unencapsulateOther(array $data, $prvkey, $alg)
{
$fn = 'decrypt' . strtoupper($alg);


+ 4
- 4
src/Util/Temporal.php View File

@ -158,10 +158,10 @@ class Temporal
/**
* @brief Returns a date selector
*
* @param string $min Unix timestamp of minimum date
* @param string $max Unix timestap of maximum date
* @param string $default Unix timestamp of default date
* @param string $id ID and name of datetimepicker (defaults to "datetimepicker")
* @param DateTime $min Minimum date
* @param DateTime $max Maximum date
* @param DateTime $default Default date
* @param string $id ID and name of datetimepicker (defaults to "datetimepicker")
*
* @return string Parsed HTML output.
* @throws \Friendica\Network\HTTPException\InternalServerErrorException


+ 12
- 12
src/Util/XML.php View File

@ -135,14 +135,14 @@ class XML
/**
* @brief Create an XML element
*
* @param object $doc XML root
* @param string $element XML element name
* @param string $value XML value
* @param array $attributes array containing the attributes
* @param \DOMDocument $doc XML root
* @param string $element XML element name
* @param string $value XML value
* @param array $attributes array containing the attributes
*
* @return object XML element object
* @return \DOMElement XML element object
*/
public static function createElement($doc, $element, $value = "", $attributes = [])
public static function createElement(\DOMDocument $doc, $element, $value = "", $attributes = [])
{
$element = $doc->createElement($element, self::escape($value));
@ -157,14 +157,14 @@ class XML
/**
* @brief Create an XML and append it to the parent object
*
* @param object $doc XML root
* @param \DOMDocument $doc XML root
* @param object $parent parent object
* @param string $element XML element name
* @param string $value XML value
* @param array $attributes array containing the attributes
* @return void
*/
public static function addElement($doc, $parent, $element, $value = "", $attributes = [])
public static function addElement(\DOMDocument $doc, $parent, $element, $value = "", $attributes = [])
{
$element = self::createElement($doc, $element, $value, $attributes);
$parent->appendChild($element);
@ -402,11 +402,11 @@ class XML
/**
* @brief Delete a node in a XML object
*
* @param object $doc XML document
* @param \DOMDocument $doc XML document
* @param string $node Node name
* @return void
*/
public static function deleteNode(&$doc, $node)
public static function deleteNode(\DOMDocument $doc, $node)
{
$xpath = new DOMXPath($doc);
$list = $xpath->query("//".$node);
@ -431,7 +431,7 @@ class XML
return $x;
}
public static function getFirstNodeValue($xpath, $element, $context = null)
public static function getFirstNodeValue(DOMXPath $xpath, $element, $context = null)
{
$result = $xpath->evaluate($element, $context);
if (!is_object($result)) {
@ -446,7 +446,7 @@ class XML
return $first_item->nodeValue;
}
public static function getFirstAttributes($xpath, $element, $context = null)
public static function getFirstAttributes(DOMXPath $xpath, $element, $context = null)
{
$result = $xpath->query($element, $context);
if (!is_object($result)) {


+ 1
- 1
src/Worker/Delivery.php View File

@ -94,7 +94,7 @@ class Delivery extends BaseObject
} elseif (!empty($target_item['uid'])) {
$uid = $target_item['uid'];
} else {
Logger::log('Only public users for item ' . $item_id, Logger::DEBUG);
Logger::log('Only public users for item ' . $target_id, Logger::DEBUG);
return;
}


Loading…
Cancel
Save