use Friendica\Model\Profile;
use Friendica\Protocol\Email;
use Friendica\Protocol\Feed;
+use Friendica\Protocol\ActivityPub;
use Friendica\Util\Crypto;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
$uid = local_user();
}
- $data = self::detect($uri, $network, $uid);
+ if ($network != Protocol::ACTIVITYPUB) {
+ $data = self::detect($uri, $network, $uid);
+ } else {
+ $data = null;
+ }
+
+ if (in_array(defaults($data, 'network', ''), ['', Protocol::PHANTOM])) {
+ $ap_profile = ActivityPub::fetchProfile($uri);
+ if (!empty($ap_profile) && ($ap_profile['network'] == Protocol::ACTIVITYPUB)) {
+ $data = $ap_profile;
+ }
+ }
if (!isset($data["url"])) {
$data["url"] = $uri;
}
$prof_data = [];
+
+ if (empty($data["addr"]) || empty($data["nick"])) {
+ $probe_data = self::uri($profile_link);
+ $data["addr"] = defaults($data, "addr", $probe_data["addr"]);
+ $data["nick"] = defaults($data, "nick", $probe_data["nick"]);
+ }
+
$prof_data["addr"] = $data["addr"];
$prof_data["nick"] = $data["nick"];
$prof_data["dfrn-request"] = $data["request"];
return false;
}
- $x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid));
+ $user = DBA::selectFirst('user', ['prvkey'], ['uid' => $uid]);
- $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1", intval($uid));
+ $condition = ["`uid` = ? AND `server` != ''", $uid];
+ $fields = ['pass', 'user', 'server', 'port', 'ssltype', 'mailbox'];
+ $mailacct = DBA::selectFirst('mailacct', $fields, $condition);
- if (!DBA::isResult($x) || !DBA::isResult($r)) {
+ if (!DBA::isResult($user) || !DBA::isResult($mailacct)) {
return false;
}
- $mailbox = Email::constructMailboxName($r[0]);
+ $mailbox = Email::constructMailboxName($mailacct);
$password = '';
- openssl_private_decrypt(hex2bin($r[0]['pass']), $password, $x[0]['prvkey']);
- $mbox = Email::connect($mailbox, $r[0]['user'], $password);
+ openssl_private_decrypt(hex2bin($mailacct['pass']), $password, $user['prvkey']);
+ $mbox = Email::connect($mailbox, $mailacct['user'], $password);
if (!$mbox) {
return false;
}
if (!empty($mbox)) {
imap_close($mbox);
}
-
return $data;
}