aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-06-13 18:06:45 -0700
committerzotlabs <mike@macgirvin.com>2017-06-13 18:06:45 -0700
commit7f374fe69f46c041221736e4940b1cb0e8809fd1 (patch)
tree015c8e2e30974a989d9766d3ee482f32d9671f6f /include
parentdd8feac54070f9aefb7da034f2d15e6dce872a3b (diff)
downloadvolse-hubzilla-7f374fe69f46c041221736e4940b1cb0e8809fd1.tar.gz
volse-hubzilla-7f374fe69f46c041221736e4940b1cb0e8809fd1.tar.bz2
volse-hubzilla-7f374fe69f46c041221736e4940b1cb0e8809fd1.zip
attempt to group gnu-social and mastodon conversations by ostatus:conversation in addition to falling back on thr:in_reply_to
Diffstat (limited to 'include')
-rw-r--r--include/feedutils.php35
1 files changed, 25 insertions, 10 deletions
diff --git a/include/feedutils.php b/include/feedutils.php
index 41c11bce1..38ad102b4 100644
--- a/include/feedutils.php
+++ b/include/feedutils.php
@@ -1003,20 +1003,35 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) {
continue;
}
- $x = q("select mid from item where mid = '%s' and uid = %d limit 1",
- dbesc($parent_mid),
- intval($importer['channel_id'])
- );
-
- if($x) {
- $pmid = $x[0]['mid'];
- $datarray['parent_mid'] = $pmid;
+ $pmid = '';
+ $conv_id = get_iconfig($datarray,'ostatus','conversation');
+
+ if($conv_id) {
+ $c = q("select parent_mid from item left join iconfig on item.id = iconfig.iid where iconfig.cat = 'ostatus' and iconfig.k = 'conversation' and iconfig.v = '%s' and item.uid = %d order by item.id limit 1",
+ dbesc($conv_id),
+ intval($importer['channel_id'])
+ );
+ if($c) {
+ $pmid = $x[0]['parent_mid'];
+ $datarray['parent_mid'] = $pmid;
+ }
}
else {
+ $x = q("select mid from item where mid = '%s' and uid = %d limit 1",
+ dbesc($parent_mid),
+ intval($importer['channel_id'])
+ );
+
+ if($x) {
+ $pmid = $x[0]['mid'];
+ $datarray['parent_mid'] = $pmid;
+ }
+ }
+
+ if(! $pmid) {
// immediate parent wasn't found. Turn into a top-level post if permissions allow
- // but save the thread_parent in case we need to refer to it later. We should probably
- // also save the ostatus:conversation_id
+ // but save the thread_parent in case we need to refer to it later.
if(! post_is_importable($datarray, $contact))
continue;