From fd81a4bdc4f1c80d9dd73358452f50bc6422afef Mon Sep 17 00:00:00 2001 From: zotlabs Date: Mon, 12 Feb 2018 21:43:04 -0800 Subject: initial share refactor --- Zotlabs/Module/Item.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'Zotlabs') diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php index db2d64d70..73730bc99 100644 --- a/Zotlabs/Module/Item.php +++ b/Zotlabs/Module/Item.php @@ -39,6 +39,7 @@ class Item extends \Zotlabs\Web\Controller { $uid = local_channel(); $channel = null; $observer = null; + $datarray = []; /** @@ -619,6 +620,21 @@ class Item extends \Zotlabs\Web\Controller { $i++; } } + + + if(preg_match_all('/(\[share=(.*?)\](.*?)\[\/share\])/',$body,$match)) { + // process share by id + + $verb = ACTIVITY_SHARE; + $i = 0; + foreach($match[2] as $mtch) { +// $obj = get_share_activity($mtch); + $datarray['obj'] = $obj['obj']; + $datarray['obj_type'] = $obj['obj']['type']; + $body = str_replace($match[1][$i],$obj['body'],$body); + $i++; + } + } } @@ -720,7 +736,6 @@ class Item extends \Zotlabs\Web\Controller { if(!$thr_parent) $thr_parent = $mid; - $datarray = array(); $item_thread_top = ((! $parent) ? 1 : 0); -- cgit v1.2.3 From 6ca3442ba381a3c5b98cd04f4f9e87e48c55b072 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Tue, 13 Feb 2018 12:13:37 -0800 Subject: defperms: bad query --- Zotlabs/Module/Defperms.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Zotlabs') diff --git a/Zotlabs/Module/Defperms.php b/Zotlabs/Module/Defperms.php index 422333a50..97d9cfd1d 100644 --- a/Zotlabs/Module/Defperms.php +++ b/Zotlabs/Module/Defperms.php @@ -22,7 +22,7 @@ class Defperms extends \Zotlabs\Web\Controller { $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash - WHERE abook_self = 1 and abook_id = %d LIMIT 1", + WHERE abook_self = 1 and abook_channel = %d LIMIT 1", intval(local_channel()) ); if($r) { -- cgit v1.2.3 From 64809dd2777ae0064addaff765450cf3f05c3bc4 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Tue, 13 Feb 2018 20:07:57 -0800 Subject: turn shares into activities - make certain to pull addons or JSON-LD will chuck a wobbly --- Zotlabs/Lib/Share.php | 141 +++++++++++++++++++++++++++++++++++++++++++++++ Zotlabs/Module/Item.php | 8 +-- Zotlabs/Module/Share.php | 4 ++ 3 files changed, 149 insertions(+), 4 deletions(-) create mode 100644 Zotlabs/Lib/Share.php (limited to 'Zotlabs') diff --git a/Zotlabs/Lib/Share.php b/Zotlabs/Lib/Share.php new file mode 100644 index 000000000..b5341e662 --- /dev/null +++ b/Zotlabs/Lib/Share.php @@ -0,0 +1,141 @@ +item = $r[0]; + return; + } + + public function obj() { + $obj = []; + + if(! $this->item) + return $obj; + + $obj['type'] = $this->item['obj_type']; + $obj['id'] = $this->item['mid']; + $obj['content'] = $this->item['body']; + $obj['content_type'] = $this->item['mimetype']; + $obj['title'] = $this->item['title']; + $obj['created'] = $this->item['created']; + $obj['edited'] = $this->item['edited']; + $obj['author'] = [ + 'name' => $this->item['author']['xchan_name'], + 'address' => $this->item['author']['xchan_addr'], + 'network' => $this->item['author']['xchan_network'], + 'link' => [ + [ + 'rel' => 'alternate', + 'type' => 'text/html', + 'href' => $this->item['author']['xchan_url'] + ], + [ + 'rel' => 'photo', + 'type' => $this->item['author']['xchan_photo_mimetype'], + 'href' => $this->item['author']['xchan_photo_m'] + ] + ] + ]; + + $obj['owner'] = [ + 'name' => $this->item['owner']['xchan_name'], + 'address' => $this->item['owner']['xchan_addr'], + 'network' => $this->item['owner']['xchan_network'], + 'link' => [ + [ + 'rel' => 'alternate', + 'type' => 'text/html', + 'href' => $this->item['owner']['xchan_url'] + ], + [ + 'rel' => 'photo', + 'type' => $this->item['owner']['xchan_photo_mimetype'], + 'href' => $this->item['owner']['xchan_photo_m'] + ] + ] + ]; + + $obj['link'] = [ + 'rel' => 'alternate', + 'type' => 'text/html', + 'href' => $this->item['plink'] + ]; + + return $obj; + } + + public function bbcode() { + $bb = NULL_STR; + + if(! $this->item) + return $bb; + + $is_photo = (($this->item['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false); + if($is_photo) { + $object = json_decode($this->item['obj'],true); + $photo_bb = $object['body']; + } + + if (strpos($this->item['body'], "[/share]") !== false) { + $pos = strpos($this->item['body'], "[share"); + $bb = substr($this->item['body'], $pos); + } else { + $bb = "[share author='".urlencode($this->item['author']['xchan_name']). + "' profile='".$this->item['author']['xchan_url'] . + "' avatar='".$this->item['author']['xchan_photo_s']. + "' link='".$this->item['plink']. + "' posted='".$this->item['created']. + "' message_id='".$this->item['mid']."']"; + if($this->item['title']) + $bb .= '[b]'.$this->item['title'].'[/b]'."\r\n"; + $bb .= (($is_photo) ? $photo_bb . "\r\n" . $this->item['body'] : $this->item['body']); + $bb .= "[/share]"; + } + + return $bb; + + } + +} \ No newline at end of file diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php index 73730bc99..3f857030b 100644 --- a/Zotlabs/Module/Item.php +++ b/Zotlabs/Module/Item.php @@ -628,10 +628,10 @@ class Item extends \Zotlabs\Web\Controller { $verb = ACTIVITY_SHARE; $i = 0; foreach($match[2] as $mtch) { -// $obj = get_share_activity($mtch); - $datarray['obj'] = $obj['obj']; - $datarray['obj_type'] = $obj['obj']['type']; - $body = str_replace($match[1][$i],$obj['body'],$body); + $reshare = new \Zotlabs\Lib\Share($mtch); + $datarray['obj'] = $reshare->obj(); + $datarray['obj_type'] = $datarray['obj']['type']; + $body = str_replace($match[1][$i],$reshare->bbcode(),$body); $i++; } } diff --git a/Zotlabs/Module/Share.php b/Zotlabs/Module/Share.php index 5c4811c59..7f4d8b1eb 100644 --- a/Zotlabs/Module/Share.php +++ b/Zotlabs/Module/Share.php @@ -14,6 +14,10 @@ class Share extends \Zotlabs\Web\Controller { if(! $post_id) killme(); + + echo '[share=' . $post_id . '][/share]'; + killme(); + if(! (local_channel() || remote_channel())) killme(); -- cgit v1.2.3