From a346399fe6d35f9f2b3c854f515a7f302cda421b Mon Sep 17 00:00:00 2001 From: zotlabs Date: Thu, 20 Jul 2017 18:11:47 -0700 Subject: allow wildcard tag and category searches --- Zotlabs/Module/Channel.php | 4 ++-- Zotlabs/Module/Network.php | 4 ++-- include/taxonomy.php | 13 +++++++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php index 98c1e1d61..430589579 100644 --- a/Zotlabs/Module/Channel.php +++ b/Zotlabs/Module/Channel.php @@ -325,8 +325,8 @@ class Channel extends \Zotlabs\Web\Controller { '$order' => '', '$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0), '$file' => '', - '$cats' => (($category) ? $category : ''), - '$tags' => (($hashtags) ? $hashtags : ''), + '$cats' => (($category) ? urlencode($category) : ''), + '$tags' => (($hashtags) ? urlencode($hashtags) : ''), '$mid' => $mid, '$verb' => '', '$dend' => $datequery, diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php index f2ad77dd7..3a7123a12 100644 --- a/Zotlabs/Module/Network.php +++ b/Zotlabs/Module/Network.php @@ -325,8 +325,8 @@ class Network extends \Zotlabs\Web\Controller { '$xchan' => $xchan, '$order' => $order, '$file' => $file, - '$cats' => $category, - '$tags' => $hashtags, + '$cats' => urlencode($category), + '$tags' => urlencode($hashtags), '$dend' => $datequery, '$mid' => '', '$verb' => $verb, diff --git a/include/taxonomy.php b/include/taxonomy.php index dc0e439e2..46d661581 100644 --- a/include/taxonomy.php +++ b/include/taxonomy.php @@ -46,8 +46,16 @@ function term_query($table,$s,$type = TERM_UNKNOWN, $type2 = '') { function term_item_parent_query($uid,$table,$s,$type = TERM_UNKNOWN, $type2 = '') { + // Allow asterisks for wildcard search + // In theory this means '%' will also do a wildcard search, but there appear to be multiple escape + // issues with '%' in term names and trying to fix this with '\\%' here did not help. + // Ideally I think we want '*' to indicate wildcards and allow '%' literally in names, but that is being + // left for another developer on another day. + + $s = str_replace('*','%',$s); + if($type2) { - $r = q("select parent from item left join term on term.oid = item.id where term.ttype in (%d, %d) and term.term = '%s' and term.uid = %d and term.otype = 1", + $r = q("select parent from item left join term on term.oid = item.id where term.ttype in (%d, %d) and term.term like '%s' and term.uid = %d and term.otype = 1", intval($type), intval($type2), dbesc($s), @@ -55,12 +63,13 @@ function term_item_parent_query($uid,$table,$s,$type = TERM_UNKNOWN, $type2 = '' ); } else { - $r = q("select parent from item left join term on term.oid = item.id where term.ttype = %d and term.term = '%s' and term.uid = %d and term.otype = 1", + $r = q("select parent from item left join term on term.oid = item.id where term.ttype = %d and term.term like '%s' and term.uid = %d and term.otype = 1", intval($type), dbesc($s), intval($uid) ); } + if($r) { $str = ''; foreach($r as $rv) { -- cgit v1.2.3 From 23e2b3be096772d579d15d988a4410c76e90ed9d Mon Sep 17 00:00:00 2001 From: zotlabs Date: Thu, 20 Jul 2017 18:30:48 -0700 Subject: allow wildcard tag searches in search module also --- Zotlabs/Module/Search.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Zotlabs/Module/Search.php b/Zotlabs/Module/Search.php index 2b949ebc7..de6725bb5 100644 --- a/Zotlabs/Module/Search.php +++ b/Zotlabs/Module/Search.php @@ -81,11 +81,12 @@ class Search extends \Zotlabs\Web\Controller { return $o; if($tag) { - $sql_extra = sprintf(" AND item.id IN (select oid from term where otype = %d and ttype in ( %d , %d) and term = '%s') ", + $wildtag = str_replace('*','%',$search); + $sql_extra = sprintf(" AND item.id IN (select oid from term where otype = %d and ttype in ( %d , %d) and term like '%s') ", intval(TERM_OBJ_POST), intval(TERM_HASHTAG), intval(TERM_COMMUNITYTAG), - dbesc(protect_sprintf($search)) + dbesc(protect_sprintf($wildtag)) ); } else { -- cgit v1.2.3 From 89d21c08735ad9bb151acee5ee1f372a803e2213 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Thu, 20 Jul 2017 22:55:04 -0700 Subject: begin the tedious process of mapping activities between AS1, zot, and AS2 --- include/feedutils.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/include/feedutils.php b/include/feedutils.php index 9a70fdae4..4f68fdeef 100644 --- a/include/feedutils.php +++ b/include/feedutils.php @@ -2001,3 +2001,52 @@ function asencode_person($p) { return $ret; } + +function activity_mapper($verb) { + + $acts = [ + 'http://activitystrea.ms/schema/1.0/post' => 'Create', + 'http://activitystrea.ms/schema/1.0/update' => 'Update', + 'http://activitystrea.ms/schema/1.0/like' => 'Like', + 'http://activitystrea.ms/schema/1.0/favorite' => 'Like', + 'http://purl.org/zot/activity/dislike' => 'Dislike', + 'http://activitystrea.ms/schema/1.0/tag' => 'Add', + 'http://activitystrea.ms/schema/1.0/follow' => 'Follow', + 'http://activitystrea.ms/schema/1.0/unfollow' => 'Unfollow', + ]; + + + if(array_key_exists($acts[$verb])) { + return $acts[$verb]; + } + return false; +} + + +function activity_obj_mapper($obj,$reverse = false) { + + $objs = [ + 'http://activitystrea.ms/schema/1.0/note' => 'Note', + 'http://activitystrea.ms/schema/1.0/comment' => 'Note', + 'http://activitystrea.ms/schema/1.0/person' => 'Person', + 'http://purl.org/zot/activity/profile' => 'Profile', + 'http://activitystrea.ms/schema/1.0/photo' => 'Image', + 'http://activitystrea.ms/schema/1.0/profile-photo' => 'Icon', + 'http://activitystrea.ms/schema/1.0/event' => 'Event', + 'http://activitystrea.ms/schema/1.0/wiki' => 'Document', + 'http://purl.org/zot/activity/location' => 'Place', + 'http://purl.org/zot/activity/chessgame' => 'Game', + 'http://purl.org/zot/activity/tagterm' => 'zot:Tag', + 'http://purl.org/zot/activity/thing' => 'zot:Thing', + 'http://purl.org/zot/activity/file' => 'zot:File', + 'http://purl.org/zot/activity/poke' => 'zot:Action', + 'http://purl.org/zot/activity/react' => 'zot:Reaction', + 'http://purl.org/zot/activity/mood' => 'zot:Mood', + + ]; + + if(array_key_exists($objs[$verb])) { + return $objs[$verb]; + } + return false; +} -- cgit v1.2.3