match schemeless activities per the latest activity spec

This commit is contained in:
Mike Macgirvin 2010-10-27 15:50:44 -07:00
parent 78351df785
commit f01e8743fc
2 changed files with 14 additions and 6 deletions

View File

@ -1288,3 +1288,11 @@ function logger($msg) {
@file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $msg . "\n", FILE_APPEND); @file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $msg . "\n", FILE_APPEND);
return; return;
}} }}
if(! function_exists('activity_match')) {
function activity_match($haystack,$needle) {
if(($haystack === $needle) || (($basename($needle) === $haystack) && strstr($needle,NAMESPACE_ACTIVITY_SCHEMA)))
return true;
return false;
}}

View File

@ -301,7 +301,7 @@ function get_atom_elements($feed,$item) {
$rawactor = $item->get_item_tags(NAMESPACE_ACTIVITY, 'actor'); $rawactor = $item->get_item_tags(NAMESPACE_ACTIVITY, 'actor');
if($rawactor && $rawactor[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data'] === ACTIVITY_OBJ_PERSON) { if($rawactor && activity_match($rawactor[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data'],ACTIVITY_OBJ_PERSON)) {
$base = $rawactor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']; $base = $rawactor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'];
if($base && count($base)) { if($base && count($base)) {
foreach($base as $link) { foreach($base as $link) {
@ -333,7 +333,7 @@ function get_atom_elements($feed,$item) {
$rawactor = $feed->get_feed_tags(NAMESPACE_ACTIVITY, 'subject'); $rawactor = $feed->get_feed_tags(NAMESPACE_ACTIVITY, 'subject');
if($rawactor && $rawactor[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data'] === ACTIVITY_OBJ_PERSON) { if($rawactor && activity_match($rawactor[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data'],ACTIVITY_OBJ_PERSON)) {
$base = $rawactor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']; $base = $rawactor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'];
if($base && count($base)) { if($base && count($base)) {
@ -482,7 +482,7 @@ function item_store($arr) {
$arr['gravity'] = intval($arr['gravity']); $arr['gravity'] = intval($arr['gravity']);
elseif($arr['parent-uri'] == $arr['uri']) elseif($arr['parent-uri'] == $arr['uri'])
$arr['gravity'] = 0; $arr['gravity'] = 0;
elseif($arr['verb'] == ACTIVITY_POST) elseif(activity_match($arr['verb'],ACTIVITY_POST))
$arr['gravity'] = 6; $arr['gravity'] = 6;
if(! x($arr,'type')) if(! x($arr,'type'))
@ -891,7 +891,7 @@ function consume_feed($xml,$importer,$contact, &$hub) {
$datarray['parent-uri'] = $parent_uri; $datarray['parent-uri'] = $parent_uri;
$datarray['uid'] = $importer['uid']; $datarray['uid'] = $importer['uid'];
$datarray['contact-id'] = $contact['id']; $datarray['contact-id'] = $contact['id'];
if(($datarray['verb'] === ACTIVITY_LIKE) || ($datarray['verb'] === ACTIVITY_DISLIKE)) { if((activity_match($datarray['verb'],ACTIVITY_LIKE)) || (activity_match($datarray['verb'],ACTIVITY_DISLIKE))) {
$datarray['type'] = 'activity'; $datarray['type'] = 'activity';
$datarray['gravity'] = GRAVITY_LIKE; $datarray['gravity'] = GRAVITY_LIKE;
} }
@ -922,12 +922,12 @@ function consume_feed($xml,$importer,$contact, &$hub) {
} }
$datarray = get_atom_elements($feed,$item); $datarray = get_atom_elements($feed,$item);
if($datarray['verb'] === ACTIVITY_FOLLOW) { if(activity_match($datarray['verb'],ACTIVITY_FOLLOW)) {
logger('consume-feed: New follower'); logger('consume-feed: New follower');
new_follower($importer,$contact,$datarray,$item); new_follower($importer,$contact,$datarray,$item);
return; return;
} }
if($datarray['verb'] === ACTIVITY_UNFOLLOW) { if(activity_match($datarray['verb'],ACTIVITY_UNFOLLOW)) {
lose_follower($importer,$contact,$datarray,$item); lose_follower($importer,$contact,$datarray,$item);
return; return;
} }