diff options
author | zottel <github@zottel.net> | 2015-09-08 08:39:37 +0200 |
---|---|---|
committer | zottel <github@zottel.net> | 2015-09-08 08:39:37 +0200 |
commit | 52cd8652bb4b2454bc2bd49d8ec39a5549c4ab68 (patch) | |
tree | 8e25e4395d8ef7f0dbbe0f12450ad4b9d7cb20c0 /mod | |
parent | c5981cbc9afb88015fb59b4743484bb78a87188d (diff) | |
parent | c6bdf7e891f3c0b49a1e9c40622e05aef590e2b6 (diff) | |
download | volse-hubzilla-52cd8652bb4b2454bc2bd49d8ec39a5549c4ab68.tar.gz volse-hubzilla-52cd8652bb4b2454bc2bd49d8ec39a5549c4ab68.tar.bz2 volse-hubzilla-52cd8652bb4b2454bc2bd49d8ec39a5549c4ab68.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'mod')
-rwxr-xr-x | mod/events.php | 23 | ||||
-rw-r--r-- | mod/import.php | 59 | ||||
-rw-r--r-- | mod/import_items.php | 49 | ||||
-rw-r--r-- | mod/item.php | 38 |
4 files changed, 71 insertions, 98 deletions
diff --git a/mod/events.php b/mod/events.php index 9120f8713..d76602a33 100755 --- a/mod/events.php +++ b/mod/events.php @@ -205,6 +205,23 @@ function events_post(&$a) { $item_id = event_store_item($datarray,$event); + if($item_id) { + $r = q("select * from item where id = %d", + intval($item_id) + ); + if($r) { + xchan_query($r); + $sync_item = fetch_post_tags($r); + $z = q("select * from event where event_hash = '%s' and uid = %d limit 1", + dbesc($r[0]['resource_id']), + intval($channel['channel_id']) + ); + if($z) { + build_sync_packet($channel['channel_id'],array('event_item' => array(encode_item($sync_item[0],true)),'event' => $z)); + } + } + } + if($share) proc_run('php',"include/notifier.php","event","$item_id"); @@ -528,6 +545,9 @@ function events_content(&$a) { dbesc($event_id), intval(local_channel()) ); + + $sync_event = $r[0]; + if($r) { $r = q("delete from event where event_hash = '%s' and uid = %d limit 1", dbesc($event_id), @@ -538,6 +558,9 @@ function events_content(&$a) { dbesc($event_id), intval(local_channel()) ); + $sync_event['event_deleted'] = 1; + build_sync_packet(0,array('event' => array($sync_event))); + info( t('Event removed') . EOL); } else { diff --git a/mod/import.php b/mod/import.php index 1d1799e00..27c2094c3 100644 --- a/mod/import.php +++ b/mod/import.php @@ -438,62 +438,23 @@ function import_post(&$a) { if(is_array($data['chatroom'])) import_chatrooms($channel,$data['chatroom']); - $saved_notification_flags = notifications_off($channel['channel_id']); - - if($import_posts && array_key_exists('item',$data) && $data['item']) { - - foreach($data['item'] as $i) { - $item = get_item_elements($i); + if(is_array($data['event'])) + import_events($channel,$data['event']); - $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']) { - $item['id'] = $r[0]['id']; - $item['uid'] = $channel['channel_id']; - item_store_update($item); - continue; - } - } - else { - $item['aid'] = $channel['channel_account_id']; - $item['uid'] = $channel['channel_id']; - $item_result = item_store($item); - } + if(is_array($data['event_item'])) + import_items($channel,$data['event_item']); + - } + $saved_notification_flags = notifications_off($channel['channel_id']); - } + if($import_posts && array_key_exists('item',$data) && $data['item']) + import_items($channel,$data['item']); notifications_on($channel['channel_id'],$saved_notification_flags); - if(array_key_exists('item_id',$data) && $data['item_id']) { - foreach($data['item_id'] as $i) { - $r = q("select id from item where mid = '%s' and uid = %d limit 1", - dbesc($i['mid']), - intval($channel['channel_id']) - ); - if(! $r) - continue; - $z = q("select * from item_id where service = '%s' and sid = '%s' and iid = %d and uid = %d limit 1", - dbesc($i['service']), - dbesc($i['sid']), - intval($r[0]['id']), - intval($channel['channel_id']) - ); - if(! $z) { - q("insert into item_id (iid,uid,sid,service) values(%d,%d,'%s','%s')", - intval($r[0]['id']), - intval($channel['channel_id']), - dbesc($i['sid']), - dbesc($i['service']) - ); - } - } - } + if(array_key_exists('item_id',$data) && $data['item_id']) + import_item_ids($channel,$data['item_id']); // FIXME - ensure we have a self entry if somebody is trying to pull a fast one diff --git a/mod/import_items.php b/mod/import_items.php index 1e54c0deb..6b97939c9 100644 --- a/mod/import_items.php +++ b/mod/import_items.php @@ -1,5 +1,6 @@ <?php +require_once('include/import.php'); function import_items_post(&$a) { @@ -88,57 +89,13 @@ function import_items_post(&$a) { $saved_notification_flags = notifications_off($channel['channel_id']); if(array_key_exists('item',$data) && $data['item']) { - - foreach($data['item'] as $i) { - $item = get_item_elements($i); - - $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']) { - $item['id'] = $r[0]['id']; - $item['uid'] = $channel['channel_id']; - item_store_update($item); - continue; - } - } - else { - $item['aid'] = $channel['channel_account_id']; - $item['uid'] = $channel['channel_id']; - $item_result = item_store($item); - } - - } - + import_items($channel,$data['item']); } notifications_on($channel['channel_id'],$saved_notification_flags); if(array_key_exists('item_id',$data) && $data['item_id']) { - foreach($data['item_id'] as $i) { - $r = q("select id from item where mid = '%s' and uid = %d limit 1", - dbesc($i['mid']), - intval($channel['channel_id']) - ); - if(! $r) - continue; - $z = q("select * from item_id where service = '%s' and sid = '%s' and iid = %d and uid = %d limit 1", - dbesc($i['service']), - dbesc($i['sid']), - intval($r[0]['id']), - intval($channel['channel_id']) - ); - if(! $z) { - q("insert into item_id (iid,uid,sid,service) values(%d,%d,'%s','%s')", - intval($r[0]['id']), - intval($channel['channel_id']), - dbesc($i['sid']), - dbesc($i['service']) - ); - } - } + import_item_ids($channel,$data['item_id']); } info( t('Import completed') . EOL); diff --git a/mod/item.php b/mod/item.php index c93560771..d0cf59091 100644 --- a/mod/item.php +++ b/mod/item.php @@ -805,6 +805,19 @@ function item_post(&$a) { update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid); + if(! $parent) { + $r = q("select * from item where id = %d", + intval($post_id) + ); + if($r) { + xchan_query($r); + $sync_item = fetch_post_tags($r); + $rid = q("select * from item_id where iid = %d", + intval($post_id) + ); + build_sync_packet($uid,array('item' => array(encode_item($sync_item[0],true)),'item_id' => $rid)); + } + } if(! $nopush) proc_run('php', "include/notifier.php", 'edit_post', $post_id); @@ -884,14 +897,28 @@ function item_post(&$a) { // NOTREACHED } - if($parent) { + + update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid); + + if(($parent) && ($parent != $post_id)) { // Store the comment signature information in case we need to relay to Diaspora $ditem = $datarray; $ditem['author'] = $observer; store_diaspora_comment_sig($ditem,$channel,$parent_item, $post_id, (($walltowall_comment) ? 1 : 0)); } - - update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid); + else { + $r = q("select * from item where id = %d", + intval($post_id) + ); + if($r) { + xchan_query($r); + $sync_item = fetch_post_tags($r); + $rid = q("select * from item_id where iid = %d", + intval($post_id) + ); + build_sync_packet($uid,array('item' => array(encode_item($sync_item[0],true)),'item_id' => $rid)); + } + } $datarray['id'] = $post_id; $datarray['llink'] = $a->get_baseurl() . '/display/' . $channel['channel_address'] . '/' . $post_id; @@ -903,6 +930,11 @@ function item_post(&$a) { logger('post_complete'); + + + + + // figure out how to return, depending on from whence we came if($api_source) |