<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Module;
use Friendica\BaseModule;
-use Friendica\Core\Protocol;
use Friendica\Core\System;
-use Friendica\Database\DBA;
use Friendica\DI;
+use Friendica\Model\APContact;
use Friendica\Model\User;
/**
if (isset($this->parameters['nick'])) {
// Get infos about a specific nick (public)
$which = $this->parameters['nick'];
- } elseif (local_user() && isset($this->parameters['profile']) && DI::args()->get(2) == 'view') {
+ } elseif (DI::userSession()->getLocalUserId() && isset($this->parameters['profile']) && DI::args()->get(2) == 'view') {
// view infos about a known profile (needs a login)
$which = $a->getLoggedInUserNickname();
} else {
}
if (!($owner['hide-friends'] ?? false)) {
- $json_info['contacts'] = DBA::count('contact',
- [
- 'uid' => $owner['uid'],
- 'self' => 0,
- 'blocked' => 0,
- 'pending' => 0,
- 'hidden' => 0,
- 'archive' => 0,
- 'network' => [Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS]
- ]);
+ $apcontact = APContact::getByURL($owner['url']);
+ $json_info['contacts'] = max($apcontact['following_count'], $apcontact['followers_count']);
}
// We display the last activity (post or login), reduced to year and week number
- $last_active = 0;
- $condition = ['uid' => $owner['uid'], 'self' => true];
- $contact = DBA::selectFirst('contact', ['last-item'], $condition);
- if (DBA::isResult($contact)) {
- $last_active = strtotime($contact['last-item']);
- }
-
- $condition = ['uid' => $owner['uid']];
- $user = DBA::selectFirst('user', ['login_date'], $condition);
- if (DBA::isResult($user)) {
- if ($last_active < strtotime($user['login_date'])) {
- $last_active = strtotime($user['login_date']);
- }
+ $last_active = strtotime($owner['last-item']);
+ if ($owner['last-activity'] && $last_active < strtotime($owner['last-activity'])) {
+ $last_active = strtotime($owner['last-activity']);
}
$json_info['last-activity'] = date('o-W', $last_active);
$profile_fields = ['about', 'locality', 'region', 'postal-code', 'country-name', 'xmpp', 'matrix'];
foreach ($profile_fields as $field) {
if (!empty($owner[$field])) {
- $json_info["$field"] = $owner[$field];
+ $json_info[$field] = $owner[$field];
}
}