create terms for Diaspora mention tags - which in Diaspora are handled differently than other tag links and have to be done separately; they aren't processed by linkify_tags which handles all of our other tag processing. Also move the abook_channel clause in mod_network to the join statement. This works fine in mysql and achievies the desired result. I hope postgres can handle an expression as a join clause.
This commit is contained in:
@@ -845,8 +845,9 @@ function diaspora_post($importer,$xml,$msg) {
|
||||
// Look for tags and linkify them
|
||||
$results = linkify_tags(get_app(), $body, $importer['channel_id']);
|
||||
|
||||
$datarray['term'] = array();
|
||||
|
||||
if($results) {
|
||||
$datarray['term'] = array();
|
||||
foreach($results as $result) {
|
||||
$success = $result['success'];
|
||||
if($success['replaced']) {
|
||||
@@ -861,6 +862,37 @@ function diaspora_post($importer,$xml,$msg) {
|
||||
}
|
||||
}
|
||||
|
||||
$cnt = preg_match_all('/@\[url=(.*?)\](.*?)\[\/url\]/ism',$body,$matches,PREG_SET_ORDER);
|
||||
if($cnt) {
|
||||
foreach($matches as $mtch) {
|
||||
$datarray['term'][] = array(
|
||||
'uid' => $importer['channel_id'],
|
||||
'type' => TERM_MENTION,
|
||||
'otype' => TERM_OBJ_POST,
|
||||
'term' => $mtch[2],
|
||||
'url' => $mtch[1]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$cnt = preg_match_all('/@\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$body,$matches,PREG_SET_ORDER);
|
||||
if($cnt) {
|
||||
foreach($matches as $mtch) {
|
||||
// don't include plustags in the term
|
||||
$term = ((substr($mtch[2],-1,1) === '+') ? substr($mtch[2],0,-1) : $mtch[2]);
|
||||
$datarray['term'][] = array(
|
||||
'uid' => $importer['channel_id'],
|
||||
'type' => TERM_MENTION,
|
||||
'otype' => TERM_OBJ_POST,
|
||||
'term' => $term,
|
||||
'url' => $mtch[1]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$plink = service_plink($contact,$guid);
|
||||
|
||||
|
||||
@@ -1032,8 +1064,9 @@ function diaspora_reshare($importer,$xml,$msg) {
|
||||
// Look for tags and linkify them
|
||||
$results = linkify_tags(get_app(), $body, $importer['channel_id']);
|
||||
|
||||
$datarray['term'] = array();
|
||||
|
||||
if($results) {
|
||||
$datarray['term'] = array();
|
||||
foreach($results as $result) {
|
||||
$success = $result['success'];
|
||||
if($success['replaced']) {
|
||||
@@ -1048,6 +1081,38 @@ function diaspora_reshare($importer,$xml,$msg) {
|
||||
}
|
||||
}
|
||||
|
||||
$cnt = preg_match_all('/@\[url=(.*?)\](.*?)\[\/url\]/ism',$body,$matches,PREG_SET_ORDER);
|
||||
if($cnt) {
|
||||
foreach($matches as $mtch) {
|
||||
$datarray['term'][] = array(
|
||||
'uid' => $importer['channel_id'],
|
||||
'type' => TERM_MENTION,
|
||||
'otype' => TERM_OBJ_POST,
|
||||
'term' => $mtch[2],
|
||||
'url' => $mtch[1]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$cnt = preg_match_all('/@\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$body,$matches,PREG_SET_ORDER);
|
||||
if($cnt) {
|
||||
foreach($matches as $mtch) {
|
||||
// don't include plustags in the term
|
||||
$term = ((substr($mtch[2],-1,1) === '+') ? substr($mtch[2],0,-1) : $mtch[2]);
|
||||
$datarray['term'][] = array(
|
||||
'uid' => $importer['channel_id'],
|
||||
'type' => TERM_MENTION,
|
||||
'otype' => TERM_OBJ_POST,
|
||||
'term' => $term,
|
||||
'url' => $mtch[1]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$newbody = "[share author='" . urlencode($orig_author_name)
|
||||
. "' profile='" . $orig_author_link
|
||||
. "' avatar='" . $orig_author_photo
|
||||
@@ -1334,8 +1399,9 @@ function diaspora_comment($importer,$xml,$msg) {
|
||||
// Look for tags and linkify them
|
||||
$results = linkify_tags(get_app(), $body, $importer['channel_id']);
|
||||
|
||||
$datarray['term'] = array();
|
||||
|
||||
if($results) {
|
||||
$datarray['term'] = array();
|
||||
foreach($results as $result) {
|
||||
$success = $result['success'];
|
||||
if($success['replaced']) {
|
||||
@@ -1350,6 +1416,34 @@ function diaspora_comment($importer,$xml,$msg) {
|
||||
}
|
||||
}
|
||||
|
||||
$cnt = preg_match_all('/@\[url=(.*?)\](.*?)\[\/url\]/ism',$body,$matches,PREG_SET_ORDER);
|
||||
if($cnt) {
|
||||
foreach($matches as $mtch) {
|
||||
$datarray['term'][] = array(
|
||||
'uid' => $importer['channel_id'],
|
||||
'type' => TERM_MENTION,
|
||||
'otype' => TERM_OBJ_POST,
|
||||
'term' => $mtch[2],
|
||||
'url' => $mtch[1]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$cnt = preg_match_all('/@\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$body,$matches,PREG_SET_ORDER);
|
||||
if($cnt) {
|
||||
foreach($matches as $mtch) {
|
||||
// don't include plustags in the term
|
||||
$term = ((substr($mtch[2],-1,1) === '+') ? substr($mtch[2],0,-1) : $mtch[2]);
|
||||
$datarray['term'][] = array(
|
||||
'uid' => $importer['channel_id'],
|
||||
'type' => TERM_MENTION,
|
||||
'otype' => TERM_OBJ_POST,
|
||||
'term' => $term,
|
||||
'url' => $mtch[1]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$datarray['uid'] = $importer['channel_id'];
|
||||
$datarray['verb'] = ACTIVITY_POST;
|
||||
$datarray['mid'] = $guid;
|
||||
|
||||
Reference in New Issue
Block a user