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

Fix phpstan errors
This commit is contained in:
Michael Vogel 2017-12-18 07:28:23 +01:00 committed by GitHub
commit fa11959919
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 273 additions and 210 deletions

View File

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

View File

@ -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 $text
* @param string $base base url * @param string $base base url

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -9,6 +9,8 @@ use Friendica\Database\DBM;
use dba; use dba;
require_once "boot.php"; require_once "boot.php";
require_once 'include/dba.php';
require_once 'include/enotify.php';
require_once "include/text.php"; require_once "include/text.php";
/** /**
@ -565,7 +567,7 @@ class DBStructure {
private static function createIndex($indexname, $fieldnames, $method = "ADD") { private static function createIndex($indexname, $fieldnames, $method = "ADD") {
$method = strtoupper(trim($method)); $method = strtoupper(trim($method));
if ($method!="" && $method!="ADD") { 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") { if ($fieldnames[0] == "UNIQUE") {

View File

@ -20,6 +20,7 @@ use Friendica\Protocol\Salmon;
use dba; use dba;
require_once 'boot.php'; require_once 'boot.php';
require_once 'include/dba.php';
require_once 'include/text.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. * 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 * @param array $contact contact to mark for archival
* @return type * @return null
*/ */
public static function markForArchival(array $contact) public static function markForArchival(array $contact)
{ {

View File

@ -17,6 +17,7 @@ use dba;
use Exception; use Exception;
require_once 'include/datetime.php'; require_once 'include/datetime.php';
require_once 'include/dba.php';
require_once 'include/network.php'; require_once 'include/network.php';
require_once 'include/html2bbcode.php'; require_once 'include/html2bbcode.php';
@ -635,7 +636,7 @@ class GContact
/** /**
* @brief Replace alternate OStatus user format with the primary one * @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 * @return void
*/ */
public static function fixAlternateContactAddress(&$contact) public static function fixAlternateContactAddress(&$contact)
@ -655,7 +656,7 @@ class GContact
/** /**
* @brief Fetch the gcontact id, add an entry if not existed * @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 * @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 * @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 * @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 * @brief Updates the gcontact entry from probe
* *
* @param str $url profile link * @param string $url profile link
* @return void * @return void
*/ */
public static function updateFromProbe($url) 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. * 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 * @return void
*/ */
public static function fetchGsUsers($server) public static function fetchGsUsers($server)

View File

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

View File

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

View File

@ -21,6 +21,7 @@ use Exception;
require_once 'boot.php'; require_once 'boot.php';
require_once 'include/crypto.php'; require_once 'include/crypto.php';
require_once 'include/dba.php';
require_once 'include/enotify.php'; require_once 'include/enotify.php';
require_once 'include/network.php'; require_once 'include/network.php';
require_once 'library/openid.php'; require_once 'library/openid.php';
@ -32,6 +33,37 @@ require_once 'include/text.php';
*/ */
class User 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 * @brief Returns the default group for a given user and network
* *
@ -186,7 +218,7 @@ class User
$_SESSION['register'] = 1; $_SESSION['register'] = 1;
$_SESSION['openid'] = $openid_url; $_SESSION['openid'] = $openid_url;
$openid = new LightOpenID; $openid = new \LightOpenID;
$openid->identity = $openid_url; $openid->identity = $openid_url;
$openid->returnUrl = System::baseUrl() . '/openid'; $openid->returnUrl = System::baseUrl() . '/openid';
$openid->required = array('namePerson/friendly', 'contact/email', 'namePerson'); $openid->required = array('namePerson/friendly', 'contact/email', 'namePerson');

View File

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

View File

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

View File

@ -111,7 +111,7 @@ class Image
/** /**
* @brief Maps Mime types to Imagick formats * @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() public static function getFormatsMap()
{ {
@ -142,7 +142,7 @@ class Image
* Setup the image to the format it will be saved to * Setup the image to the format it will be saved to
*/ */
$map = self::getFormatsMap(); $map = self::getFormatsMap();
$format = $map[$type]; $format = $map[$this->type];
$this->image->setFormat($format); $this->image->setFormat($format);
// Always coalesce, if it is not a multi-frame image it won't hurt anyway // Always coalesce, if it is not a multi-frame image it won't hurt anyway
@ -338,42 +338,7 @@ class Image
} }
} }
return $this->scale($dest_width, $dest_height);
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);
} }
/** /**
@ -562,23 +527,7 @@ class Image
} }
} }
if ($this->isImagick()) { return $this->scale($dest_width, $dest_height);
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);
} }
/** /**
@ -591,27 +540,59 @@ class Image
return false; return false;
} }
if ($this->isImagick()) { return $this->scale($dim, $dim);
$this->image->setFirstIterator(); }
do {
$this->image->scaleImage($dim, $dim); /**
} while ($this->image->nextImage()); * @brief Scale image to target dimensions
return; *
* @param int $dest_width
* @param int $dest_height
* @return boolean
*/
private function scale($dest_width, $dest_height)
{
if (!$this->isValid()) {
return false;
} }
$dest = imagecreatetruecolor($dim, $dim); if ($this->isImagick()) {
imagealphablending($dest, false); /*
imagesavealpha($dest, true); * If it is not animated, there will be only one iteration here,
if ($this->type=='image/png') { * so don't bother checking
imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha */
// Don't forget to go back to the first frame
$this->image->setFirstIterator();
do {
// 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());
// 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);
} }
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height);
if ($this->image) { return true;
imagedestroy($this->image);
}
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
} }
/** /**

View File

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

View File

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

View File

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

View File

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

View File

@ -10,10 +10,11 @@ use Friendica\Database\DBM;
use Friendica\Core\System; use Friendica\Core\System;
use dba; use dba;
use DOMDocument; use DOMDocument;
use DomXPath; use DOMXPath;
require_once("include/html2bbcode.php"); require_once 'include/dba.php';
require_once("include/items.php"); require_once 'include/html2bbcode.php';
require_once 'include/items.php';
/** /**
* @brief This class contain functions to import feeds * @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 * @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(); $a = get_app();
@ -55,7 +56,7 @@ class Feed {
$doc = new DOMDocument(); $doc = new DOMDocument();
@$doc->loadXML(trim($xml)); @$doc->loadXML(trim($xml));
$xpath = new DomXPath($doc); $xpath = new DOMXPath($doc);
$xpath->registerNamespace('atom', NAMESPACE_ATOM1); $xpath->registerNamespace('atom', NAMESPACE_ATOM1);
$xpath->registerNamespace('dc', "http://purl.org/dc/elements/1.1/"); $xpath->registerNamespace('dc', "http://purl.org/dc/elements/1.1/");
$xpath->registerNamespace('content', "http://purl.org/rss/1.0/modules/content/"); $xpath->registerNamespace('content', "http://purl.org/rss/1.0/modules/content/");
@ -126,7 +127,7 @@ class Feed {
if ($value != "") { if ($value != "") {
$author["author-nick"] = $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 != "") { if ($value != "") {
$author["author-location"] = $value; $author["author-location"] = $value;
} }
@ -298,9 +299,6 @@ class Feed {
if ($creator != "") { if ($creator != "") {
$item["author-name"] = $creator; $item["author-name"] = $creator;
} }
if ($pubDate != "") {
$item["edited"] = $item["created"] = $pubDate;
}
$creator = $xpath->query('dc:creator/text()', $entry)->item(0)->nodeValue; $creator = $xpath->query('dc:creator/text()', $entry)->item(0)->nodeValue;
if ($creator != "") { if ($creator != "") {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
*/ */
namespace Friendica\Util; namespace Friendica\Util;
use DomXPath; use DOMXPath;
use SimpleXMLElement; use SimpleXMLElement;
/** /**
@ -176,7 +176,7 @@ class XML
* @param integer $recursion_depth recursion counter for internal use - default 0 * @param integer $recursion_depth recursion counter for internal use - default 0
* internal use, recursion counter * internal use, recursion counter
* *
* @return array | sring The array from the xml element or the string * @return array | string The array from the xml element or the string
*/ */
public static function elementToArray($xml_element, &$recursion_depth = 0) public static function elementToArray($xml_element, &$recursion_depth = 0)
{ {
@ -292,11 +292,11 @@ class XML
// Go through the tags. // Go through the tags.
$repeated_tag_index = array(); // Multiple tags with same name will be turned into an array $repeated_tag_index = array(); // Multiple tags with same name will be turned into an array
foreach ($xml_values as $data) { foreach ($xml_values as $data) {
unset($attributes, $value); // Remove existing values, or there will be trouble $tag = $data['tag'];
$type = $data['type'];
// This command will extract these variables into the foreach scope $level = $data['level'];
// tag(string), type(string), level(int), attributes(array). $attributes = isset($data['attributes']) ? $data['attributes'] : null;
extract($data); // We could use the array by itself, but this cooler. $value = isset($data['value']) ? $data['value'] : null;
$result = array(); $result = array();
$attributes_data = array(); $attributes_data = array();
@ -407,7 +407,7 @@ class XML
*/ */
public static function deleteNode(&$doc, $node) public static function deleteNode(&$doc, $node)
{ {
$xpath = new DomXPath($doc); $xpath = new DOMXPath($doc);
$list = $xpath->query("//".$node); $list = $xpath->query("//".$node);
foreach ($list as $child) { foreach ($list as $child) {
$child->parentNode->removeChild($child); $child->parentNode->removeChild($child);

View File

@ -9,6 +9,8 @@ use Friendica\Core\Worker;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use dba; use dba;
require_once 'include/dba.php';
Class Cron { Class Cron {
public static function execute($parameter = '', $generation = 0) { public static function execute($parameter = '', $generation = 0) {
global $a; global $a;

View File

@ -18,7 +18,7 @@ Class CronHooks {
foreach ($a->hooks["cron"] as $single_hook) { foreach ($a->hooks["cron"] as $single_hook) {
if ($single_hook[1] == $hook) { if ($single_hook[1] == $hook) {
logger("Calling cron hook '" . $hook . "'", LOGGER_DEBUG); logger("Calling cron hook '" . $hook . "'", LOGGER_DEBUG);
call_single_hook($a, $name, $single_hook, $data); call_single_hook($a, $hook, $single_hook);
} }
} }
return; return;

View File

@ -16,6 +16,10 @@ use Friendica\Network\Probe;
use Friendica\Protocol\PortableContact; use Friendica\Protocol\PortableContact;
use dba; use dba;
require_once 'include/dba.php';
require_once 'include/post_update.php';
require_once 'mod/nodeinfo.php';
class CronJobs class CronJobs
{ {
public static function execute($command = '') public static function execute($command = '')

View File

@ -10,6 +10,8 @@ use Friendica\Core\Config;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use dba; use dba;
require_once 'include/dba.php';
class DBClean { class DBClean {
public static function execute($stage = 0) { public static function execute($stage = 0) {

View File

@ -10,6 +10,7 @@ use Friendica\Core\System;
use Friendica\Core\Config; use Friendica\Core\Config;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\User;
use Friendica\Protocol\Diaspora; use Friendica\Protocol\Diaspora;
use Friendica\Protocol\DFRN; use Friendica\Protocol\DFRN;
use Friendica\Protocol\Email; use Friendica\Protocol\Email;
@ -140,20 +141,11 @@ class Delivery {
} }
} }
$r = q("SELECT `contact`.*, `user`.`prvkey` AS `uprvkey`, $owner = User::getOwnerDataById($uid);
`user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, if (!$owner) {
`user`.`page-flags`, `user`.`account-type`, `user`.`prvnets`
FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
intval($uid)
);
if (!DBM::is_result($r)) {
return; return;
} }
$owner = $r[0];
$walltowall = (($top_level && ($owner['id'] != $items[0]['contact-id'])) ? true : false); $walltowall = (($top_level && ($owner['id'] != $items[0]['contact-id'])) ? true : false);
$public_message = true; $public_message = true;

View File

@ -25,7 +25,7 @@ class Directory {
$dir .= "/submit"; $dir .= "/submit";
$arr = array('url' => $argv[1]); $arr = array('url' => $url);
call_hooks('globaldir_update', $arr); call_hooks('globaldir_update', $arr);

View File

@ -268,7 +268,7 @@ class DiscoverPoCo {
/** /**
* @brief Search for GNU Social user with gstools.org * @brief Search for GNU Social user with gstools.org
* *
* @param str $search User name * @param string $search User name
*/ */
private static function gsSearchUser($search) { private static function gsSearchUser($search) {

View File

@ -11,6 +11,8 @@ use Friendica\Core\Worker;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use dba; use dba;
require_once 'include/dba.php';
class Expire { class Expire {
public static function execute($param = '', $hook_name = '') { public static function execute($param = '', $hook_name = '') {
global $a; global $a;
@ -48,7 +50,7 @@ class Expire {
foreach ($a->hooks["expire"] as $hook) { foreach ($a->hooks["expire"] as $hook) {
if ($hook[1] == $hook_name) { if ($hook[1] == $hook_name) {
logger("Calling expire hook '" . $hook[1] . "'", LOGGER_DEBUG); logger("Calling expire hook '" . $hook[1] . "'", LOGGER_DEBUG);
call_single_hook($a, $name, $hook, $data); call_single_hook($a, $hook_name, $hook, $data);
} }
} }
return; return;

View File

@ -15,6 +15,7 @@ use Friendica\Protocol\OStatus;
use Friendica\Protocol\Salmon; use Friendica\Protocol\Salmon;
use dba; use dba;
require_once 'include/dba.php';
require_once 'include/queue_fn.php'; require_once 'include/queue_fn.php';
require_once 'include/html2plain.php'; require_once 'include/html2plain.php';
require_once 'include/datetime.php'; require_once 'include/datetime.php';

View File

@ -12,6 +12,7 @@ use Friendica\Protocol\Email;
use Friendica\Protocol\PortableContact; use Friendica\Protocol\PortableContact;
use dba; use dba;
require_once 'include/dba.php';
require_once 'include/follow.php'; require_once 'include/follow.php';
Class OnePoll Class OnePoll
@ -630,6 +631,7 @@ Class OnePoll
dba::update('gcontact', array('last_failure' => $updated), array('nurl' => $contact['nurl'])); dba::update('gcontact', array('last_failure' => $updated), array('nurl' => $contact['nurl']));
Contact::markForArchival($contact); Contact::markForArchival($contact);
} else { } else {
$updated = datetime_convert();
dba::update('contact', array('last-update' => $updated), array('id' => $contact['id'])); dba::update('contact', array('last-update' => $updated), array('id' => $contact['id']));
} }

View File

@ -14,6 +14,7 @@ use Friendica\Protocol\PortableContact;
use Friendica\Protocol\Salmon; use Friendica\Protocol\Salmon;
use dba; use dba;
require_once 'include/dba.php';
require_once 'include/queue_fn.php'; require_once 'include/queue_fn.php';
require_once 'include/datetime.php'; require_once 'include/datetime.php';
require_once 'include/items.php'; require_once 'include/items.php';
@ -54,7 +55,7 @@ class Queue
*/ */
$r = q("SELECT `id` FROM `queue` WHERE ((`created` > UTC_TIMESTAMP() - INTERVAL 12 HOUR AND `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE) OR (`last` < UTC_TIMESTAMP() - INTERVAL 1 HOUR)) ORDER BY `cid`, `created`"); $r = q("SELECT `id` FROM `queue` WHERE ((`created` > UTC_TIMESTAMP() - INTERVAL 12 HOUR AND `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE) OR (`last` < UTC_TIMESTAMP() - INTERVAL 1 HOUR)) ORDER BY `cid`, `created`");
call_hooks('queue_predeliver', $a, $r); call_hooks('queue_predeliver', $r);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
foreach ($r as $q_item) { foreach ($r as $q_item) {
@ -165,7 +166,7 @@ class Queue
default: default:
$params = array('owner' => $owner, 'contact' => $contact, 'queue' => $q_item, 'result' => false); $params = array('owner' => $owner, 'contact' => $contact, 'queue' => $q_item, 'result' => false);
call_hooks('queue_deliver', $a, $params); call_hooks('queue_deliver', $params);
if ($params['result']) { if ($params['result']) {
remove_queue_item($q_item['id']); remove_queue_item($q_item['id']);

View File

@ -8,6 +8,8 @@ namespace Friendica\Worker;
use Friendica\Core\Config; use Friendica\Core\Config;
use dba; use dba;
require_once 'include/dba.php';
class RemoveContact { class RemoveContact {
public static function execute($id) { public static function execute($id) {

View File

@ -10,7 +10,6 @@ return array(
'Console_Getopt' => $vendorDir . '/pear-pear.php.net/Console_Getopt/Console/Getopt.php', 'Console_Getopt' => $vendorDir . '/pear-pear.php.net/Console_Getopt/Console/Getopt.php',
'Detection\\MobileDetect' => $vendorDir . '/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php', 'Detection\\MobileDetect' => $vendorDir . '/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php',
'Friendica\\App' => $baseDir . '/src/App.php', 'Friendica\\App' => $baseDir . '/src/App.php',
'Friendica\\BaseModule' => $baseDir . '/src/BaseModule.php',
'Friendica\\BaseObject' => $baseDir . '/src/BaseObject.php', 'Friendica\\BaseObject' => $baseDir . '/src/BaseObject.php',
'Friendica\\Content\\Feature' => $baseDir . '/src/Content/Feature.php', 'Friendica\\Content\\Feature' => $baseDir . '/src/Content/Feature.php',
'Friendica\\Content\\ForumManager' => $baseDir . '/src/Content/ForumManager.php', 'Friendica\\Content\\ForumManager' => $baseDir . '/src/Content/ForumManager.php',
@ -29,7 +28,6 @@ return array(
'Friendica\\Model\\Photo' => $baseDir . '/src/Model/Photo.php', 'Friendica\\Model\\Photo' => $baseDir . '/src/Model/Photo.php',
'Friendica\\Model\\Profile' => $baseDir . '/src/Model/Profile.php', 'Friendica\\Model\\Profile' => $baseDir . '/src/Model/Profile.php',
'Friendica\\Model\\User' => $baseDir . '/src/Model/User.php', 'Friendica\\Model\\User' => $baseDir . '/src/Model/User.php',
'Friendica\\Module\\Login' => $baseDir . '/src/Module/Login.php',
'Friendica\\Network\\FKOAuth1' => $baseDir . '/src/Network/FKOAuth1.php', 'Friendica\\Network\\FKOAuth1' => $baseDir . '/src/Network/FKOAuth1.php',
'Friendica\\Network\\FKOAuthDataStore' => $baseDir . '/src/Network/FKOAuthDataStore.php', 'Friendica\\Network\\FKOAuthDataStore' => $baseDir . '/src/Network/FKOAuthDataStore.php',
'Friendica\\Network\\HTTPException' => $baseDir . '/src/Network/HTTPException.php', 'Friendica\\Network\\HTTPException' => $baseDir . '/src/Network/HTTPException.php',
@ -70,7 +68,7 @@ return array(
'Friendica\\Util\\ExAuth' => $baseDir . '/src/Util/ExAuth.php', 'Friendica\\Util\\ExAuth' => $baseDir . '/src/Util/ExAuth.php',
'Friendica\\Util\\Lock' => $baseDir . '/src/Util/Lock.php', 'Friendica\\Util\\Lock' => $baseDir . '/src/Util/Lock.php',
'Friendica\\Util\\Map' => $baseDir . '/src/Util/Map.php', 'Friendica\\Util\\Map' => $baseDir . '/src/Util/Map.php',
'Friendica\\Util\\Pidfile' => $baseDir . '/src/Util/Pidfile.php', 'Friendica\\Util\\PidFile' => $baseDir . '/src/Util/Pidfile.php',
'Friendica\\Util\\XML' => $baseDir . '/src/Util/XML.php', 'Friendica\\Util\\XML' => $baseDir . '/src/Util/XML.php',
'Friendica\\Worker\\CheckVersion' => $baseDir . '/src/Worker/CheckVersion.php', 'Friendica\\Worker\\CheckVersion' => $baseDir . '/src/Worker/CheckVersion.php',
'Friendica\\Worker\\CreateShadowEntry' => $baseDir . '/src/Worker/CreateShadowEntry.php', 'Friendica\\Worker\\CreateShadowEntry' => $baseDir . '/src/Worker/CreateShadowEntry.php',

View File

@ -63,7 +63,6 @@ class ComposerStaticInitFriendica
'Console_Getopt' => __DIR__ . '/..' . '/pear-pear.php.net/Console_Getopt/Console/Getopt.php', 'Console_Getopt' => __DIR__ . '/..' . '/pear-pear.php.net/Console_Getopt/Console/Getopt.php',
'Detection\\MobileDetect' => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php', 'Detection\\MobileDetect' => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php',
'Friendica\\App' => __DIR__ . '/../..' . '/src/App.php', 'Friendica\\App' => __DIR__ . '/../..' . '/src/App.php',
'Friendica\\BaseModule' => __DIR__ . '/../..' . '/src/BaseModule.php',
'Friendica\\BaseObject' => __DIR__ . '/../..' . '/src/BaseObject.php', 'Friendica\\BaseObject' => __DIR__ . '/../..' . '/src/BaseObject.php',
'Friendica\\Content\\Feature' => __DIR__ . '/../..' . '/src/Content/Feature.php', 'Friendica\\Content\\Feature' => __DIR__ . '/../..' . '/src/Content/Feature.php',
'Friendica\\Content\\ForumManager' => __DIR__ . '/../..' . '/src/Content/ForumManager.php', 'Friendica\\Content\\ForumManager' => __DIR__ . '/../..' . '/src/Content/ForumManager.php',
@ -82,7 +81,6 @@ class ComposerStaticInitFriendica
'Friendica\\Model\\Photo' => __DIR__ . '/../..' . '/src/Model/Photo.php', 'Friendica\\Model\\Photo' => __DIR__ . '/../..' . '/src/Model/Photo.php',
'Friendica\\Model\\Profile' => __DIR__ . '/../..' . '/src/Model/Profile.php', 'Friendica\\Model\\Profile' => __DIR__ . '/../..' . '/src/Model/Profile.php',
'Friendica\\Model\\User' => __DIR__ . '/../..' . '/src/Model/User.php', 'Friendica\\Model\\User' => __DIR__ . '/../..' . '/src/Model/User.php',
'Friendica\\Module\\Login' => __DIR__ . '/../..' . '/src/Module/Login.php',
'Friendica\\Network\\FKOAuth1' => __DIR__ . '/../..' . '/src/Network/FKOAuth1.php', 'Friendica\\Network\\FKOAuth1' => __DIR__ . '/../..' . '/src/Network/FKOAuth1.php',
'Friendica\\Network\\FKOAuthDataStore' => __DIR__ . '/../..' . '/src/Network/FKOAuthDataStore.php', 'Friendica\\Network\\FKOAuthDataStore' => __DIR__ . '/../..' . '/src/Network/FKOAuthDataStore.php',
'Friendica\\Network\\HTTPException' => __DIR__ . '/../..' . '/src/Network/HTTPException.php', 'Friendica\\Network\\HTTPException' => __DIR__ . '/../..' . '/src/Network/HTTPException.php',
@ -123,7 +121,7 @@ class ComposerStaticInitFriendica
'Friendica\\Util\\ExAuth' => __DIR__ . '/../..' . '/src/Util/ExAuth.php', 'Friendica\\Util\\ExAuth' => __DIR__ . '/../..' . '/src/Util/ExAuth.php',
'Friendica\\Util\\Lock' => __DIR__ . '/../..' . '/src/Util/Lock.php', 'Friendica\\Util\\Lock' => __DIR__ . '/../..' . '/src/Util/Lock.php',
'Friendica\\Util\\Map' => __DIR__ . '/../..' . '/src/Util/Map.php', 'Friendica\\Util\\Map' => __DIR__ . '/../..' . '/src/Util/Map.php',
'Friendica\\Util\\Pidfile' => __DIR__ . '/../..' . '/src/Util/Pidfile.php', 'Friendica\\Util\\PidFile' => __DIR__ . '/../..' . '/src/Util/Pidfile.php',
'Friendica\\Util\\XML' => __DIR__ . '/../..' . '/src/Util/XML.php', 'Friendica\\Util\\XML' => __DIR__ . '/../..' . '/src/Util/XML.php',
'Friendica\\Worker\\CheckVersion' => __DIR__ . '/../..' . '/src/Worker/CheckVersion.php', 'Friendica\\Worker\\CheckVersion' => __DIR__ . '/../..' . '/src/Worker/CheckVersion.php',
'Friendica\\Worker\\CreateShadowEntry' => __DIR__ . '/../..' . '/src/Worker/CreateShadowEntry.php', 'Friendica\\Worker\\CreateShadowEntry' => __DIR__ . '/../..' . '/src/Worker/CreateShadowEntry.php',