diff options
author | redmatrix <git@macgirvin.com> | 2016-06-30 21:12:39 -0700 |
---|---|---|
committer | redmatrix <git@macgirvin.com> | 2016-06-30 21:12:39 -0700 |
commit | 7f8dcf4f12ec334a6dc62633ccf912d92dd519f4 (patch) | |
tree | 70174a9a944cfcc485f87e769256c36fa2ffcd64 | |
parent | eef8f3b417ef90977649b1a39c98f299be4b5bce (diff) | |
download | volse-hubzilla-7f8dcf4f12ec334a6dc62633ccf912d92dd519f4.tar.gz volse-hubzilla-7f8dcf4f12ec334a6dc62633ccf912d92dd519f4.tar.bz2 volse-hubzilla-7f8dcf4f12ec334a6dc62633ccf912d92dd519f4.zip |
sync flags even if post has not been edited
-rw-r--r-- | Zotlabs/Module/Starred.php | 15 | ||||
-rw-r--r-- | include/import.php | 29 |
2 files changed, 24 insertions, 20 deletions
diff --git a/Zotlabs/Module/Starred.php b/Zotlabs/Module/Starred.php index 73a2dc808..4f1d99ec6 100644 --- a/Zotlabs/Module/Starred.php +++ b/Zotlabs/Module/Starred.php @@ -30,7 +30,20 @@ class Starred extends \Zotlabs\Web\Controller { intval(local_channel()), intval($message_id) ); - + + $r = q("select * from item where id = %d", + intval($message_id) + ); + if($r) { + xchan_query($r); + $sync_item = fetch_post_tags($r); + build_sync_packet(local_channel(),[ + 'item' => [ + encode_item($sync_item[0],true) + ] + ]); + } + header('Content-type: application/json'); echo json_encode(array('result' => $item_starred)); killme(); diff --git a/include/import.php b/include/import.php index 982eeb138..00ecef07d 100644 --- a/include/import.php +++ b/include/import.php @@ -575,12 +575,20 @@ function import_items($channel,$items,$sync = false,$relocate = null) { if(! $item) continue; + if($relocate && $item['mid'] === $item['parent_mid']) { + item_url_replace($channel,$item,$relocate['url'],z_root(),$relocate['channel_address']); + } + $r = q("select id, edited from item where mid = '%s' and uid = %d limit 1", dbesc($item['mid']), intval($channel['channel_id']) ); if($r) { - if($item['edited'] > $r[0]['edited']) { + + // flags may have changed and we are probably relocating the post, + // so force an update even if we have the same timestamp + + if($item['edited'] >= $r[0]['edited']) { $item['id'] = $r[0]['id']; $item['uid'] = $channel['channel_id']; $item_result = item_store_update($item,$allow_code,$deliver); @@ -595,24 +603,7 @@ function import_items($channel,$items,$sync = false,$relocate = null) { if($sync && $item['item_wall']) { // deliver singletons if we have any if($item_result && $item_result['success']) { - Zotlabs\Daemon\Master::Summon(array('Notifier','single_activity',$item_result['item_id'])); - } - } - if($relocate && $item_result['item_id']) { - $item = $item_result['item']; - if($item['mid'] === $item['parent_mid']) { - item_url_replace($channel,$item,$relocate['url'],z_root(),$relocate['channel_address']); - dbesc_array($item); - $item_id = $item_result['item_id']; - unset($item['id']); - $str = ''; - foreach($item as $k => $v) { - if($str) - $str .= ","; - $str .= " `" . $k . "` = '" . $v . "' "; - } - - $r = dbq("update `item` set " . $str . " where id = " . $item_id ); + Zotlabs\Daemon\Master::Summon( [ 'Notifier','single_activity',$item_result['item_id'] ]); } } } |