Added more type-hints

This commit is contained in:
Roland Häder 2022-06-16 14:59:29 +02:00
parent a8a21c7fb6
commit c2e889cfae
7 changed files with 96 additions and 91 deletions

View file

@ -94,7 +94,7 @@ class Processor
*
* @return string with replaced emojis
*/
private static function replaceEmojis(int $uri_id, string $body, array $emojis)
private static function replaceEmojis(int $uri_id, string $body, array $emojis): string
{
$body = strtr($body,
array_combine(
@ -690,7 +690,7 @@ class Processor
* @param string $url message URL
* @return string with GUID
*/
private static function getGUIDByURL(string $url)
private static function getGUIDByURL(string $url): string
{
$parsed = parse_url($url);
@ -711,7 +711,7 @@ class Processor
* @param array $item
* @return boolean Is the message wanted?
*/
private static function isSolicitedMessage(array $activity, array $item)
private static function isSolicitedMessage(array $activity, array $item): bool
{
// The checks are split to improve the support when searching why a message was accepted.
if (count($activity['receiver']) != 1) {
@ -972,7 +972,7 @@ class Processor
* @return int|bool New mail table row id or false on error
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
private static function postMail($activity, $item)
private static function postMail(array $activity, array $item)
{
if (($item['gravity'] != GRAVITY_PARENT) && !DBA::exists('mail', ['uri' => $item['thr-parent'], 'uid' => $item['uid']])) {
Logger::info('Parent not found, mail will be discarded.', ['uid' => $item['uid'], 'uri' => $item['thr-parent']]);
@ -1113,7 +1113,7 @@ class Processor
* @return string fetched message URL
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function fetchMissingActivity(string $url, array $child = [], string $relay_actor = '', int $completion = Receiver::COMPLETION_MANUAL)
public static function fetchMissingActivity(string $url, array $child = [], string $relay_actor = '', int $completion = Receiver::COMPLETION_MANUAL): string
{
if (!empty($child['receiver'])) {
$uid = ActivityPub\Receiver::getFirstUserFromReceivers($child['receiver']);
@ -1208,7 +1208,7 @@ class Processor
* @param string $id object ID
* @return boolean true if message is accepted
*/
private static function acceptIncomingMessage(array $activity, string $id)
private static function acceptIncomingMessage(array $activity, string $id): bool
{
if (empty($activity['as:object'])) {
Logger::info('No object field in activity - accepted', ['id' => $id]);
@ -1248,7 +1248,7 @@ class Processor
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function followUser($activity)
public static function followUser(array $activity)
{
$uid = User::getIdForURL($activity['object_id']);
if (empty($uid)) {
@ -1326,7 +1326,7 @@ class Processor
* @param array $activity
* @throws \Exception
*/
public static function updatePerson($activity)
public static function updatePerson(array $activity)
{
if (empty($activity['object_id'])) {
return;
@ -1342,7 +1342,7 @@ class Processor
* @param array $activity
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function deletePerson($activity)
public static function deletePerson(array $activity)
{
if (empty($activity['object_id']) || empty($activity['actor'])) {
Logger::info('Empty object id or actor.');
@ -1369,7 +1369,7 @@ class Processor
* @param array $activity
* @throws \Exception
*/
public static function blockAccount($activity)
public static function blockAccount(array $activity)
{
$cid = Contact::getIdForURL($activity['actor']);
if (empty($cid)) {
@ -1392,7 +1392,7 @@ class Processor
* @param array $activity
* @throws \Exception
*/
public static function unblockAccount($activity)
public static function unblockAccount(array $activity)
{
$cid = Contact::getIdForURL($activity['actor']);
if (empty($cid)) {
@ -1416,7 +1416,7 @@ class Processor
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function acceptFollowUser($activity)
public static function acceptFollowUser(array $activity)
{
$uid = User::getIdForURL($activity['object_actor']);
if (empty($uid)) {
@ -1450,7 +1450,7 @@ class Processor
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function rejectFollowUser($activity)
public static function rejectFollowUser(array $activity)
{
$uid = User::getIdForURL($activity['object_actor']);
if (empty($uid)) {
@ -1483,7 +1483,7 @@ class Processor
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function undoActivity($activity)
public static function undoActivity(array $activity)
{
if (empty($activity['object_id'])) {
return;
@ -1508,7 +1508,7 @@ class Processor
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function undoFollowUser($activity)
public static function undoFollowUser(array $activity)
{
$uid = User::getIdForURL($activity['object_object']);
if (empty($uid)) {
@ -1543,7 +1543,7 @@ class Processor
* @param integer $cid Contact ID
* @throws \Exception
*/
private static function switchContact($cid)
private static function switchContact(int $cid)
{
$contact = DBA::selectFirst('contact', ['network', 'url'], ['id' => $cid]);
if (!DBA::isResult($contact) || in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN]) || Contact::isLocal($contact['url'])) {
@ -1563,7 +1563,7 @@ class Processor
* @return array
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
private static function getImplicitMentionList(array $parent)
private static function getImplicitMentionList(array $parent): array
{
$parent_terms = Tag::getByURIId($parent['uri-id'], [Tag::MENTION, Tag::IMPLICIT_MENTION, Tag::EXCLUSIVE_MENTION]);
@ -1601,7 +1601,7 @@ class Processor
* @param array $parent
* @return string
*/
private static function removeImplicitMentionsFromBody(string $body, array $parent)
private static function removeImplicitMentionsFromBody(string $body, array $parent): string
{
if (DI::config()->get('system', 'disable_implicit_mentions')) {
return $body;

View file

@ -84,8 +84,9 @@ class Receiver
* @param $header
* @param integer $uid User ID
* @throws \Exception
* @todo Find type for $body/$header
*/
public static function processInbox($body, $header, $uid)
public static function processInbox($body, $header, int $uid)
{
$activity = json_decode($body, true);
if (empty($activity)) {
@ -220,11 +221,11 @@ class Receiver
* @param string $object_id Object ID of the the provided object
* @param integer $uid User ID
*
* @return string with object type
* @return string with object type or NULL
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
private static function fetchObjectType($activity, $object_id, $uid = 0)
private static function fetchObjectType(array $activity, string $object_id, int $uid = 0)
{
if (!empty($activity['as:object'])) {
$object_type = JsonLD::fetchElement($activity['as:object'], '@type');
@ -268,7 +269,7 @@ class Receiver
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function prepareObjectData($activity, $uid, $push, &$trust_source)
public static function prepareObjectData(array $activity, int $uid, bool $push, bool &$trust_source): array
{
$id = JsonLD::fetchElement($activity, '@id');
if (!empty($id) && !$trust_source) {
@ -458,7 +459,7 @@ class Receiver
* @param array $receivers Array with receivers
* @return integer user id;
*/
public static function getFirstUserFromReceivers($receivers)
public static function getFirstUserFromReceivers(array $receivers): int
{
foreach ($receivers as $receiver) {
if (!empty($receiver)) {
@ -479,7 +480,7 @@ class Receiver
* @param array $signer The signer of the post
* @throws \Exception
*/
public static function processActivity($activity, string $body = '', int $uid = null, bool $trust_source = false, bool $push = false, array $signer = [])
public static function processActivity(array $activity, string $body = '', int $uid = null, bool $trust_source = false, bool $push = false, array $signer = [])
{
$type = JsonLD::fetchElement($activity, '@type');
if (!$type) {
@ -818,7 +819,7 @@ class Receiver
*
* @return int user id
*/
public static function getBestUserForActivity(array $activity)
public static function getBestUserForActivity(array $activity): int
{
$uid = 0;
$actor = JsonLD::fetchElement($activity, 'as:actor', '@id') ?? '';
@ -844,7 +845,8 @@ class Receiver
return $uid;
}
public static function getReceiverURL($activity)
// @TODO Missing documentation
public static function getReceiverURL(array $activity): array
{
$urls = [];
@ -876,7 +878,7 @@ class Receiver
* @return array with receivers (user id)
* @throws \Exception
*/
private static function getReceivers($activity, $actor, $tags = [], $fetch_unlisted = false)
private static function getReceivers(array $activity, string $actor, array $tags = [], bool $fetch_unlisted = false): array
{
$reply = $receivers = [];
@ -1005,7 +1007,7 @@ class Receiver
* @return array with receivers (user id)
* @throws \Exception
*/
private static function getReceiverForActor($actor, $tags, $receivers, $target_type, $profile)
private static function getReceiverForActor(string $actor, array $tags, array $receivers, int $target_type, array $profile): array
{
$basecondition = ['rel' => [Contact::SHARING, Contact::FRIEND, Contact::FOLLOWER],
'network' => Protocol::FEDERATED, 'archive' => false, 'pending' => false];
@ -1047,13 +1049,12 @@ class Receiver
* Tests if the contact is a valid receiver for this actor
*
* @param array $contact
* @param string $actor
* @param array $tags
*
* @return bool with receivers (user id)
* @throws \Exception
*/
private static function isValidReceiverForActor($contact, $tags)
private static function isValidReceiverForActor(array $contact, string $tags): bool
{
// Are we following the contact? Then this is a valid receiver
if (in_array($contact['rel'], [Contact::SHARING, Contact::FRIEND])) {
@ -1089,7 +1090,7 @@ class Receiver
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function switchContact($cid, $uid, $url)
public static function switchContact(int $cid, int $uid, string $url)
{
if (DBA::exists('contact', ['id' => $cid, 'network' => Protocol::ACTIVITYPUB])) {
Logger::info('Contact is already ActivityPub', ['id' => $cid, 'uid' => $uid, 'url' => $url]);
@ -1108,7 +1109,7 @@ class Receiver
}
/**
*
* @TODO Fix documentation and type-hints
*
* @param $receivers
* @param $actor
@ -1135,14 +1136,14 @@ class Receiver
}
/**
*
* @TODO Fix documentation and type-hints
*
* @param $object_data
* @param array $activity
*
* @return mixed
*/
private static function addActivityFields($object_data, $activity)
private static function addActivityFields($object_data, array $activity)
{
if (!empty($activity['published']) && empty($object_data['published'])) {
$object_data['published'] = JsonLD::fetchElement($activity, 'as:published', '@value');
@ -1262,7 +1263,7 @@ class Receiver
* @param array $languages
* @return array Languages
*/
public static function processLanguages(array $languages)
public static function processLanguages(array $languages): array
{
if (empty($languages)) {
return [];
@ -1285,7 +1286,7 @@ class Receiver
*
* @return array with tags in a simplified format
*/
public static function processTags(array $tags)
public static function processTags(array $tags): array
{
$taglist = [];
@ -1317,7 +1318,7 @@ class Receiver
* @param array $emojis
* @return array with emojis in a simplified format
*/
private static function processEmojis(array $emojis)
private static function processEmojis(array $emojis): array
{
$emojilist = [];
@ -1343,7 +1344,7 @@ class Receiver
*
* @return array Attachments in a simplified format
*/
private static function processAttachments(array $attachments)
private static function processAttachments(array $attachments): array
{
$attachlist = [];
@ -1460,7 +1461,7 @@ class Receiver
*
* @return array Questions in a simplified format
*/
private static function processQuestion(array $object)
private static function processQuestion(array $object): array
{
$question = [];
@ -1518,10 +1519,10 @@ class Receiver
* @param array $object
* @param array $object_data
*
* @return array
* @return array Object data (?)
* @throws \Exception
*/
private static function getSource($object, $object_data)
private static function getSource(array $object, array $object_data): array
{
$object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/bbcode');
$object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
@ -1650,10 +1651,10 @@ class Receiver
*
* @param array $object
*
* @return array
* @return array|bool Object data or FALSE if $object does not contain @id element
* @throws \Exception
*/
private static function processObject($object)
private static function processObject(array $object)
{
if (!JsonLD::fetchElement($object, '@id')) {
return false;

View file

@ -68,7 +68,7 @@ class Transmitter
* @param array $inboxes
* @return array inboxes with added relay servers
*/
public static function addRelayServerInboxes(array $inboxes = [])
public static function addRelayServerInboxes(array $inboxes = []): array
{
foreach (Relay::getList(['inbox']) as $contact) {
$inboxes[$contact['inbox']] = $contact['inbox'];
@ -83,7 +83,7 @@ class Transmitter
* @param array $inboxes
* @return array inboxes with added relay servers
*/
public static function addRelayServerInboxesForItem(int $item_id, array $inboxes = [])
public static function addRelayServerInboxesForItem(int $item_id, array $inboxes = []): array
{
$item = Post::selectFirst(['uid'], ['id' => $item_id]);
if (empty($item)) {