Browse Source

Merge pull request #4095 from MrPetovan/task/fix-phpstan-errors

Fix phpstan errors
pull/4096/head
Michael Vogel 4 years ago
committed by GitHub
parent
commit
fa11959919
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      boot.php
  2. 2
      include/text.php
  3. 11
      src/App.php
  4. 4
      src/Content/ForumManager.php
  5. 6
      src/Core/Cache.php
  6. 2
      src/Core/Config.php
  7. 5
      src/Core/NotificationsManager.php
  8. 4
      src/Core/PConfig.php
  9. 2
      src/Core/Worker.php
  10. 2
      src/Database/DBM.php
  11. 4
      src/Database/DBStructure.php
  12. 3
      src/Model/Contact.php
  13. 11
      src/Model/GContact.php
  14. 18
      src/Model/Group.php
  15. 2
      src/Model/Photo.php
  16. 34
      src/Model/User.php
  17. 40
      src/Network/FKOAuthDataStore.php
  18. 3
      src/Network/Probe.php
  19. 121
      src/Object/Image.php
  20. 1
      src/Object/Post.php
  21. 19
      src/ParseUrl.php
  22. 30
      src/Protocol/DFRN.php
  23. 33
      src/Protocol/Diaspora.php
  24. 16
      src/Protocol/Feed.php
  25. 16
      src/Protocol/OStatus.php
  26. 9
      src/Protocol/PortableContact.php
  27. 5
      src/Util/ExAuth.php
  28. 4
      src/Util/Lock.php
  29. 2
      src/Util/Pidfile.php
  30. 16
      src/Util/XML.php
  31. 2
      src/Worker/Cron.php
  32. 2
      src/Worker/CronHooks.php
  33. 4
      src/Worker/CronJobs.php
  34. 2
      src/Worker/DBClean.php
  35. 14
      src/Worker/Delivery.php
  36. 2
      src/Worker/Directory.php
  37. 2
      src/Worker/DiscoverPoCo.php
  38. 4
      src/Worker/Expire.php
  39. 1
      src/Worker/Notifier.php
  40. 2
      src/Worker/OnePoll.php
  41. 5
      src/Worker/Queue.php
  42. 2
      src/Worker/RemoveContact.php
  43. 4
      vendor/composer/autoload_classmap.php
  44. 4
      vendor/composer/autoload_static.php

2
boot.php

