Merge pull request #1511 from annando/1504-contact-last-item
New field in the contact table to better detect "dead profiles"
This commit is contained in:
commit
ccba86b384
2
boot.php
2
boot.php
|
@ -18,7 +18,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||||
define ( 'FRIENDICA_CODENAME', 'Lily of the valley');
|
define ( 'FRIENDICA_CODENAME', 'Lily of the valley');
|
||||||
define ( 'FRIENDICA_VERSION', '3.4.0' );
|
define ( 'FRIENDICA_VERSION', '3.4.0' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1182 );
|
define ( 'DB_UPDATE_VERSION', 1183 );
|
||||||
define ( 'EOL', "<br />\r\n" );
|
define ( 'EOL', "<br />\r\n" );
|
||||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
-- Friendica 3.4.0 (Ginger)
|
-- Friendica 3.4.0 (Lily of the valley)
|
||||||
-- DB_UPDATE_VERSION 1182
|
-- DB_UPDATE_VERSION 1183
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -140,6 +140,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
|
||||||
`uri-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
`uri-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||||
`avatar-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
`avatar-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||||
`term-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
`term-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||||
|
`last-item` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||||
`priority` tinyint(3) NOT NULL DEFAULT 0,
|
`priority` tinyint(3) NOT NULL DEFAULT 0,
|
||||||
`blocked` tinyint(1) NOT NULL DEFAULT 1,
|
`blocked` tinyint(1) NOT NULL DEFAULT 1,
|
||||||
`readonly` tinyint(1) NOT NULL DEFAULT 0,
|
`readonly` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
|
|
@ -453,6 +453,7 @@ function db_definition() {
|
||||||
"uri-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
"uri-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
||||||
"avatar-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
"avatar-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
||||||
"term-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
"term-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
||||||
|
"last-item" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
||||||
"priority" => array("type" => "tinyint(3)", "not null" => "1", "default" => "0"),
|
"priority" => array("type" => "tinyint(3)", "not null" => "1", "default" => "0"),
|
||||||
"blocked" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"),
|
"blocked" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"),
|
||||||
"readonly" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
|
"readonly" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
|
||||||
|
|
|
@ -1391,12 +1391,24 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
$current_post = $r[0]['id'];
|
$current_post = $r[0]['id'];
|
||||||
logger('item_store: created item ' . $current_post);
|
logger('item_store: created item ' . $current_post);
|
||||||
|
|
||||||
// Set "success_update" to the date of the last time we heard from this contact
|
// Set "success_update" and "last-item" to the date of the last time we heard from this contact
|
||||||
// This can be used to filter for inactive contacts and poco.
|
// This can be used to filter for inactive contacts.
|
||||||
// Only do this for public postings to avoid privacy problems, since poco data is public.
|
// Only do this for public postings to avoid privacy problems, since poco data is public.
|
||||||
// Don't set this value if it isn't from the owner (could be an author that we don't know)
|
// Don't set this value if it isn't from the owner (could be an author that we don't know)
|
||||||
if (!$arr['private'] AND (($arr["author-link"] === $arr["owner-link"]) OR ($arr["parent-uri"] === $arr["uri"])))
|
|
||||||
q("UPDATE `contact` SET `success_update` = '%s' WHERE `id` = %d",
|
$update = (!$arr['private'] AND (($arr["author-link"] === $arr["owner-link"]) OR ($arr["parent-uri"] === $arr["uri"])));
|
||||||
|
|
||||||
|
// Is it a forum? Then we don't care about the rules from above
|
||||||
|
if (!$update AND ($arr["network"] == NETWORK_DFRN) AND ($arr["parent-uri"] === $arr["uri"])) {
|
||||||
|
$isforum = q("SELECT `forum` FROM `contact` WHERE `id` = %d AND `forum`",
|
||||||
|
intval($arr['contact-id']));
|
||||||
|
if ($isforum)
|
||||||
|
$update = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($update)
|
||||||
|
q("UPDATE `contact` SET `success_update` = '%s', `last-item` = '%s' WHERE `id` = %d",
|
||||||
|
dbesc($arr['received']),
|
||||||
dbesc($arr['received']),
|
dbesc($arr['received']),
|
||||||
intval($arr['contact-id'])
|
intval($arr['contact-id'])
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
define( 'UPDATE_VERSION' , 1182 );
|
define( 'UPDATE_VERSION' , 1183 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue