diff options
author | zotlabs <mike@macgirvin.com> | 2017-06-13 18:06:45 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-06-13 18:06:45 -0700 |
commit | 7f374fe69f46c041221736e4940b1cb0e8809fd1 (patch) | |
tree | 015c8e2e30974a989d9766d3ee482f32d9671f6f | |
parent | dd8feac54070f9aefb7da034f2d15e6dce872a3b (diff) | |
download | volse-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
-rw-r--r-- | include/feedutils.php | 35 |
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; |