@ -524,6 +524,8 @@ function startup()
* @brief Retrieve the App structure
*
* Useful in functions which require it but don't get it passed to them
*
* @return App
*/
function get_app()
{

2
include/text.php

@ -1701,7 +1701,7 @@ function array_xmlify($val){
/**
* transorm link href and img src from relative to absolute
* transform link href and img src from relative to absolute
*
* @param string $text
* @param string $base base url

11
src/App.php

@ -14,6 +14,9 @@ use Detection\MobileDetect;
use Exception;
require_once 'boot.php';
require_once 'include/dba.php';
/**
*
* class: App
@ -310,10 +313,8 @@ class App {
*
* @return string
*/
public static function get_basepath() {
if (isset($this)) {
$basepath = $this->basepath;
}
public function get_basepath() {
$basepath = $this->basepath;
if (! $basepath) {
$basepath = Config::get('system', 'basepath');
@ -617,7 +618,7 @@ class App {
* If $name is not defined, return engine defined by theme,
* or default
*
* @param strin $name Template engine name
* @param string $name Template engine name
* @return object Template Engine instance
*/
function template_engine($name = '') {

4
src/Content/ForumManager.php

@ -11,6 +11,8 @@ use Friendica\Core\System;
use Friendica\Database\DBM;
use dba;
require_once 'include/dba.php';
/**
* @brief This class handles methods related to the forum functionality
*/
@ -158,7 +160,7 @@ class ForumManager
$contacts = self::getList($uid, $lastitem, false, false);
$total_shown = 0;
$forumlist = '';
foreach ($contacts as $contact) {
$forumlist .= micropro($contact, false, 'forumlist-profile-advanced');
$total_shown ++;

6
src/Core/Cache.php

@ -9,6 +9,8 @@ use Friendica\Core\PConfig;
use Friendica\Database\DBM;
use dba;
require_once 'include/dba.php';
/**
* @brief Class for storing data for a short time
*/
@ -32,7 +34,7 @@ class Cache
$memcache_host = Config::get('system', 'memcache_host', '127.0.0.1');
$memcache_port = Config::get('system', 'memcache_port', 11211);
$memcache = new Memcache;
$memcache = new \Memcache;
if (!$memcache->connect($memcache_host, $memcache_port)) {
return false;
@ -105,7 +107,7 @@ class Cache
}
// Frequently clear cache
self::clear($duration);
self::clear();
$r = dba::select('cache', array('v'), array('k' => $key), array('limit' => 1));

2
src/Core/Config.php

@ -11,6 +11,8 @@ namespace Friendica\Core;
use Friendica\Database\DBM;
use dba;
require_once 'include/dba.php';
/**
* @brief Arbitrary sytem configuration storage
*

5
src/Core/NotificationsManager.php

@ -6,11 +6,12 @@
*/
namespace Friendica\Core;
use Friendica\Core\Pconfig;
use Friendica\Core\PConfig;
use Friendica\Core\System;
use Friendica\Database\DBM;
use Friendica\Model\Contact;
require_once 'include/dba.php';
require_once 'include/html2plain.php';
require_once 'include/datetime.php';
require_once 'include/bbcode.php';
@ -766,7 +767,7 @@ class NotificationsManager
public function introNotifs($all = false, $start = 0, $limit = 80)
{
$ident = 'introductions';
$total = $this->introTotal($seen);
$total = $this->introTotal($all);
$notifs = array();
$sql_extra = "";

4
src/Core/PConfig.php

@ -7,6 +7,8 @@ namespace Friendica\Core;
use Friendica\Database\DBM;
use dba;
require_once 'include/dba.php';
/**
* @file include/Core/PConfig.php
* @brief contains the class with methods for the management
@ -138,7 +140,7 @@ class PConfig
// manage array value
$dbvalue = (is_array($value) ? serialize($value) : $dbvalue);
dba::update('pconfig', array('v' => $dbvalue), array('uid' => $uid, 'cat' => $family, 'k' => $key), true);
$ret = dba::update('pconfig', array('v' => $dbvalue), array('uid' => $uid, 'cat' => $family, 'k' => $key), true);
if ($ret) {
self::$in_db[$uid][$family][$key] = true;

2
src/Core/Worker.php

@ -13,6 +13,8 @@ use Friendica\Util\Lock;
use dba;
require_once 'include/dba.php';
/**
* @file src/Core/Worker.php
*

2
src/Database/DBM.php

@ -6,6 +6,8 @@ namespace Friendica\Database;
use dba;
require_once 'include/dba.php';
/**
* @brief This class contain functions for the database management
*

4
src/Database/DBStructure.php

@ -9,6 +9,8 @@ use Friendica\Database\DBM;
use dba;
require_once "boot.php";
require_once 'include/dba.php';
require_once 'include/enotify.php';
require_once "include/text.php";
/**
@ -565,7 +567,7 @@ class DBStructure {
private static function createIndex($indexname, $fieldnames, $method = "ADD") {
$method = strtoupper(trim($method));
if ($method!="" && $method!="ADD") {
throw new Exception("Invalid parameter 'method' in self::createIndex(): '$method'");
throw new \Exception("Invalid parameter 'method' in self::createIndex(): '$method'");
}
if ($fieldnames[0] == "UNIQUE") {

3
src/Model/Contact.php

@ -20,6 +20,7 @@ use Friendica\Protocol\Salmon;
use dba;
require_once 'boot.php';
require_once 'include/dba.php';
require_once 'include/text.php';
/**
@ -196,7 +197,7 @@ class Contact extends BaseObject
* up or some other transient event and that there's a possibility we could recover from it.
*
* @param array $contact contact to mark for archival
* @return type
* @return null
*/
public static function markForArchival(array $contact)
{

11
src/Model/GContact.php

@ -17,6 +17,7 @@ use dba;
use Exception;
require_once 'include/datetime.php';
require_once 'include/dba.php';
require_once 'include/network.php';
require_once 'include/html2bbcode.php';
@ -635,7 +636,7 @@ class GContact
/**
* @brief Replace alternate OStatus user format with the primary one
*
* @param arr $contact contact array (called by reference)
* @param array $contact contact array (called by reference)
* @return void
*/
public static function fixAlternateContactAddress(&$contact)
@ -655,7 +656,7 @@ class GContact
/**
* @brief Fetch the gcontact id, add an entry if not existed
*
* @param arr $contact contact array
* @param array $contact contact array
*
* @return bool|int Returns false if not found, integer if contact was found
*/
@ -746,7 +747,7 @@ class GContact
/**
* @brief Updates the gcontact table from a given array
*
* @param arr $contact contact array
* @param array $contact contact array
*
* @return bool|int Returns false if not found, integer if contact was found
*/
@ -907,7 +908,7 @@ class GContact
/**
* @brief Updates the gcontact entry from probe
*
* @param str $url profile link
* @param string $url profile link
* @return void
*/
public static function updateFromProbe($url)
@ -973,7 +974,7 @@ class GContact
*
* If the "Statistics" plugin is enabled (See http://gstools.org/ for details) we query user data with this.
*
* @param str $server Server address
* @param string $server Server address
* @return void
*/
public static function fetchGsUsers($server)

18
src/Model/Group.php

@ -11,6 +11,7 @@ use Friendica\Database\DBM;
use dba;
require_once 'boot.php';
require_once 'include/dba.php';
require_once 'include/text.php';
/**
@ -130,7 +131,7 @@ class Group extends BaseObject
/**
* @brief Mark a group as deleted
*
* @param type $gid
* @param int $gid
* @return boolean
*/
public static function remove($gid) {
@ -138,8 +139,13 @@ class Group extends BaseObject
return false;
}
$group = dba::select('group', ['uid'], ['gid' => $gid], ['limit' => 1]);
if (!DBM::is_result($group)) {
return false;
}
// remove group from default posting lists
$user = dba::select('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $uid], ['limit' => 1]);
$user = dba::select('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $group['uid']], ['limit' => 1]);
if (DBM::is_result($user)) {
$change = false;
@ -157,7 +163,7 @@ class Group extends BaseObject
}
if ($change) {
dba::update('user', $user, ['uid' => $uid]);
dba::update('user', $user, ['uid' => $group['uid']]);
}
}
@ -175,9 +181,9 @@ class Group extends BaseObject
*
* @deprecated Use Group::remove instead
*
* @param type $uid
* @param type $name
* @return type
* @param int $uid
* @param string $name
* @return bool
*/
public static function removeByName($uid, $name) {
$return = false;

2
src/Model/Photo.php

@ -12,7 +12,9 @@ use Friendica\Database\DBM;
use Friendica\Object\Image;
use dba;
require_once 'include/dba.php';
require_once "include/photos.php";
/**
* Class to handle photo dabatase table
*/

34
src/Model/User.php

@ -21,6 +21,7 @@ use Exception;
require_once 'boot.php';
require_once 'include/crypto.php';
require_once 'include/dba.php';
require_once 'include/enotify.php';
require_once 'include/network.php';
require_once 'library/openid.php';
@ -32,6 +33,37 @@ require_once 'include/text.php';
*/
class User
{
/**
* @brief Get owner data by user id
*
* @param int $uid
* @return boolean|array
*/
public static function getOwnerDataById($uid) {
$r = dba::p("SELECT
`contact`.*,
`user`.`prvkey` AS `uprvkey`,
`user`.`timezone`,
`user`.`nickname`,
`user`.`sprvkey`,
`user`.`spubkey`,
`user`.`page-flags`,
`user`.`account-type`,
`user`.`prvnets`
FROM `contact`
INNER JOIN `user`
ON `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = ?
AND `contact`.`self` = 1
LIMIT 1",
$uid
);
if (!DBM::is_result($r)) {
return false;
}
return $r[0];
}
/**
* @brief Returns the default group for a given user and network
*
@ -186,7 +218,7 @@ class User
$_SESSION['register'] = 1;
$_SESSION['openid'] = $openid_url;
$openid = new LightOpenID;
$openid = new \LightOpenID;
$openid->identity = $openid_url;
$openid->returnUrl = System::baseUrl() . '/openid';
$openid->required = array('namePerson/friendly', 'contact/email', 'namePerson');

40
src/Network/FKOAuthDataStore.php

@ -1,10 +1,12 @@
<?php
/**
* @file src/Protocol/FKOAuthDataStore.php
* OAuth server
* Based on oauth2-php <http://code.google.com/p/oauth2-php/>
*
*/
namespace Friendica\Network;
use Friendica\App;
@ -17,6 +19,8 @@ use OAuthDataStore;
define('REQUEST_TOKEN_DURATION', 300);
define('ACCESS_TOKEN_DURATION', 31536000);
require_once 'include/dba.php';
require_once "library/OAuth1.php";
require_once "library/oauth2-php/lib/OAuth2.inc";
@ -39,13 +43,13 @@ class FKOAuthDataStore extends OAuthDataStore
*/
public function lookup_consumer($consumer_key)
{
logger(__function__.":".$consumer_key);
logger(__function__ . ":" . $consumer_key);
$s = dba::select('clients', array('client_id', 'pw', 'redirect_uri'), array('client_id' => $consumer_key));
$r = dba::inArray($r);
$r = dba::inArray($s);
if (DBM::is_result($r)) {
return new OAuthConsumer($r[0]['client_id'], $r[0]['pw'], $r[0]['redirect_uri']);
return new \OAuthConsumer($r[0]['client_id'], $r[0]['pw'], $r[0]['redirect_uri']);
}
return null;
@ -59,13 +63,13 @@ class FKOAuthDataStore extends OAuthDataStore
*/
public function lookup_token($consumer, $token_type, $token)
{
logger(__function__.":".$consumer.", ". $token_type.", ".$token);
logger(__function__ . ":" . $consumer . ", " . $token_type . ", " . $token);
$s = dba::select('tokens', array('id', 'secret', 'scope', 'expires', 'uid'), array('client_id' => $consumer->key, 'scope' => $token_type, 'id' => $token));
$r = dba::inArray($s);
if (DBM::is_result($r)) {
$ot=new OAuthToken($r[0]['id'], $r[0]['secret']);
$ot = new \OAuthToken($r[0]['id'], $r[0]['secret']);
$ot->scope = $r[0]['scope'];
$ot->expires = $r[0]['expires'];
$ot->uid = $r[0]['uid'];
@ -85,9 +89,9 @@ class FKOAuthDataStore extends OAuthDataStore
public function lookup_nonce($consumer, $token, $nonce, $timestamp)
{
$r = dba::select('tokens', ['id', 'secret'], ['client_id' => $consumer->key, 'id' => $nonce, 'expires' => $timestamp], ['limit' => 1]);
if (DBM::is_result($r)) {
return new OAuthToken($r['id'], $r['secret']);
return new \OAuthToken($r['id'], $r['secret']);
}
return null;
@ -100,7 +104,7 @@ class FKOAuthDataStore extends OAuthDataStore
*/
public function new_request_token($consumer, $callback = null)
{
logger(__function__.":".$consumer.", ". $callback);
logger(__function__ . ":" . $consumer . ", " . $callback);
$key = self::genToken();
$sec = self::genToken();
@ -117,14 +121,14 @@ class FKOAuthDataStore extends OAuthDataStore
'secret' => $sec,
'client_id' => $k,
'scope' => 'request',
'expires' => UNIX_TIMESTAMP() + REQUEST_TOKEN_DURATION)
'expires' => time() + REQUEST_TOKEN_DURATION)
);
if (!$r) {
return null;
}
return new OAuthToken($key, $sec);
return new \OAuthToken($key, $sec);
}
/**
@ -135,7 +139,7 @@ class FKOAuthDataStore extends OAuthDataStore
*/
public function new_access_token($token, $consumer, $verifier = null)
{
logger(__function__.":".$token.", ". $consumer.", ". $verifier);
logger(__function__ . ":" . $token . ", " . $consumer . ", " . $verifier);
// return a new access token attached to this consumer
// for the user associated with this token if the request token
@ -146,9 +150,9 @@ class FKOAuthDataStore extends OAuthDataStore
// get user for this verifier
$uverifier = Config::get("oauth", $verifier);
logger(__function__.":".$verifier.",".$uverifier);
logger(__function__ . ":" . $verifier . "," . $uverifier);
if (is_null($verifier) || ($uverifier!==false)) {
if (is_null($verifier) || ($uverifier !== false)) {
$key = self::genToken();
$sec = self::genToken();
$r = dba::insert(
@ -158,19 +162,17 @@ class FKOAuthDataStore extends OAuthDataStore
'secret' => $sec,
'client_id' => $consumer->key,
'scope' => 'access',
'expires' => UNIX_TIMESTAMP() + ACCESS_TOKEN_DURATION,
'expires' => time() + ACCESS_TOKEN_DURATION,
'uid' => $uverifier)
);
if ($r) {
$ret = new OAuthToken($key, $sec);
$ret = new \OAuthToken($key, $sec);
}
}
dba::delete('tokens', array('id' => $token->key));
if (!is_null($ret) && !is_null($uverifier)) {
Config::delete("oauth", $verifier);
}

3
src/Network/Probe.php

@ -20,9 +20,10 @@ use Friendica\Protocol\Feed;
use Friendica\Util\XML;
use dba;
use DomXPath;
use DOMXPath;
use DOMDocument;
require_once 'include/dba.php';
require_once 'include/network.php';
require_once "include/crypto.php";

121
src/Object/Image.php

@ -111,7 +111,7 @@ class Image
/**
* @brief Maps Mime types to Imagick formats
* @return arr With with image formats (mime type as key)
* @return array With with image formats (mime type as key)
*/
public static function getFormatsMap()
{
@ -142,7 +142,7 @@ class Image
* Setup the image to the format it will be saved to
*/
$map = self::getFormatsMap();
$format = $map[$type];
$format = $map[$this->type];
$this->image->setFormat($format);
// Always coalesce, if it is not a multi-frame image it won't hurt anyway
@ -338,42 +338,7 @@ class Image
}
}
if ($this->isImagick()) {
/*
* If it is not animated, there will be only one iteration here,
* so don't bother checking
*/
// Don't forget to go back to the first frame
$this->image->setFirstIterator();
do {
// FIXME - implement horizantal bias for scaling as in followin GD functions
// to allow very tall images to be constrained only horizontally.
$this->image->scaleImage($dest_width, $dest_height);
} while ($this->image->nextImage());
// These may not be necessary any more
$this->width = $this->image->getImageWidth();
$this->height = $this->image->getImageHeight();
return;
}
$dest = imagecreatetruecolor($dest_width, $dest_height);
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') {
imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
}
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
if ($this->image) {
imagedestroy($this->image);
}
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
return $this->scale($dest_width, $dest_height);
}
/**
@ -562,23 +527,7 @@ class Image
}
}
if ($this->isImagick()) {
return $this->scaleDown($dest_width, $dest_height);
}
$dest = imagecreatetruecolor($dest_width, $dest_height);
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') {
imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
}
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
if ($this->image) {
imagedestroy($this->image);
}
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
return $this->scale($dest_width, $dest_height);
}
/**
@ -591,27 +540,59 @@ class Image
return false;
}
return $this->scale($dim, $dim);
}
/**
* @brief Scale image to target dimensions
*
* @param int $dest_width
* @param int $dest_height
* @return boolean
*/
private function scale($dest_width, $dest_height)
{
if (!$this->isValid()) {
return false;
}
if ($this->isImagick()) {
/*
* If it is not animated, there will be only one iteration here,
* so don't bother checking
*/
// Don't forget to go back to the first frame
$this->image->setFirstIterator();
do {
$this->image->scaleImage($dim, $dim);
// FIXME - implement horizontal bias for scaling as in following GD functions
// to allow very tall images to be constrained only horizontally.
$this->image->scaleImage($dest_width, $dest_height);
} while ($this->image->nextImage());
return;
}
$dest = imagecreatetruecolor($dim, $dim);
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') {
imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
}
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height);
if ($this->image) {
imagedestroy($this->image);
// These may not be necessary anymore
$this->width = $this->image->getImageWidth();
$this->height = $this->image->getImageHeight();
} else {
$dest = imagecreatetruecolor($dest_width, $dest_height);
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') {
imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
}
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $this->width, $this->height);
if ($this->image) {
imagedestroy($this->image);
}
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
return true;
}
/**

1
src/Object/Post.php

@ -11,6 +11,7 @@ use Friendica\Database\DBM;
use Friendica\Model\Contact;
use dba;
require_once 'include/dba.php';
require_once 'include/text.php';
require_once 'boot.php';
require_once 'include/conversation.php';

19
src/ParseUrl.php

@ -10,9 +10,10 @@ use Friendica\Object\Image;
use Friendica\Util\XML;
use dba;
use DomXPath;
use DOMXPath;
use DOMDocument;
require_once 'include/dba.php';
require_once "include/network.php";
require_once "include/oembed.php";
@ -24,10 +25,10 @@ class ParseUrl
/**
* @brief Search for chached embeddable data of an url otherwise fetch it
*
* @param type $url The url of the page which should be scraped
* @param type $no_guessing If true the parse doens't search for
* @param string $url The url of the page which should be scraped
* @param bool $no_guessing If true the parse doens't search for
* preview pictures
* @param type $do_oembed The false option is used by the function fetch_oembed()
* @param bool $do_oembed The false option is used by the function fetch_oembed()
* to avoid endless loops
*
* @return array which contains needed data for embedding
@ -88,12 +89,12 @@ class ParseUrl
* like \<title\>Awesome Title\</title\> or
* \<meta name="description" content="An awesome description"\>
*
* @param type $url The url of the page which should be scraped
* @param type $no_guessing If true the parse doens't search for
* @param string $url The url of the page which should be scraped
* @param bool $no_guessing If true the parse doens't search for
* preview pictures
* @param type $do_oembed The false option is used by the function fetch_oembed()
* @param bool $do_oembed The false option is used by the function fetch_oembed()
* to avoid endless loops
* @param type $count Internal counter to avoid endless loops
* @param int $count Internal counter to avoid endless loops
*
* @return array which contains needed data for embedding
* string 'url' => The url of the parsed page
@ -215,7 +216,7 @@ class ParseUrl
XML::deleteNode($doc, "ol");
XML::deleteNode($doc, "ul");
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$list = $xpath->query("//meta[@content]");
foreach ($list as $node) {

30
src/Protocol/DFRN.php

@ -8,7 +8,6 @@
*/
namespace Friendica\Protocol;
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\System;
use Friendica\Core\Worker;
@ -22,8 +21,10 @@ use Friendica\Util\XML;
use dba;
use DOMDocument;
use DomXPath;
use DOMXPath;
require_once 'boot.php';
require_once 'include/dba.php';
require_once "include/enotify.php";
require_once "include/threads.php";
require_once "include/items.php";
@ -1298,7 +1299,7 @@ class DFRN
case 2:
// RINO 2 based on php-encryption
try {
$key = \Crypto::createNewRandomKey();
$key = \Crypto::CreateNewRandomKey();
} catch (\CryptoTestFailedException $ex) {
logger('Cannot safely create a key');
return -4;
@ -1307,7 +1308,7 @@ class DFRN
return -5;
}
try {
$data = \Crypto::encrypt($postvars['data'], $key);
$data = \Crypto::Encrypt($postvars['data'], $key);
} catch (\CryptoTestFailedException $ex) {
logger('Cannot safely perform encryption');
return -6;
@ -1442,7 +1443,7 @@ class DFRN
* @param bool $onlyfetch Should the data only be fetched or should it update the contact record as well
* @param string $xml optional, default empty
*
* @return Returns an array with relevant data of the author
* @return array Relevant data of the author
* @todo Find good type-hints for all parameter
*/
private static function fetchauthor($xpath, $context, $importer, $element, $onlyfetch, $xml = "")
@ -1691,7 +1692,7 @@ class DFRN
*
* @param object $xpath XPath object
* @param object $activity Activity object
* @param text $element element name
* @param string $element element name
*
* @return string XML string
* @todo Find good type-hints for all parameter
@ -2499,19 +2500,20 @@ class DFRN
/// @todo Do we really need this check for HTML elements? (It was copied from the old function)
if ((strpos($item['body'], '<') !== false) && (strpos($item['body'], '>') !== false)) {
$base_url = get_app()->get_baseurl();
$item['body'] = reltoabs($item['body'], $base_url);
$item['body'] = html2bb_video($item['body']);
$item['body'] = oembed_html2bbcode($item['body']);
$config = HTMLPurifier_Config::createDefault();
$config = \HTMLPurifier_Config::createDefault();
$config->set('Cache.DefinitionImpl', null);
// we shouldn't need a whitelist, because the bbcode converter
// will strip out any unsupported tags.
$purifier = new HTMLPurifier($config);
$purifier = new \HTMLPurifier($config);
$item['body'] = $purifier->purify($item['body']);
$item['body'] = @html2bbcode($item['body']);
@ -2962,9 +2964,9 @@ class DFRN
/**
* @brief Imports a DFRN message
*
* @param text $xml The DFRN message
* @param array $importer Record of the importer user mixed with contact of the content
* @param bool $sort_by_date Is used when feeds are polled
* @param string $xml The DFRN message
* @param array $importer Record of the importer user mixed with contact of the content
* @param bool $sort_by_date Is used when feeds are polled
* @return integer Import status
* @todo set proper type-hints
*/
@ -2977,7 +2979,7 @@ class DFRN
$doc = new DOMDocument();
@$doc->loadXML($xml);
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$xpath->registerNamespace("atom", NAMESPACE_ATOM1);
$xpath->registerNamespace("thr", NAMESPACE_THREAD);
$xpath->registerNamespace("at", NAMESPACE_TOMB);
@ -3013,7 +3015,7 @@ class DFRN
// The account type is new since 3.5.1
if ($xpath->query("/atom:feed/dfrn:account_type")->length > 0) {
$accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue);
$accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()")->item(0)->nodeValue);
if ($accounttype != $importer["contact-type"]) {
dba::update('contact', array('contact-type' => $accounttype), array('id' => $importer["id"]));
@ -3022,7 +3024,7 @@ class DFRN
// is it a public forum? Private forums aren't supported with this method
// This is deprecated since 3.5.1
$forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue);
$forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()")->item(0)->nodeValue);
if ($forum != $importer["forum"]) {
$condition = array('`forum` != ? AND `id` = ?', $forum, $importer["id"]);

33
src/Protocol/Diaspora.php

@ -27,6 +27,7 @@ use Friendica\Util\XML;
use dba;
use SimpleXMLElement;
require_once 'include/dba.php';
require_once 'include/items.php';
require_once 'include/bb2diaspora.php';
require_once 'include/datetime.php';
@ -664,7 +665,6 @@ class Diaspora
} elseif (!in_array($fieldname, array("author_signature", "parent_author_signature", "target_author_signature"))) {
if ($signed_data != "") {
$signed_data .= ";";
$signed_data_parent .= ";";
}
$signed_data .= $entry;
@ -927,10 +927,12 @@ class Diaspora
/**
* @brief Get a contact id for a given handle
*
* @todo Move to Friendica\Model\Contact
*
* @param int $uid The user id
* @param string $handle The handle in the format user@domain.tld
*
* @return The contact id
* @return int Contact id
*/
private static function contactByHandle($uid, $handle)
{
@ -1091,7 +1093,7 @@ class Diaspora
preg_replace_callback(
$expression,
function ($match) use ($item) {
return self::fetchGuidSub($match, $item);
self::fetchGuidSub($match, $item);
},
$item["body"]
);
@ -1099,7 +1101,7 @@ class Diaspora
preg_replace_callback(
"&\[url=/posts/([^\[\]]*)\](.*)\[\/url\]&Usi",
function ($match) use ($item) {
return self::fetchGuidSub($match, $item);
self::fetchGuidSub($match, $item);
},
$item["body"]
);
@ -1112,7 +1114,7 @@ class Diaspora
* @param string $body The item body to replace links from
* @param string $author_link The author link for missing local contact fallback
*
* @return the replaced string
* @return string the replaced string
*/
public static function replacePeopleGuid($body, $author_link)
{
@ -2308,16 +2310,18 @@ class Diaspora
$A = "[url=".$self[0]["url"]."]".$self[0]["name"]."[/url]";
$B = "[url=".$contact["url"]."]".$contact["name"]."[/url]";
$BPhoto = "[url=".$contact["url"]."][img]".$contact["thumb"]."[/img][/url]";
$arr["body"] = sprintf(t("%1$s is now friends with %2$s"), $A, $B)."\n\n\n".$Bphoto;
$arr["body"] = sprintf(t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$BPhoto;
$arr["object"] = self::constructNewFriendObject($contact);
$arr["last-child"] = 1;
$arr["allow_cid"] = $user[0]["allow_cid"];
$arr["allow_gid"] = $user[0]["allow_gid"];
$arr["deny_cid"] = $user[0]["deny_cid"];
$arr["deny_gid"] = $user[0]["deny_gid"];
$user = dba::select('user', ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid'], ['uid' => $importer["uid"]], ['limit' => 1]);
$arr["allow_cid"] = $user["allow_cid"];
$arr["allow_gid"] = $user["allow_gid"];
$arr["deny_cid"] = $user["deny_cid"];
$arr["deny_gid"] = $user["deny_gid"];
$i = item_store($arr);
if ($i) {
@ -3206,7 +3210,7 @@ class Diaspora
$return_code = self::transmit($owner, $contact, $envelope, $public_batch, false, $guid);
}
logger("guid: ".$item["guid"]." result ".$return_code, LOGGER_DEBUG);
logger("guid: ".$guid." result ".$return_code, LOGGER_DEBUG);
return $return_code;
}
@ -4047,6 +4051,11 @@ class Diaspora
return;
}
$owner = User::getOwnerDataById($uid);
if (!$owner) {
return;
}
if (!$recips) {
$recips = q(
"SELECT `id`,`name`,`network`,`pubkey`,`notify` FROM `contact` WHERE `network` = '%s'
@ -4065,7 +4074,7 @@ class Diaspora
foreach ($recips as $recip) {
logger("Send updated profile data for user ".$uid." to contact ".$recip["id"], LOGGER_DEBUG);
self::buildAndTransmit($profile, $recip, "profile", $message, false, "", true);
self::buildAndTransmit($owner, $recip, "profile", $message, false, "", true);
}
}

16
src/Protocol/Feed.php

@ -10,10 +10,11 @@ use Friendica\Database\DBM;
use Friendica\Core\System;
use dba;
use DOMDocument;
use DomXPath;
use DOMXPath;
require_once("include/html2bbcode.php");
require_once("include/items.php");
require_once 'include/dba.php';
require_once 'include/html2bbcode.php';
require_once 'include/items.php';
/**
* @brief This class contain functions to import feeds
@ -31,7 +32,7 @@ class Feed {
*
* @return array In simulation mode it returns the header and the first item
*/
function import($xml, $importer, &$contact, &$hub, $simulate = false) {
public static function import($xml, $importer, &$contact, &$hub, $simulate = false) {
$a = get_app();
@ -55,7 +56,7 @@ class Feed {
$doc = new DOMDocument();
@$doc->loadXML(trim($xml));
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
$xpath->registerNamespace('dc', "http://purl.org/dc/elements/1.1/");
$xpath->registerNamespace('content', "http://purl.org/rss/1.0/modules/content/");
@ -126,7 +127,7 @@ class Feed {
if ($value != "") {
$author["author-nick"] = $value;
}
$value = $xpath->evaluate('atom:author/poco:address/poco:formatted/text()', $context)->item(0)->nodeValue;
$value = $xpath->evaluate('atom:author/poco:address/poco:formatted/text()')->item(0)->nodeValue;
if ($value != "") {
$author["author-location"] = $value;
}
@ -298,9 +299,6 @@ class Feed {
if ($creator != "") {
$item["author-name"] = $creator;
}
if ($pubDate != "") {
$item["edited"] = $item["created"] = $pubDate;
}
$creator = $xpath->query('dc:creator/text()', $entry)->item(0)->nodeValue;
if ($creator != "") {

16
src/Protocol/OStatus.php

@ -17,8 +17,9 @@ use Friendica\Util\Lock;
use Friendica\Util\XML;
use dba;
use DOMDocument;
use DomXPath;
use DOMXPath;
require_once 'include/dba.php';
require_once 'include/threads.php';
require_once 'include/html2bbcode.php';
require_once 'include/bbcode.php';
@ -251,7 +252,7 @@ class OStatus
$doc = new DOMDocument();
@$doc->loadXML($xml);
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
$xpath->registerNamespace('thr', NAMESPACE_THREAD);
$xpath->registerNamespace('georss', NAMESPACE_GEORSS);
@ -329,7 +330,7 @@ class OStatus
$doc = new DOMDocument();
@$doc->loadXML($xml);
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
$xpath->registerNamespace('thr', NAMESPACE_THREAD);
$xpath->registerNamespace('georss', NAMESPACE_GEORSS);
@ -739,7 +740,7 @@ class OStatus
if (!@$doc->loadHTML($conversation_data['body'])) {
return;
}
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$links = $xpath->query('//link');
if ($links) {
@ -779,7 +780,7 @@ class OStatus
$doc = new DOMDocument();
@$doc->loadXML($xml);
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
$xpath->registerNamespace('thr', NAMESPACE_THREAD);
$xpath->registerNamespace('ostatus', NAMESPACE_OSTATUS);
@ -929,7 +930,7 @@ class OStatus
if (!@$doc->loadHTML($related_data['body'])) {
return;
}
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$atom_file = '';
@ -1023,8 +1024,7 @@ class OStatus
$orig_created = $xpath->query('atom:published/text()', $activityobjects)->item(0)->nodeValue;
$orig_edited = $xpath->query('atom:updated/text()', $activityobjects)->item(0)->nodeValue;
$orig_contact = $contact;
$orig_author = self::fetchAuthor($xpath, $activityobjects, $importer, $orig_contact, false);
$orig_author = self::fetchAuthor($xpath, $activityobjects, $importer, $dummy, false);
$item["author-name"] = $orig_author["author-name"];
$item["author-link"] = $orig_author["author-link"];

9
src/Protocol/PortableContact.php

@ -17,9 +17,10 @@ use Friendica\Model\Profile;
use Friendica\Network\Probe;
use dba;
use DOMDocument;
use DomXPath;
use DOMXPath;
use Exception;
require_once 'include/dba.php';
require_once 'include/datetime.php';
require_once 'include/network.php';
require_once 'include/html2bbcode.php';
@ -512,7 +513,7 @@ class PortableContact
$doc = new DOMDocument();
@$doc->loadXML($feedret["body"]);
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$xpath->registerNamespace('atom', "http://www.w3.org/2005/Atom");
$entries = $xpath->query('/atom:feed/atom:entry');
@ -768,7 +769,7 @@ class PortableContact
$doc = new DOMDocument();
@$doc->loadHTML($body);
$xpath = new DomXPath($doc);
$xpath = new DOMXPath($doc);
$list = $xpath->query("//meta[@name]");
@ -815,7 +816,7 @@ class PortableContact
return false;
}
$server["site_name"] = $xpath->evaluate($element."//head/title/text()", $context)->item(0)->nodeValue;
$server["site_name"] = $xpath->evaluate("//head/title/text()")->item(0)->nodeValue;
return $server;
}

5
src/Util/ExAuth.php

@ -40,6 +40,7 @@ use Friendica\Database\DBM;
use Friendica\Model\User;
use dba;
require_once 'include/dba.php';
require_once 'include/dba.php';
class ExAuth
@ -313,7 +314,7 @@ class ExAuth
}
$file = $lockpath . DIRECTORY_SEPARATOR . $host;
if (Pidfile::isRunningProcess($file)) {
if (PidFile::isRunningProcess($file)) {
if (PidFile::killProcess($file)) {
$this->writeLog(LOG_INFO, 'Old process was successfully killed');
} else {
@ -323,7 +324,7 @@ class ExAuth
}
// Now it is safe to create the pid file
Pidfile::create($file);
PidFile::create($file);
}
/**

4
src/Util/Lock.php

@ -14,6 +14,8 @@ use Friendica\Database\DBM;
use Memcache;
use dba;
require_once 'include/dba.php';
/**
* @brief This class contain Functions for preventing parallel execution of functions
*/
@ -62,7 +64,7 @@ class Lock
$file = $temp.'/'.$fn_name.'.sem';
if (!file_exists($file)) {
file_put_contents($file, $function);
file_put_contents($file, $fn_name);
}
return ftok($file, 'f');

2
src/Util/Pidfile.php

@ -7,7 +7,7 @@ namespace Friendica\Util;
/**
* @brief Pidfile class
*/
class Pidfile
class PidFile
{
/**
* @brief Read the pid from a given pid file

16
src/Util/XML.php

@ -4,7 +4,7 @@
*/
namespace Friendica\Util;
use DomXPath;
use DOMXPath;
use SimpleXMLElement;
/**