use Friendica\App;
use Friendica\Core\System;
+use Friendica\Core\Cache;
use Friendica\Core\Config;
+use Friendica\Database\DBM;
+use Friendica\Object\Profile;
+use Friendica\Util\XML;
use dba;
-use dbm;
-use Cache;
-use xml;
-
use DomXPath;
use DOMDocument;
return array();
}
- $links = xml::element_to_array($xrd);
+ $links = XML::element_to_array($xrd);
if (!isset($links["xrd"]["link"])) {
logger("No xrd data found for ".$host, LOGGER_DEBUG);
return array();
public static function uri($uri, $network = "", $uid = -1, $cache = true) {
if ($cache) {
- $result = Cache::get("probe_url:".$network.":".$uri);
+ $result = Cache::get("Probe::uri:".$network.":".$uri);
if (!is_null($result)) {
return $result;
}
// Only store into the cache if the value seems to be valid
if (!in_array($data['network'], array(NETWORK_PHANTOM, NETWORK_MAIL))) {
- Cache::set("probe_url:".$network.":".$uri, $data, CACHE_DAY);
+ Cache::set("Probe::uri:".$network.":".$uri, $data, CACHE_DAY);
/// @todo temporary fix - we need a real contact update function that updates only changing fields
/// The biggest problem is the avatar picture that could have a reduced image size.
}
}
- $fields['updated'] = dbm::date();
+ $fields['updated'] = DBM::date();
$condition = array('nurl' => normalise_link($data["url"]));
'confirm' => $data['confirm'],
'poco' => $data['poco'],
'network' => $data['network'],
- 'success_update' => dbm::date());
+ 'success_update' => DBM::date());
$fieldnames = array();
return false;
}
- $xrd_arr = xml::element_to_array($xrd);
+ $xrd_arr = XML::element_to_array($xrd);
if (!isset($xrd_arr["xrd"]["link"])) {
logger("No XML webfinger links for ".$url, LOGGER_DEBUG);
return false;
$data["nick"] = $json["nick"];
}
+ if (!empty($json["guid"])) {
+ $data["guid"] = $json["guid"];
+ }
+
if (!empty($json["comm"])) {
$data["community"] = $json["comm"];
}
* @return array DFRN data
*/
private static function dfrn($webfinger) {
-
$hcard_url = "";
$data = array();
foreach ($webfinger["links"] as $link) {
if (is_array($webfinger["aliases"])) {
foreach ($webfinger["aliases"] as $alias) {
- if (substr($alias, 0, 5) == 'acct:') {
+ if (normalise_link($alias) != normalise_link($data["url"]) && ! strstr($alias, "@")) {
+ $data["alias"] = $alias;
+ } elseif (substr($alias, 0, 5) == 'acct:') {
$data["addr"] = substr($alias, 5);
}
}
* @return array Diaspora data
*/
private static function diaspora($webfinger) {
-
$hcard_url = "";
$data = array();
foreach ($webfinger["links"] as $link) {
foreach ($webfinger["aliases"] as $alias) {
if (normalise_link($alias) != normalise_link($data["url"]) && ! strstr($alias, "@")) {
$data["alias"] = $alias;
+ } elseif (substr($alias, 0, 5) == 'acct:') {
+ $data["addr"] = substr($alias, 5);
}
}
}
+ if (!empty($webfinger["subject"]) && (substr($webfinger["subject"], 0, 5) == 'acct:')) {
+ $data["addr"] = substr($webfinger["subject"], 5);
+ }
+
// Fetch further information from the hcard
$data = self::pollHcard($hcard_url, $data);
*/
private static function ostatus($webfinger, $short = false) {
$data = array();
+
if (is_array($webfinger["aliases"])) {
foreach ($webfinger["aliases"] as $alias) {
- if (strstr($alias, "@")) {
+ if (strstr($alias, "@") && !strstr(normalise_link($alias), "http://")) {
$data["addr"] = str_replace('acct:', '', $alias);
}
}
}
- if (is_string($webfinger["subject"]) && strstr($webfinger["subject"], "@")) {
+ if (is_string($webfinger["subject"]) && strstr($webfinger["subject"], "@") &&
+ !strstr(normalise_link($webfinger["subject"]), "http://")) {
$data["addr"] = str_replace('acct:', '', $webfinger["subject"]);
}
+
$pubkey = "";
if (is_array($webfinger["links"])) {
foreach ($webfinger["links"] as $link) {
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1", intval($uid));
- if (dbm::is_result($x) && dbm::is_result($r)) {
+ if (DBM::is_result($x) && DBM::is_result($r)) {
$mailbox = construct_mailbox_name($r[0]);
$password = '';
openssl_private_decrypt(hex2bin($r[0]['pass']), $password, $x[0]['prvkey']);