From c2e889cfaeaa1b35333750cd6beda4090ee99f84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20H=C3=A4der?= Date: Thu, 16 Jun 2022 14:59:29 +0200 Subject: [PATCH] Added more type-hints --- src/Model/APContact.php | 2 +- src/Protocol/Activity.php | 4 +- src/Protocol/ActivityPub.php | 12 ++-- src/Protocol/ActivityPub/Processor.php | 36 +++++------ src/Protocol/ActivityPub/Receiver.php | 51 ++++++++-------- src/Protocol/ActivityPub/Transmitter.php | 4 +- src/Protocol/DFRN.php | 78 +++++++++++++----------- 7 files changed, 96 insertions(+), 91 deletions(-) diff --git a/src/Model/APContact.php b/src/Model/APContact.php index 9c972efaf2..a934848612 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -117,7 +117,7 @@ class APContact * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function getByURL($url, $update = null) + public static function getByURL(string $url, $update = null) { if (empty($url) || Network::isUrlBlocked($url)) { Logger::info('Domain is blocked', ['url' => $url]); diff --git a/src/Protocol/Activity.php b/src/Protocol/Activity.php index e75b1cf507..0f15e851c3 100644 --- a/src/Protocol/Activity.php +++ b/src/Protocol/Activity.php @@ -212,7 +212,7 @@ final class Activity * * @return bool True, if the activity is hidden */ - public function isHidden(string $activity) + public function isHidden(string $activity): bool { foreach (self::HIDDEN_ACTIVITIES as $hiddenActivity) { if ($this->match($activity, $hiddenActivity)) { @@ -231,7 +231,7 @@ final class Activity * * @return boolean */ - public function match(string $haystack, string $needle) + public function match(string $haystack, string $needle): bool { return (($haystack === $needle) || ((basename($needle) === $haystack) && diff --git a/src/Protocol/ActivityPub.php b/src/Protocol/ActivityPub.php index 78496e2433..b9ab3931bd 100644 --- a/src/Protocol/ActivityPub.php +++ b/src/Protocol/ActivityPub.php @@ -104,12 +104,12 @@ class ActivityPub * @return array * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - public static function fetchContent(string $url, int $uid = 0) + public static function fetchContent(string $url, int $uid = 0): array { return HTTPSignature::fetch($url, $uid); } - private static function getAccountType($apcontact) + private static function getAccountType(array $apcontact): int { $accounttype = -1; @@ -146,7 +146,7 @@ class ActivityPub * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function probeProfile($url, $update = true) + public static function probeProfile(string $url, bool $update = true): array { $apcontact = APContact::getByURL($url, $update); if (empty($apcontact)) { @@ -204,7 +204,7 @@ class ActivityPub * @param integer $uid User ID * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - public static function fetchOutbox($url, $uid) + public static function fetchOutbox(string $url, int $uid) { $data = self::fetchContent($url, $uid); if (empty($data)) { @@ -235,7 +235,7 @@ class ActivityPub * @param integer $uid Optional user id * @return array Endpoint items */ - public static function fetchItems(string $url, int $uid = 0) + public static function fetchItems(string $url, int $uid = 0): array { $data = self::fetchContent($url, $uid); if (empty($data)) { @@ -268,7 +268,7 @@ class ActivityPub * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function isSupportedByContactUrl($url, $update = null) + public static function isSupportedByContactUrl(string $url, $update = null) { return !empty(APContact::getByURL($url, $update)); } diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 2288427b47..c2333004f5 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -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; diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index 4a13872983..05c40222b1 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -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; diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 023bd5c83c..8483d5d1dd 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -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)) { diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 0fb7394579..fc72f7e371 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -72,7 +72,7 @@ class DFRN * @return array importer * @throws \Exception */ - public static function getImporter($cid, $uid = 0) + public static function getImporter(int $cid, int $uid = 0): array { $condition = ['id' => $cid, 'blocked' => false, 'pending' => false]; $contact = DBA::selectFirst('contact', [], $condition); @@ -115,7 +115,7 @@ class DFRN * @throws \ImagickException * @todo Find proper type-hints */ - public static function entries($items, $owner) + public static function entries(array $items, array $owner): string { $doc = new DOMDocument('1.0', 'utf-8'); $doc->formatOutput = true; @@ -152,7 +152,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function itemFeed(int $uri_id, int $uid, bool $conversation = false) + public static function itemFeed(int $uri_id, int $uid, bool $conversation = false): string { if ($conversation) { $condition = ['parent-uri-id' => $uri_id]; @@ -222,7 +222,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo Find proper type-hints */ - public static function mail(array $mail, array $owner) + public static function mail(array $mail, array $owner): string { $doc = new DOMDocument('1.0', 'utf-8'); $doc->formatOutput = true; @@ -259,7 +259,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo Find proper type-hints */ - public static function fsuggest($item, $owner) + public static function fsuggest(array $item, array $owner): string { $doc = new DOMDocument('1.0', 'utf-8'); $doc->formatOutput = true; @@ -289,7 +289,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo Find proper type-hints */ - public static function relocate($owner, $uid) + public static function relocate(array $owner, int $uid): string { /* get site pubkey. this could be a new installation with no site keys*/ @@ -346,9 +346,9 @@ class DFRN * * @return object XML root object * @throws \Friendica\Network\HTTPException\InternalServerErrorException - * @todo Find proper type-hints + * @todo Find proper type-hint for returned type */ - private static function addHeader(DOMDocument $doc, $owner, $authorelement, $alternatelink = "", $public = false) + private static function addHeader(DOMDocument $doc, array $owner, string $authorelement, string $alternatelink = "", bool $public = false) { if ($alternatelink == "") { @@ -428,8 +428,12 @@ class DFRN * viewer's timezone also, but first we are going to convert it from the birthday * person's timezone to GMT - so the viewer may find the birthday starting at * 6:00PM the day before, but that will correspond to midnight to the birthday person. + * + * @param int $uid User id + * @param string $tz Time zone string, like UTC + * @return string Formatted birthday string */ - private static function determineNextBirthday($uid, $tz) + private static function determineNextBirthday(int $uid, string $tz): string { $birthday = ''; @@ -467,7 +471,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo Find proper type-hints */ - private static function addAuthor(DOMDocument $doc, array $owner, $authorelement, $public) + private static function addAuthor(DOMDocument $doc, array $owner, string $authorelement, bool $public) { // Should the profile be "unsearchable" in the net? Then add the "hide" element $hide = DBA::exists('profile', ['uid' => $owner['uid'], 'net-publish' => false]); @@ -592,7 +596,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo Find proper type-hints */ - private static function addEntryAuthor(DOMDocument $doc, $element, $contact_url, $item) + private static function addEntryAuthor(DOMDocument $doc, string $element, string $contact_url, array $item) { $author = $doc->createElement($element); @@ -637,7 +641,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo Find proper type-hints */ - private static function createActivity(DOMDocument $doc, $element, $activity, $uriid) + private static function createActivity(DOMDocument $doc, string $element, string $activity, int $uriid) { if ($activity) { $entry = $doc->createElement($element); @@ -703,7 +707,7 @@ class DFRN * @return void XML attachment object * @todo Find proper type-hints */ - private static function getAttachment($doc, $root, $item) + private static function getAttachment($doc, $root, array $item) { foreach (Post\Media::getByURIId($item['uri-id'], [Post\Media::DOCUMENT, Post\Media::TORRENT, Post\Media::UNKNOWN]) as $attachment) { $attributes = ['rel' => 'enclosure', @@ -737,7 +741,7 @@ class DFRN * @throws \ImagickException * @todo Find proper type-hints */ - private static function entry(DOMDocument $doc, $type, array $item, array $owner, $comment = false, $cid = 0, $single = false) + private static function entry(DOMDocument $doc, string $type, array $item, array $owner, bool $comment = false, int $cid = 0, bool $single = false) { $mentioned = []; @@ -961,13 +965,12 @@ class DFRN * @param array $owner Owner record * @param array $contact Contact record of the receiver * @param string $atom Content that will be transmitted - * * @param bool $public_batch * @return int Deliver status. Negative values mean an error. * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function transmit($owner, $contact, $atom, $public_batch = false) + public static function transmit(array $owner, array $contact, string $atom, bool $public_batch = false) { if (!$public_batch) { if (empty($contact['addr'])) { @@ -1060,7 +1063,7 @@ class DFRN * @throws \ImagickException * @todo Find good type-hints for all parameter */ - private static function fetchauthor(\DOMXPath $xpath, \DOMNode $context, $importer, $element, $onlyfetch, $xml = "") + private static function fetchauthor(\DOMXPath $xpath, \DOMNode $context, array $importer, string $element, bool $onlyfetch, string $xml = ""): array { $author = []; $author["name"] = XML::getFirstNodeValue($xpath, $element."/atom:name/text()", $context); @@ -1280,7 +1283,7 @@ class DFRN * @return string XML string * @todo Find good type-hints for all parameter */ - private static function transformActivity($xpath, $activity, $element) + private static function transformActivity($xpath, $activity, string $element): string { if (!is_object($activity)) { return ""; @@ -1335,7 +1338,7 @@ class DFRN * @throws \Exception * @todo Find good type-hints for all parameter */ - private static function processMail($xpath, $mail, $importer) + private static function processMail($xpath, $mail, array $importer) { Logger::notice("Processing mails"); @@ -1364,7 +1367,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo Find good type-hints for all parameter */ - private static function processSuggestion($xpath, $suggestion, $importer) + private static function processSuggestion($xpath, $suggestion, array $importer) { Logger::notice('Processing suggestions'); @@ -1383,7 +1386,7 @@ class DFRN * @param integer $from_cid * @return bool Was the adding successful? */ - private static function addSuggestion(int $uid, int $cid, int $from_cid, string $note = '') + private static function addSuggestion(int $uid, int $cid, int $from_cid, string $note = ''): bool { $owner = User::getOwnerDataById($uid); $contact = Contact::getById($cid); @@ -1440,7 +1443,7 @@ class DFRN * @throws \ImagickException * @todo Find good type-hints for all parameter */ - private static function processRelocation($xpath, $relocation, $importer) + private static function processRelocation($xpath, $relocation, array $importer): bool { Logger::notice("Processing relocations"); @@ -1510,7 +1513,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo set proper type-hints (array?) */ - private static function updateContent($current, $item, $importer, $entrytype) + private static function updateContent(array $current, array $item, array $importer, int $entrytype) { $changed = false; @@ -1542,7 +1545,7 @@ class DFRN * @throws \Exception * @todo set proper type-hints (array?) */ - private static function getEntryType($importer, $item) + private static function getEntryType(array $importer, array $item): int { if ($item["thr-parent"] != $item["uri"]) { $community = false; @@ -1638,7 +1641,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo set proper type-hints (array?) */ - private static function processVerbs($entrytype, $importer, &$item, &$is_like) + private static function processVerbs(int $entrytype, array $importer, array &$item, bool &$is_like) { Logger::info("Process verb ".$item["verb"]." and object-type ".$item["object-type"]." for entrytype ".$entrytype); @@ -1734,7 +1737,7 @@ class DFRN * @return void * @todo set proper type-hints */ - private static function parseLinks($links, &$item) + private static function parseLinks($links, array &$item) { $rel = ""; $href = ""; @@ -1772,7 +1775,7 @@ class DFRN * @param array $imporer * @return boolean Is the message wanted? */ - private static function isSolicitedMessage(array $item, array $importer) + private static function isSolicitedMessage(array $item, array $importer): bool { if (DBA::exists('contact', ["`nurl` = ? AND `uid` != ? AND `rel` IN (?, ?)", Strings::normaliseLink($item["author-link"]), 0, Contact::FRIEND, Contact::SHARING])) { @@ -1807,12 +1810,13 @@ class DFRN * @param object $entry entry elements * @param array $importer Record of the importer user mixed with contact of the content * @param string $xml xml + * @param int $protocol Protocol * @return void * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException * @todo Add type-hints */ - private static function processEntry($header, $xpath, $entry, $importer, $xml, $protocol) + private static function processEntry(array $header, $xpath, $entry, array $importer, string $xml, int $protocol) { Logger::notice("Processing entries"); @@ -2163,7 +2167,7 @@ class DFRN * @throws \Exception * @todo set proper type-hints */ - private static function processDeletion($xpath, $deletion, $importer) + private static function processDeletion($xpath, $deletion, array $importer) { Logger::notice("Processing deletions"); $uri = null; @@ -2224,9 +2228,8 @@ class DFRN * @return integer Import status * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException - * @todo set proper type-hints */ - public static function import($xml, $importer, $protocol, $direction) + public static function import(string $xml, array $importer, int $protocol, int $direction): int { if ($xml == "") { return 400; @@ -2365,7 +2368,7 @@ class DFRN * * @return string activity verb */ - private static function constructVerb(array $item) + private static function constructVerb(array $item): string { if ($item['verb']) { return $item['verb']; @@ -2373,7 +2376,8 @@ class DFRN return Activity::POST; } - private static function tgroupCheck($uid, $item) + // @TODO Documentation missing + private static function tgroupCheck(int $uid, array $item): bool { $mention = false; @@ -2421,12 +2425,12 @@ class DFRN * item is assumed to be up-to-date. If the timestamps are equal it * assumes the update has been seen before and should be ignored. * - * @param $existing - * @param $update + * @param array $existing + * @param array $update * @return bool * @throws \Exception */ - private static function isEditedTimestampNewer($existing, $update) + private static function isEditedTimestampNewer(array $existing, array $update): bool { if (empty($existing['edited'])) { return true; @@ -2449,7 +2453,7 @@ class DFRN * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function isSupportedByContactUrl($url) + public static function isSupportedByContactUrl(string $url): bool { $probe = Probe::uri($url, Protocol::DFRN); return $probe['network'] == Protocol::DFRN;