forked from GNUsocial/gnu-social
save URIs of remote profiles marked for attention
This commit is contained in:
parent
3baff9aa98
commit
2d4e0693c8
@ -699,14 +699,16 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Is the recipient a remote group?
|
// Is the recipient a remote group?
|
||||||
$oprofile = Ostatus_profile::staticGet('uri', $recipient);
|
$oprofile = Ostatus_profile::ensureProfileURI($recipient);
|
||||||
|
|
||||||
if ($oprofile) {
|
if ($oprofile) {
|
||||||
if ($oprofile->isGroup()) {
|
if ($oprofile->isGroup()) {
|
||||||
// Deliver to local members of this remote group.
|
// Deliver to local members of this remote group.
|
||||||
// @fixme sender verification?
|
// @fixme sender verification?
|
||||||
$groups[] = $oprofile->group_id;
|
$groups[] = $oprofile->group_id;
|
||||||
} else {
|
} else {
|
||||||
common_log(LOG_DEBUG, "Skipping reply to remote profile $recipient");
|
// may be canonicalized or something
|
||||||
|
$replies[] = $oprofile->uri;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1763,6 +1765,28 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
|
|
||||||
return $file;
|
return $file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function ensureProfileURI($uri)
|
||||||
|
{
|
||||||
|
$oprofile = null;
|
||||||
|
|
||||||
|
if (preg_match("/^(\w+)\:(.*)/", $uri, $match)) {
|
||||||
|
$protocol = $match[1];
|
||||||
|
switch ($protocol) {
|
||||||
|
case 'http':
|
||||||
|
case 'https':
|
||||||
|
$oprofile = Ostatus_profile::ensureProfileURL($uri);
|
||||||
|
break;
|
||||||
|
case 'acct':
|
||||||
|
case 'mailto':
|
||||||
|
$rest = $match[2];
|
||||||
|
$oprofile = Ostatus_profile::ensureWebfinger($rest);
|
||||||
|
default:
|
||||||
|
common_log("Unrecognized URI protocol for profile: $protocol ($uri)");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user