Store the push/pull direction in the conversation table

This commit is contained in:
Michael 2020-03-03 08:01:04 +00:00
parent 6f0d40c6c0
commit af6db65961
5 changed files with 27 additions and 11 deletions

View file

@ -1,6 +1,6 @@
-- ------------------------------------------ -- ------------------------------------------
-- Friendica 2020.03-dev (Dalmatian Bellflower) -- Friendica 2020.03-dev (Dalmatian Bellflower)
-- DB_UPDATE_VERSION 1334 -- DB_UPDATE_VERSION 1335
-- ------------------------------------------ -- ------------------------------------------
@ -279,6 +279,7 @@ CREATE TABLE IF NOT EXISTS `conversation` (
`conversation-uri` varbinary(255) NOT NULL DEFAULT '' COMMENT 'GNU Social conversation URI', `conversation-uri` varbinary(255) NOT NULL DEFAULT '' COMMENT 'GNU Social conversation URI',
`conversation-href` varbinary(255) NOT NULL DEFAULT '' COMMENT 'GNU Social conversation link', `conversation-href` varbinary(255) NOT NULL DEFAULT '' COMMENT 'GNU Social conversation link',
`protocol` tinyint unsigned NOT NULL DEFAULT 255 COMMENT 'The protocol of the item', `protocol` tinyint unsigned NOT NULL DEFAULT 255 COMMENT 'The protocol of the item',
`direction` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'How the message arrived here: 1=push, 2=pull',
`source` mediumtext COMMENT 'Original source', `source` mediumtext COMMENT 'Original source',
`received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Receiving date', `received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Receiving date',
PRIMARY KEY(`item-uri`), PRIMARY KEY(`item-uri`),

View file

@ -41,6 +41,19 @@ class Conversation
const PARCEL_TWITTER = 67; const PARCEL_TWITTER = 67;
const PARCEL_UNKNOWN = 255; const PARCEL_UNKNOWN = 255;
/**
* Unknown message direction
*/
const UNKNOWN = 0;
/**
* The message had been pushed to this sytem
*/
const PUSH = 1;
/**
* The message had been fetched by our system
*/
const PULL = 2;
public static function getByItemUri($item_uri) public static function getByItemUri($item_uri)
{ {
return DBA::selectFirst('conversation', [], ['item-uri' => $item_uri]); return DBA::selectFirst('conversation', [], ['item-uri' => $item_uri]);
@ -79,6 +92,10 @@ class Conversation
$conversation['protocol'] = $arr['protocol']; $conversation['protocol'] = $arr['protocol'];
} }
if (isset($arr['direction'])) {
$conversation['direction'] = $arr['direction'];
}
if (isset($arr['source'])) { if (isset($arr['source'])) {
$conversation['source'] = $arr['source']; $conversation['source'] = $arr['source'];
} }

View file

@ -490,12 +490,7 @@ class Processor
} }
if (isset($activity['push'])) { if (isset($activity['push'])) {
$push_app = $activity['push'] ? '📨' : '🚜'; $item['direction'] = $activity['push'] ? Conversation::PUSH : Conversation::PULL;
if (!empty($item['app'])) {
$item['app'] .= ' (' . $push_app . ')';
} else {
$item['app'] .= $push_app;
}
} }
$item['plink'] = $activity['alternate-url'] ?? $item['uri']; $item['plink'] = $activity['alternate-url'] ?? $item['uri'];

View file

@ -174,9 +174,10 @@ class Receiver
/** /**
* Prepare the object array * Prepare the object array
* *
* @param array $activity * @param array $activity Array with activity data
* @param integer $uid User ID * @param integer $uid User ID
* @param $trust_source * @param boolean $push Message had been pushed to our system
* @param boolean $trust_source Do we trust the source?
* *
* @return array with object data * @return array with object data
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
@ -312,6 +313,7 @@ class Receiver
* @param string $body * @param string $body
* @param integer $uid User ID * @param integer $uid User ID
* @param boolean $trust_source Do we trust the source? * @param boolean $trust_source Do we trust the source?
* @param boolean $push Message had been pushed to our system
* @throws \Exception * @throws \Exception
*/ */
public static function processActivity($activity, $body = '', $uid = null, $trust_source = false, $push = false) public static function processActivity($activity, $body = '', $uid = null, $trust_source = false, $push = false)

View file

@ -51,7 +51,7 @@
use Friendica\Database\DBA; use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) { if (!defined('DB_UPDATE_VERSION')) {
define('DB_UPDATE_VERSION', 1334); define('DB_UPDATE_VERSION', 1335);
} }
return [ return [
@ -342,6 +342,7 @@ return [
"conversation-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation URI"], "conversation-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation URI"],
"conversation-href" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation link"], "conversation-href" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation link"],
"protocol" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "255", "comment" => "The protocol of the item"], "protocol" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "255", "comment" => "The protocol of the item"],
"direction" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "How the message arrived here: 1=push, 2=pull"],
"source" => ["type" => "mediumtext", "comment" => "Original source"], "source" => ["type" => "mediumtext", "comment" => "Original source"],
"received" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Receiving date"], "received" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Receiving date"],
], ],