From b76634ea0c60d4d26204f13d6d05225116d0ccb0 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 29 Aug 2021 13:37:08 +0200 Subject: [PATCH 1/5] Catch TransferExceptions for HTTPClient::finalUrl() in case the headers are empty --- src/Network/HTTPClient.php | 2 +- src/Network/IHTTPClient.php | 5 ++++- src/Protocol/Feed.php | 7 ++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Network/HTTPClient.php b/src/Network/HTTPClient.php index 053c65c0d1..301d4c3a7a 100644 --- a/src/Network/HTTPClient.php +++ b/src/Network/HTTPClient.php @@ -220,7 +220,7 @@ class HTTPClient implements IHTTPClient $urlResult = $this->resolver->resolveURL($url); if ($urlResult->didErrorOccur()) { - throw new TransferException($urlResult->getErrorMessageString()); + throw new TransferException($urlResult->getErrorMessageString(), $urlResult->getHTTPStatusCode()); } return $urlResult->getURL(); diff --git a/src/Network/IHTTPClient.php b/src/Network/IHTTPClient.php index 8716805532..0b51d6480e 100644 --- a/src/Network/IHTTPClient.php +++ b/src/Network/IHTTPClient.php @@ -21,6 +21,8 @@ namespace Friendica\Network; +use GuzzleHttp\Exception\TransferException; + /** * Interface for calling HTTP requests and returning their responses */ @@ -124,7 +126,8 @@ interface IHTTPClient * @param string $url A user-submitted URL * * @return string A canonical URL - * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * + * @throws TransferException In case there's an error during the resolving */ public function finalUrl(string $url); } diff --git a/src/Protocol/Feed.php b/src/Protocol/Feed.php index 8ab7066ea9..07fa04518a 100644 --- a/src/Protocol/Feed.php +++ b/src/Protocol/Feed.php @@ -42,6 +42,7 @@ use Friendica\Util\ParseUrl; use Friendica\Util\Proxy; use Friendica\Util\Strings; use Friendica\Util\XML; +use GuzzleHttp\Exception\TransferException; /** * This class contain functions to import feeds (RSS/RDF/Atom) @@ -297,7 +298,11 @@ class Feed $orig_plink = $item["plink"]; - $item["plink"] = DI::httpClient()->finalUrl($item["plink"]); + try { + $item["plink"] = DI::httpClient()->finalUrl($item["plink"]); + } catch (TransferException $exception) { + Logger::notice('Item URL couldn\'t get expanded', ['url' => $item["plink"], 'exception' => $exception]); + } $item["title"] = XML::getFirstNodeValue($xpath, 'atom:title/text()', $entry); From d517fed12dc0b9acee3397f24b6c1b16b7382851 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 29 Aug 2021 13:49:10 +0200 Subject: [PATCH 2/5] Add test for https://github.com/friendica/friendica/issues/10473#issuecomment-907749093 --- tests/src/Network/HTTPClientTest.php | 36 ++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/src/Network/HTTPClientTest.php diff --git a/tests/src/Network/HTTPClientTest.php b/tests/src/Network/HTTPClientTest.php new file mode 100644 index 0000000000..89f2510f30 --- /dev/null +++ b/tests/src/Network/HTTPClientTest.php @@ -0,0 +1,36 @@ +setupHttpMockHandler(); + } + + /** + * Test for issue https://github.com/friendica/friendica/issues/10473#issuecomment-907749093 + */ + public function testInvalidURI() + { + $this->httpRequestHandler->setHandler(new MockHandler([ + new Response(301, ['Location' => 'https:///']), + ])); + + $httpClient = DI::httpClient(); + $httpClient->get('https:///'); + + self::assertEquals(1,1); + } +} From 58001c729fdccd412e0796c83825ff88071d8b67 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 29 Aug 2021 13:56:56 +0200 Subject: [PATCH 3/5] Fix https://github.com/friendica/friendica/issues/10473#issuecomment-907749093 --- src/Network/HTTPClient.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Network/HTTPClient.php b/src/Network/HTTPClient.php index 301d4c3a7a..4467b2dea2 100644 --- a/src/Network/HTTPClient.php +++ b/src/Network/HTTPClient.php @@ -148,7 +148,7 @@ class HTTPClient implements IHTTPClient } else { return new CurlResult($url, '', ['http_code' => $exception->getCode()], $exception->getCode(), ''); } - } catch (InvalidArgumentException $argumentException) { + } catch (InvalidArgumentException | \InvalidArgumentException $argumentException) { $this->logger->info('Invalid Argument for HTTP call.', ['url' => $url, 'method' => $method, 'exception' => $argumentException]); return new CurlResult($url, '', ['http_code' => $argumentException->getCode()], $argumentException->getCode(), $argumentException->getMessage()); } finally { From 0d6884a8a9ffc4f498503aafc993e399526647b0 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 29 Aug 2021 14:05:38 +0200 Subject: [PATCH 4/5] Fix `http_code` usage in case of failures --- src/Network/HTTPClient.php | 4 ++-- tests/src/Network/HTTPClientTest.php | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Network/HTTPClient.php b/src/Network/HTTPClient.php index 4467b2dea2..004af57f9a 100644 --- a/src/Network/HTTPClient.php +++ b/src/Network/HTTPClient.php @@ -146,11 +146,11 @@ class HTTPClient implements IHTTPClient $exception->hasResponse()) { return new GuzzleResponse($exception->getResponse(), $url, $exception->getCode(), ''); } else { - return new CurlResult($url, '', ['http_code' => $exception->getCode()], $exception->getCode(), ''); + return new CurlResult($url, '', ['http_code' => 500], $exception->getCode(), ''); } } catch (InvalidArgumentException | \InvalidArgumentException $argumentException) { $this->logger->info('Invalid Argument for HTTP call.', ['url' => $url, 'method' => $method, 'exception' => $argumentException]); - return new CurlResult($url, '', ['http_code' => $argumentException->getCode()], $argumentException->getCode(), $argumentException->getMessage()); + return new CurlResult($url, '', ['http_code' => 500], $argumentException->getCode(), $argumentException->getMessage()); } finally { $this->logger->debug('Request stop.', ['url' => $url, 'method' => $method]); $this->profiler->stopRecording(); diff --git a/tests/src/Network/HTTPClientTest.php b/tests/src/Network/HTTPClientTest.php index 89f2510f30..0e3f74c096 100644 --- a/tests/src/Network/HTTPClientTest.php +++ b/tests/src/Network/HTTPClientTest.php @@ -28,9 +28,6 @@ class HTTPClientTest extends MockedTest new Response(301, ['Location' => 'https:///']), ])); - $httpClient = DI::httpClient(); - $httpClient->get('https:///'); - - self::assertEquals(1,1); + self::assertFalse(DI::httpClient()->get('https://friendica.local')->isSuccess()); } } From 51fe8fc21060a6e646159ccc444cd2c31920f175 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 29 Aug 2021 14:07:31 +0200 Subject: [PATCH 5/5] Update messages.po (changed branch) --- view/lang/C/messages.po | 209 ++++++++++++++++++++-------------------- 1 file changed, 105 insertions(+), 104 deletions(-) diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po index 402eff94d8..b81747819c 100644 --- a/view/lang/C/messages.po +++ b/view/lang/C/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2021.09-dev\n" +"Project-Id-Version: 2021.09-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 08:57+0000\n" +"POT-Creation-Date: 2021-08-29 14:07+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,7 +39,7 @@ msgstr "" #: include/api.php:4437 mod/photos.php:89 mod/photos.php:198 mod/photos.php:626 #: mod/photos.php:1034 mod/photos.php:1051 mod/photos.php:1597 -#: src/Model/User.php:1112 src/Model/User.php:1120 src/Model/User.php:1128 +#: src/Model/User.php:1118 src/Model/User.php:1126 src/Model/User.php:1134 #: src/Module/Settings/Profile/Photo/Crop.php:101 #: src/Module/Settings/Profile/Photo/Crop.php:117 #: src/Module/Settings/Profile/Photo/Crop.php:133 @@ -236,7 +236,7 @@ msgstr "" msgid "Poke" msgstr "" -#: include/conversation.php:865 mod/follow.php:139 src/Content/Widget.php:76 +#: include/conversation.php:865 mod/follow.php:138 src/Content/Widget.php:76 #: src/Model/Contact.php:1042 src/Model/Contact.php:1055 #: view/theme/vier/theme.php:172 msgid "Connect/Follow" @@ -481,14 +481,14 @@ msgid "Preview" msgstr "" #: include/conversation.php:1161 mod/editpost.php:130 mod/fbrowser.php:105 -#: mod/fbrowser.php:134 mod/follow.php:145 mod/photos.php:1028 +#: mod/fbrowser.php:134 mod/follow.php:144 mod/photos.php:1028 #: mod/photos.php:1134 mod/tagrm.php:37 mod/tagrm.php:129 mod/unfollow.php:97 #: src/Module/Contact.php:422 src/Module/RemoteFollow.php:116 msgid "Cancel" msgstr "" #: include/conversation.php:1168 mod/editpost.php:134 -#: src/Content/Widget/VCard.php:107 src/Model/Profile.php:450 +#: src/Content/Widget/VCard.php:107 src/Model/Profile.php:459 msgid "Message" msgstr "" @@ -752,7 +752,7 @@ msgid "%s %s shared a new post" msgstr "" #: mod/api.php:30 mod/editpost.php:38 mod/events.php:236 mod/follow.php:56 -#: mod/follow.php:131 mod/item.php:184 mod/item.php:189 mod/item.php:934 +#: mod/follow.php:130 mod/item.php:184 mod/item.php:189 mod/item.php:934 #: mod/message.php:69 mod/message.php:111 mod/notes.php:44 #: mod/ostatus_subscribe.php:32 mod/photos.php:163 mod/photos.php:917 #: mod/repair_ostatus.php:31 mod/settings.php:47 mod/settings.php:57 @@ -796,10 +796,11 @@ msgstr "" #: mod/cal.php:61 mod/cal.php:78 mod/photos.php:69 mod/photos.php:143 #: mod/photos.php:824 mod/videos.php:49 mod/videos.php:70 mod/videos.php:111 -#: src/Module/HCard.php:54 src/Module/Profile/Common.php:41 -#: src/Module/Profile/Common.php:52 src/Module/Profile/Contacts.php:40 -#: src/Module/Profile/Contacts.php:50 src/Module/Profile/Status.php:58 -#: src/Module/Register.php:254 src/Module/RemoteFollow.php:49 +#: src/Model/Profile.php:228 src/Module/HCard.php:52 +#: src/Module/Profile/Common.php:41 src/Module/Profile/Common.php:52 +#: src/Module/Profile/Contacts.php:40 src/Module/Profile/Contacts.php:50 +#: src/Module/Profile/Status.php:58 src/Module/Register.php:254 +#: src/Module/RemoteFollow.php:49 msgid "User not found." msgstr "" @@ -851,7 +852,7 @@ msgstr "" msgid "list" msgstr "" -#: mod/cal.php:274 src/Console/User.php:182 src/Model/User.php:674 +#: mod/cal.php:274 src/Console/User.php:182 src/Model/User.php:680 #: src/Module/Admin/Users/Active.php:73 src/Module/Admin/Users/Blocked.php:74 #: src/Module/Admin/Users/Index.php:80 src/Module/Admin/Users/Pending.php:71 #: src/Module/Api/Twitter/ContactEndpoint.php:71 @@ -960,7 +961,7 @@ msgstr "" #: src/Module/Admin/Blocklist/Server.php:80 #: src/Module/Admin/Blocklist/Server.php:99 #: src/Module/Admin/Blocklist/Server.php:100 -#: src/Module/Admin/Item/Delete.php:70 src/Module/Debug/Probe.php:60 +#: src/Module/Admin/Item/Delete.php:70 src/Module/Debug/Probe.php:61 #: src/Module/Install.php:200 src/Module/Install.php:233 #: src/Module/Install.php:238 src/Module/Install.php:257 #: src/Module/Install.php:268 src/Module/Install.php:273 @@ -992,7 +993,7 @@ msgstr "" #: mod/events.php:568 src/Content/Widget/VCard.php:98 src/Model/Event.php:86 #: src/Model/Event.php:113 src/Model/Event.php:483 src/Model/Event.php:969 -#: src/Model/Profile.php:358 src/Module/Contact.php:607 +#: src/Model/Profile.php:367 src/Module/Contact.php:607 #: src/Module/Directory.php:150 src/Module/Notifications/Introductions.php:166 #: src/Module/Profile/Profile.php:194 msgid "Location:" @@ -1013,7 +1014,7 @@ msgstr "" #: src/Module/Contact/Advanced.php:133 src/Module/Contact/Poke.php:158 #: src/Module/Debug/ActivityPubConversion.php:141 #: src/Module/Debug/Babel.php:313 src/Module/Debug/Localtime.php:64 -#: src/Module/Debug/Probe.php:55 src/Module/Debug/WebFinger.php:53 +#: src/Module/Debug/Probe.php:56 src/Module/Debug/WebFinger.php:53 #: src/Module/Delegation.php:153 src/Module/FriendSuggest.php:129 #: src/Module/Install.php:245 src/Module/Install.php:287 #: src/Module/Install.php:324 src/Module/Invite.php:177 @@ -1051,62 +1052,62 @@ msgstr "" msgid "Files" msgstr "" -#: mod/follow.php:75 mod/unfollow.php:96 src/Module/RemoteFollow.php:115 +#: mod/follow.php:74 mod/unfollow.php:96 src/Module/RemoteFollow.php:115 msgid "Submit Request" msgstr "" -#: mod/follow.php:85 +#: mod/follow.php:84 msgid "You already added this contact." msgstr "" -#: mod/follow.php:101 +#: mod/follow.php:100 msgid "The network type couldn't be detected. Contact can't be added." msgstr "" -#: mod/follow.php:109 +#: mod/follow.php:108 msgid "Diaspora support isn't enabled. Contact can't be added." msgstr "" -#: mod/follow.php:114 +#: mod/follow.php:113 msgid "OStatus support is disabled. Contact can't be added." msgstr "" -#: mod/follow.php:140 src/Module/RemoteFollow.php:114 +#: mod/follow.php:139 src/Module/RemoteFollow.php:114 msgid "Please answer the following:" msgstr "" -#: mod/follow.php:141 mod/unfollow.php:94 +#: mod/follow.php:140 mod/unfollow.php:94 msgid "Your Identity Address:" msgstr "" -#: mod/follow.php:142 mod/unfollow.php:100 +#: mod/follow.php:141 mod/unfollow.php:100 #: src/Module/Admin/Blocklist/Contact.php:100 src/Module/Contact.php:603 #: src/Module/Notifications/Introductions.php:108 #: src/Module/Notifications/Introductions.php:177 msgid "Profile URL" msgstr "" -#: mod/follow.php:143 src/Module/Contact.php:615 +#: mod/follow.php:142 src/Module/Contact.php:615 #: src/Module/Notifications/Introductions.php:170 #: src/Module/Profile/Profile.php:207 msgid "Tags:" msgstr "" -#: mod/follow.php:154 +#: mod/follow.php:153 #, php-format msgid "%s knows you" msgstr "" -#: mod/follow.php:155 +#: mod/follow.php:154 msgid "Add a personal note:" msgstr "" -#: mod/follow.php:164 mod/unfollow.php:109 src/Module/BaseProfile.php:59 +#: mod/follow.php:163 mod/unfollow.php:109 src/Module/BaseProfile.php:59 #: src/Module/Contact.php:894 msgid "Status Messages and Posts" msgstr "" -#: mod/follow.php:192 +#: mod/follow.php:191 msgid "The contact could not be added." msgstr "" @@ -2653,7 +2654,7 @@ msgstr "" msgid "File upload failed." msgstr "" -#: mod/wall_upload.php:233 src/Model/Photo.php:1013 +#: mod/wall_upload.php:233 src/Model/Photo.php:1014 msgid "Wall Photos" msgstr "" @@ -3330,39 +3331,39 @@ msgstr "" msgid "last" msgstr "" -#: src/Content/Text/BBCode.php:979 src/Content/Text/BBCode.php:1767 -#: src/Content/Text/BBCode.php:1768 +#: src/Content/Text/BBCode.php:980 src/Content/Text/BBCode.php:1768 +#: src/Content/Text/BBCode.php:1769 msgid "Image/photo" msgstr "" -#: src/Content/Text/BBCode.php:1152 +#: src/Content/Text/BBCode.php:1153 #, php-format msgid "" "%2$s %3$s" msgstr "" -#: src/Content/Text/BBCode.php:1177 src/Model/Item.php:3139 +#: src/Content/Text/BBCode.php:1178 src/Model/Item.php:3139 #: src/Model/Item.php:3145 src/Model/Item.php:3146 msgid "Link to source" msgstr "" -#: src/Content/Text/BBCode.php:1685 src/Content/Text/HTML.php:943 +#: src/Content/Text/BBCode.php:1686 src/Content/Text/HTML.php:943 msgid "Click to open/close" msgstr "" -#: src/Content/Text/BBCode.php:1716 +#: src/Content/Text/BBCode.php:1717 msgid "$1 wrote:" msgstr "" -#: src/Content/Text/BBCode.php:1772 src/Content/Text/BBCode.php:1773 +#: src/Content/Text/BBCode.php:1773 src/Content/Text/BBCode.php:1774 msgid "Encrypted content" msgstr "" -#: src/Content/Text/BBCode.php:1989 +#: src/Content/Text/BBCode.php:1990 msgid "Invalid source protocol" msgstr "" -#: src/Content/Text/BBCode.php:2004 +#: src/Content/Text/BBCode.php:2005 msgid "Invalid link protocol" msgstr "" @@ -3375,7 +3376,7 @@ msgid "The end" msgstr "" #: src/Content/Text/HTML.php:885 src/Content/Widget/VCard.php:103 -#: src/Model/Profile.php:444 +#: src/Model/Profile.php:453 msgid "Follow" msgstr "" @@ -3551,22 +3552,22 @@ msgstr[1] "" msgid "More Trending Tags" msgstr "" -#: src/Content/Widget/VCard.php:96 src/Model/Profile.php:363 +#: src/Content/Widget/VCard.php:96 src/Model/Profile.php:372 #: src/Module/Contact.php:609 src/Module/Profile/Profile.php:176 msgid "XMPP:" msgstr "" -#: src/Content/Widget/VCard.php:97 src/Model/Profile.php:364 +#: src/Content/Widget/VCard.php:97 src/Model/Profile.php:373 #: src/Module/Contact.php:611 src/Module/Profile/Profile.php:180 msgid "Matrix:" msgstr "" -#: src/Content/Widget/VCard.php:101 src/Model/Profile.php:456 +#: src/Content/Widget/VCard.php:101 src/Model/Profile.php:465 #: src/Module/Notifications/Introductions.php:180 msgid "Network:" msgstr "" -#: src/Content/Widget/VCard.php:105 src/Model/Profile.php:446 +#: src/Content/Widget/VCard.php:105 src/Model/Profile.php:455 msgid "Unfollow" msgstr "" @@ -4695,62 +4696,62 @@ msgstr "" msgid "%1$s shared a post" msgstr "" -#: src/Model/Profile.php:346 src/Module/Profile/Profile.php:256 +#: src/Model/Profile.php:355 src/Module/Profile/Profile.php:256 #: src/Module/Profile/Profile.php:258 msgid "Edit profile" msgstr "" -#: src/Model/Profile.php:348 +#: src/Model/Profile.php:357 msgid "Change profile photo" msgstr "" -#: src/Model/Profile.php:361 src/Module/Directory.php:155 +#: src/Model/Profile.php:370 src/Module/Directory.php:155 #: src/Module/Profile/Profile.php:184 msgid "Homepage:" msgstr "" -#: src/Model/Profile.php:362 src/Module/Contact.php:613 +#: src/Model/Profile.php:371 src/Module/Contact.php:613 #: src/Module/Notifications/Introductions.php:168 msgid "About:" msgstr "" -#: src/Model/Profile.php:448 +#: src/Model/Profile.php:457 msgid "Atom feed" msgstr "" -#: src/Model/Profile.php:486 src/Model/Profile.php:583 +#: src/Model/Profile.php:495 src/Model/Profile.php:592 msgid "g A l F d" msgstr "" -#: src/Model/Profile.php:487 +#: src/Model/Profile.php:496 msgid "F d" msgstr "" -#: src/Model/Profile.php:549 src/Model/Profile.php:634 +#: src/Model/Profile.php:558 src/Model/Profile.php:643 msgid "[today]" msgstr "" -#: src/Model/Profile.php:559 +#: src/Model/Profile.php:568 msgid "Birthday Reminders" msgstr "" -#: src/Model/Profile.php:560 +#: src/Model/Profile.php:569 msgid "Birthdays this week:" msgstr "" -#: src/Model/Profile.php:621 +#: src/Model/Profile.php:630 msgid "[No description]" msgstr "" -#: src/Model/Profile.php:647 +#: src/Model/Profile.php:656 msgid "Event Reminders" msgstr "" -#: src/Model/Profile.php:648 +#: src/Model/Profile.php:657 msgid "Upcoming events the next 7 days:" msgstr "" -#: src/Model/Profile.php:836 +#: src/Model/Profile.php:845 #, php-format msgid "OpenWebAuth: %1$s welcomes %2$s" msgstr "" @@ -4769,138 +4770,138 @@ msgstr "" msgid "Enter a valid existing folder" msgstr "" -#: src/Model/User.php:202 src/Model/User.php:998 +#: src/Model/User.php:208 src/Model/User.php:1004 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "" -#: src/Model/User.php:583 src/Model/User.php:616 +#: src/Model/User.php:589 src/Model/User.php:622 msgid "Login failed" msgstr "" -#: src/Model/User.php:648 +#: src/Model/User.php:654 msgid "Not enough information to authenticate" msgstr "" -#: src/Model/User.php:743 +#: src/Model/User.php:749 msgid "Password can't be empty" msgstr "" -#: src/Model/User.php:762 +#: src/Model/User.php:768 msgid "Empty passwords are not allowed." msgstr "" -#: src/Model/User.php:766 +#: src/Model/User.php:772 msgid "" "The new password has been exposed in a public data dump, please choose " "another." msgstr "" -#: src/Model/User.php:772 +#: src/Model/User.php:778 msgid "" "The password can't contain accentuated letters, white spaces or colons (:)" msgstr "" -#: src/Model/User.php:878 +#: src/Model/User.php:884 msgid "Passwords do not match. Password unchanged." msgstr "" -#: src/Model/User.php:885 +#: src/Model/User.php:891 msgid "An invitation is required." msgstr "" -#: src/Model/User.php:889 +#: src/Model/User.php:895 msgid "Invitation could not be verified." msgstr "" -#: src/Model/User.php:897 +#: src/Model/User.php:903 msgid "Invalid OpenID url" msgstr "" -#: src/Model/User.php:910 src/Security/Authentication.php:223 +#: src/Model/User.php:916 src/Security/Authentication.php:223 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "" -#: src/Model/User.php:910 src/Security/Authentication.php:223 +#: src/Model/User.php:916 src/Security/Authentication.php:223 msgid "The error message was:" msgstr "" -#: src/Model/User.php:916 +#: src/Model/User.php:922 msgid "Please enter the required information." msgstr "" -#: src/Model/User.php:930 +#: src/Model/User.php:936 #, php-format msgid "" "system.username_min_length (%s) and system.username_max_length (%s) are " "excluding each other, swapping values." msgstr "" -#: src/Model/User.php:937 +#: src/Model/User.php:943 #, php-format msgid "Username should be at least %s character." msgid_plural "Username should be at least %s characters." msgstr[0] "" msgstr[1] "" -#: src/Model/User.php:941 +#: src/Model/User.php:947 #, php-format msgid "Username should be at most %s character." msgid_plural "Username should be at most %s characters." msgstr[0] "" msgstr[1] "" -#: src/Model/User.php:949 +#: src/Model/User.php:955 msgid "That doesn't appear to be your full (First Last) name." msgstr "" -#: src/Model/User.php:954 +#: src/Model/User.php:960 msgid "Your email domain is not among those allowed on this site." msgstr "" -#: src/Model/User.php:958 +#: src/Model/User.php:964 msgid "Not a valid email address." msgstr "" -#: src/Model/User.php:961 +#: src/Model/User.php:967 msgid "The nickname was blocked from registration by the nodes admin." msgstr "" -#: src/Model/User.php:965 src/Model/User.php:973 +#: src/Model/User.php:971 src/Model/User.php:979 msgid "Cannot use that email." msgstr "" -#: src/Model/User.php:980 +#: src/Model/User.php:986 msgid "Your nickname can only contain a-z, 0-9 and _." msgstr "" -#: src/Model/User.php:988 src/Model/User.php:1045 +#: src/Model/User.php:994 src/Model/User.php:1051 msgid "Nickname is already registered. Please choose another." msgstr "" -#: src/Model/User.php:1032 src/Model/User.php:1036 +#: src/Model/User.php:1038 src/Model/User.php:1042 msgid "An error occurred during registration. Please try again." msgstr "" -#: src/Model/User.php:1059 +#: src/Model/User.php:1065 msgid "An error occurred creating your default profile. Please try again." msgstr "" -#: src/Model/User.php:1066 +#: src/Model/User.php:1072 msgid "An error occurred creating your self contact. Please try again." msgstr "" -#: src/Model/User.php:1071 +#: src/Model/User.php:1077 msgid "Friends" msgstr "" -#: src/Model/User.php:1075 +#: src/Model/User.php:1081 msgid "" "An error occurred creating your default contact group. Please try again." msgstr "" -#: src/Model/User.php:1304 +#: src/Model/User.php:1310 #, php-format msgid "" "\n" @@ -4908,7 +4909,7 @@ msgid "" "\t\t\tthe administrator of %2$s has set up an account for you." msgstr "" -#: src/Model/User.php:1307 +#: src/Model/User.php:1313 #, php-format msgid "" "\n" @@ -4945,12 +4946,12 @@ msgid "" "\t\tThank you and welcome to %4$s." msgstr "" -#: src/Model/User.php:1340 src/Model/User.php:1447 +#: src/Model/User.php:1346 src/Model/User.php:1453 #, php-format msgid "Registration details for %s" msgstr "" -#: src/Model/User.php:1360 +#: src/Model/User.php:1366 #, php-format msgid "" "\n" @@ -4966,12 +4967,12 @@ msgid "" "\t\t" msgstr "" -#: src/Model/User.php:1379 +#: src/Model/User.php:1385 #, php-format msgid "Registration at %s" msgstr "" -#: src/Model/User.php:1403 +#: src/Model/User.php:1409 #, php-format msgid "" "\n" @@ -4980,7 +4981,7 @@ msgid "" "\t\t\t" msgstr "" -#: src/Model/User.php:1411 +#: src/Model/User.php:1417 #, php-format msgid "" "\n" @@ -8074,15 +8075,15 @@ msgstr "" msgid "Only logged in users are permitted to perform a probing." msgstr "" -#: src/Module/Debug/Probe.php:53 +#: src/Module/Debug/Probe.php:54 msgid "Probe Diagnostic" msgstr "" -#: src/Module/Debug/Probe.php:54 +#: src/Module/Debug/Probe.php:55 msgid "Output" msgstr "" -#: src/Module/Debug/Probe.php:57 +#: src/Module/Debug/Probe.php:58 msgid "Lookup address" msgstr "" @@ -8288,7 +8289,7 @@ msgstr "" msgid "Add contact to group" msgstr "" -#: src/Module/HCard.php:48 +#: src/Module/HCard.php:46 msgid "No profile" msgstr "" @@ -8827,19 +8828,19 @@ msgstr "" #: src/Module/Profile/Profile.php:326 src/Module/Profile/Profile.php:329 #: src/Module/Profile/Status.php:65 src/Module/Profile/Status.php:68 -#: src/Protocol/Feed.php:946 src/Protocol/OStatus.php:1256 +#: src/Protocol/Feed.php:951 src/Protocol/OStatus.php:1259 #, php-format msgid "%s's timeline" msgstr "" #: src/Module/Profile/Profile.php:327 src/Module/Profile/Status.php:66 -#: src/Protocol/Feed.php:950 src/Protocol/OStatus.php:1260 +#: src/Protocol/Feed.php:955 src/Protocol/OStatus.php:1263 #, php-format msgid "%s's posts" msgstr "" #: src/Module/Profile/Profile.php:328 src/Module/Profile/Status.php:67 -#: src/Protocol/Feed.php:953 src/Protocol/OStatus.php:1263 +#: src/Protocol/Feed.php:958 src/Protocol/OStatus.php:1266 #, php-format msgid "%s's comments" msgstr "" @@ -10387,21 +10388,21 @@ msgstr "" msgid "Attachments:" msgstr "" -#: src/Protocol/OStatus.php:1758 +#: src/Protocol/OStatus.php:1761 #, php-format msgid "%s is now following %s." msgstr "" -#: src/Protocol/OStatus.php:1759 +#: src/Protocol/OStatus.php:1762 msgid "following" msgstr "" -#: src/Protocol/OStatus.php:1762 +#: src/Protocol/OStatus.php:1765 #, php-format msgid "%s stopped following %s." msgstr "" -#: src/Protocol/OStatus.php:1763 +#: src/Protocol/OStatus.php:1766 msgid "stopped following" msgstr ""