APContact: Added follower count, following count and count of posts

This commit is contained in:
Michael 2019-12-11 00:05:50 +00:00
parent 9c1f652008
commit 911a854255
3 changed files with 38 additions and 3 deletions

View file

@ -1,6 +1,6 @@
-- ------------------------------------------ -- ------------------------------------------
-- Friendica 2019.12-dev (Dalmatian Bellflower) -- Friendica 2019.12-rc (Dalmatian Bellflower)
-- DB_UPDATE_VERSION 1324 -- DB_UPDATE_VERSION 1325
-- ------------------------------------------ -- ------------------------------------------
@ -66,6 +66,9 @@ CREATE TABLE IF NOT EXISTS `apcontact` (
`pubkey` text COMMENT '', `pubkey` text COMMENT '',
`baseurl` varchar(255) COMMENT 'baseurl of the ap contact', `baseurl` varchar(255) COMMENT 'baseurl of the ap contact',
`generator` varchar(255) COMMENT 'Name of the contact\'s system', `generator` varchar(255) COMMENT 'Name of the contact\'s system',
`following_count` int unsigned DEFAULT 0 COMMENT 'Number of following contacts',
`followers_count` int unsigned DEFAULT 0 COMMENT 'Number of followers',
`statuses_count` int unsigned DEFAULT 0 COMMENT 'Number of posts',
`updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '', `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
PRIMARY KEY(`url`), PRIMARY KEY(`url`),
INDEX `addr` (`addr`(32)), INDEX `addr` (`addr`(32)),

View file

@ -203,6 +203,35 @@ class APContact extends BaseObject
$apcontact['generator'] = JsonLD::fetchElement($compacted['as:generator'], 'as:name', '@value'); $apcontact['generator'] = JsonLD::fetchElement($compacted['as:generator'], 'as:name', '@value');
} }
if (!empty($apcontact['following'])) {
$data = ActivityPub::fetchContent($apcontact['following']);
if (!empty($data)) {
if (!empty($data['totalItems'])) {
$apcontact['following_count'] = $data['totalItems'];
}
}
}
if (!empty($apcontact['followers'])) {
$data = ActivityPub::fetchContent($apcontact['followers']);
if (!empty($data)) {
if (!empty($data['totalItems'])) {
$apcontact['followers_count'] = $data['totalItems'];
}
}
}
if (!empty($apcontact['outbox'])) {
$data = ActivityPub::fetchContent($apcontact['outbox']);
if (!empty($data)) {
if (!empty($data['totalItems'])) {
$apcontact['statuses_count'] = $data['totalItems'];
}
}
}
/*
$apcontact['inbox'] = JsonLD::fetchElement($compacted, 'ldp:inbox', '@id');
*/
// To-Do // To-Do
// Unhandled // Unhandled

View file

@ -34,7 +34,7 @@
use Friendica\Database\DBA; use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) { if (!defined('DB_UPDATE_VERSION')) {
define('DB_UPDATE_VERSION', 1324); define('DB_UPDATE_VERSION', 1325);
} }
return [ return [
@ -102,6 +102,9 @@ return [
"pubkey" => ["type" => "text", "comment" => ""], "pubkey" => ["type" => "text", "comment" => ""],
"baseurl" => ["type" => "varchar(255)", "comment" => "baseurl of the ap contact"], "baseurl" => ["type" => "varchar(255)", "comment" => "baseurl of the ap contact"],
"generator" => ["type" => "varchar(255)", "comment" => "Name of the contact's system"], "generator" => ["type" => "varchar(255)", "comment" => "Name of the contact's system"],
"following_count" => ["type" => "int unsigned", "default" => 0, "comment" => "Number of following contacts"],
"followers_count" => ["type" => "int unsigned", "default" => 0, "comment" => "Number of followers"],
"statuses_count" => ["type" => "int unsigned", "default" => 0, "comment" => "Number of posts"],
"updated" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""] "updated" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""]
], ],
"indexes" => [ "indexes" => [