diff options
-rw-r--r-- | boot.php | 2 | ||||
-rw-r--r-- | include/event.php | 5 | ||||
-rw-r--r-- | include/zot.php | 29 | ||||
-rw-r--r-- | install/database.sql | 1 | ||||
-rw-r--r-- | install/update.php | 8 |
5 files changed, 37 insertions, 8 deletions
@@ -16,7 +16,7 @@ require_once('include/features.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica Red'); define ( 'FRIENDICA_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1019 ); +define ( 'DB_UPDATE_VERSION', 1020 ); define ( 'EOL', '<br />' . "\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/include/event.php b/include/event.php index 88efe2517..e5a62ceec 100644 --- a/include/event.php +++ b/include/event.php @@ -209,10 +209,7 @@ function event_store($arr) { $arr['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert()); $arr['type'] = (($arr['type']) ? $arr['type'] : 'event' ); $arr['event_xchan'] = (($arr['event_xchan']) ? $arr['event_xchan'] : ''); - $arr['message_id'] = (x($arr,'message_id') ? $arr['message_id'] : item_message_id()); - $arr['private'] = ((x($arr,'private')) ? intval($arr['private']) : 0); - - + // Existing event being modified if($arr['id']) { diff --git a/include/zot.php b/include/zot.php index 55e2dbe92..f01b0f63f 100644 --- a/include/zot.php +++ b/include/zot.php @@ -885,13 +885,40 @@ function process_delivery($sender,$arr,$deliveries,$relay) { continue; } - if($arr['item_restrict'] & ITEM_DELETED) { delete_imported_item($sender,$arr,$channel['channel_id']); $result[] = array($d['hash'],'deleted'); continue; } + // for events, extract the event info and create and event linked to an item + + if((x($arr,'obj_type')) && (activity_compare($arr['obj_type'],ACTIVITY_OBJ_EVENT))) { + require_once('include/event.php'); + $ev = bbtoevent($arr['body']); + if(x($ev,'desc') && x($ev,'start')) { + $ev['event_xchan'] = $arr['author_xchan']; + $ev['uid'] = $channel['channel_id']; + $ev['account'] = $channel['channel_account_id']; + $ev['edited'] = $arr['edited']; + + // is this an edit? + + $r = q("SELECT * FROM event left join item on resource_id = event_hash WHERE resource_type = 'event' and + `uri` = '%s' AND `uid` = %d LIMIT 1", + dbesc($arr['uri']), + intval($importer['uid']) + ); + if($r) + $ev['event_hash'] = $r[0]['event_hash']; + $xyz = event_store($ev); + $result = array($d['hash'],'event processed'); + continue; + } + } + + + $r = q("select id, edited from item where uri = '%s' and uid = %d limit 1", dbesc($arr['uri']), intval($channel['channel_id']) diff --git a/install/database.sql b/install/database.sql index c8b9d4867..914add2d8 100644 --- a/install/database.sql +++ b/install/database.sql @@ -224,7 +224,6 @@ CREATE TABLE IF NOT EXISTS `event` ( `uid` int(11) NOT NULL, `event_xchan` char(255) NOT NULL DEFAULT '', `event_hash` char(255) NOT NULL DEFAULT '', - `message_id` char(255) NOT NULL, `created` datetime NOT NULL, `edited` datetime NOT NULL, `start` datetime NOT NULL, diff --git a/install/update.php b/install/update.php index 5479f1e26..a6fecbef5 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@ <?php -define( 'UPDATE_VERSION' , 1019 ); +define( 'UPDATE_VERSION' , 1020 ); /** * @@ -279,3 +279,9 @@ ADD INDEX ( `event_hash` )"); } +function update_r1019() { + $r = q"ALTER TABLE `event` DROP `message_id` "); + if($r) + return UPDATE_SUCCESS; + return UPDATE_FAILED; +} |