mirror of
https://github.com/friendica/friendica
synced 2024-12-23 04:00:15 +00:00
We now use the conversation data with AP
This commit is contained in:
parent
699a4140f9
commit
91d1b4de5d
4 changed files with 25 additions and 6 deletions
|
@ -215,7 +215,7 @@
|
||||||
"reply-to-uri": {"type": "varbinary(255)", "not null": "1", "default": "", "comment": "URI to which this item is a reply"},
|
"reply-to-uri": {"type": "varbinary(255)", "not null": "1", "default": "", "comment": "URI to which this item is a reply"},
|
||||||
"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": "0", "comment": "The protocol of the item"},
|
"protocol": {"type": "tinyint unsigned", "not null": "1", "default": "255", "comment": "The protocol of the item"},
|
||||||
"source": {"type": "mediumtext", "comment": "Original source"},
|
"source": {"type": "mediumtext", "comment": "Original source"},
|
||||||
"received": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Receiving date"}
|
"received": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Receiving date"}
|
||||||
},
|
},
|
||||||
|
|
|
@ -17,14 +17,14 @@ class Conversation
|
||||||
* These constants represent the parcel format used to transport a conversation independently of the message protocol.
|
* These constants represent the parcel format used to transport a conversation independently of the message protocol.
|
||||||
* It currently is stored in the "protocol" field for legacy reasons.
|
* It currently is stored in the "protocol" field for legacy reasons.
|
||||||
*/
|
*/
|
||||||
const PARCEL_UNKNOWN = 0;
|
const PARCEL_ACTIVITYPUB = 0;
|
||||||
const PARCEL_DFRN = 1;
|
const PARCEL_DFRN = 1;
|
||||||
const PARCEL_DIASPORA = 2;
|
const PARCEL_DIASPORA = 2;
|
||||||
const PARCEL_SALMON = 3;
|
const PARCEL_SALMON = 3;
|
||||||
const PARCEL_FEED = 4; // Deprecated
|
const PARCEL_FEED = 4; // Deprecated
|
||||||
const PARCEL_ACTIVITYPUB = 5;
|
|
||||||
const PARCEL_SPLIT_CONVERSATION = 6;
|
const PARCEL_SPLIT_CONVERSATION = 6;
|
||||||
const PARCEL_TWITTER = 67;
|
const PARCEL_TWITTER = 67;
|
||||||
|
const PARCEL_UNKNOWN = 255;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Store the conversation data
|
* @brief Store the conversation data
|
||||||
|
@ -71,8 +71,8 @@ class Conversation
|
||||||
unset($old_conv['source']);
|
unset($old_conv['source']);
|
||||||
}
|
}
|
||||||
// Update structure data all the time but the source only when its from a better protocol.
|
// Update structure data all the time but the source only when its from a better protocol.
|
||||||
if (isset($conversation['protocol']) && isset($conversation['source']) && ($old_conv['protocol'] < $conversation['protocol'])
|
if (empty($conversation['source']) || (!empty($old_conv['source']) &&
|
||||||
&& ($old_conv['protocol'] != 0) && ($old_conv['protocol'] != self::PARCEL_ACTIVITYPUB)) {
|
($old_conv['protocol'] < defaults($conversation, 'protocol', PARCEL_UNKNOWN)))) {
|
||||||
unset($conversation['protocol']);
|
unset($conversation['protocol']);
|
||||||
unset($conversation['source']);
|
unset($conversation['source']);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,6 @@ class Inbox extends BaseModule
|
||||||
|
|
||||||
ActivityPub::processInbox($postdata, $_SERVER, $uid);
|
ActivityPub::processInbox($postdata, $_SERVER, $uid);
|
||||||
|
|
||||||
System::httpExit(201);
|
System::httpExit(202);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ use Friendica\Network\Probe;
|
||||||
*
|
*
|
||||||
* Digest: https://tools.ietf.org/html/rfc5843
|
* Digest: https://tools.ietf.org/html/rfc5843
|
||||||
* https://tools.ietf.org/html/draft-cavage-http-signatures-10#ref-15
|
* https://tools.ietf.org/html/draft-cavage-http-signatures-10#ref-15
|
||||||
|
* https://github.com/digitalbazaar/php-json-ld
|
||||||
*
|
*
|
||||||
* Part of the code for HTTP signing is taken from the Osada project.
|
* Part of the code for HTTP signing is taken from the Osada project.
|
||||||
* https://framagit.org/macgirvin/osada
|
* https://framagit.org/macgirvin/osada
|
||||||
|
@ -156,6 +157,19 @@ class ActivityPub
|
||||||
{
|
{
|
||||||
$item = Item::selectFirst([], ['id' => $item_id]);
|
$item = Item::selectFirst([], ['id' => $item_id]);
|
||||||
|
|
||||||
|
if (!DBA::isResult($item)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$condition = ['item-uri' => $item['uri'], 'protocol' => Conversation::PARCEL_ACTIVITYPUB];
|
||||||
|
$conversation = DBA::selectFirst('conversation', ['source'], $condition);
|
||||||
|
if (DBA::isResult($conversation)) {
|
||||||
|
$data = json_decode($conversation['source']);
|
||||||
|
if (!empty($data)) {
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$data = ['@context' => ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1',
|
$data = ['@context' => ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1',
|
||||||
['Emoji' => 'toot:Emoji', 'Hashtag' => 'as:Hashtag', 'atomUri' => 'ostatus:atomUri',
|
['Emoji' => 'toot:Emoji', 'Hashtag' => 'as:Hashtag', 'atomUri' => 'ostatus:atomUri',
|
||||||
'conversation' => 'ostatus:conversation', 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri',
|
'conversation' => 'ostatus:conversation', 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri',
|
||||||
|
@ -1029,6 +1043,11 @@ class ActivityPub
|
||||||
$tag_text .= ',';
|
$tag_text .= ',';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($tag['href'])) {
|
||||||
|
//$tag['href']
|
||||||
|
logger('Blubb!');
|
||||||
|
}
|
||||||
|
|
||||||
$tag_text .= substr($tag['name'], 0, 1) . '[url=' . $tag['href'] . ']' . substr($tag['name'], 1) . '[/url]';
|
$tag_text .= substr($tag['name'], 0, 1) . '[url=' . $tag['href'] . ']' . substr($tag['name'], 1) . '[/url]';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue