Users and administrators can set how long an URL can be before it's
shortened, and how long a notice can be before all its URLs are
shortened. They can also turn off shortening altogether.
Handle attempt to subscribe a local user via their remote webfinger reference more gracefully.
The ensure* family of functions will now return an OStatusShadowException in this case, which gives us a pleasant error message instead of a giant exception backtrace when you do 'sub somebody@this.local.server'.
Can be extended later to allow actually using the local profile, since we could figure it out.
Handle attempt to subscribe a local user via their remote webfinger reference more gracefully.
The ensure* family of functions will now return an OStatusShadowException in this case, which gives us a pleasant error message instead of a giant exception backtrace when you do 'sub somebody@this.local.server'.
Can be extended later to allow actually using the local profile, since we could figure it out.
Set a default 2-second timeout on Geonames web service lookups. After a failure, further lookups in the same process will be skipped for the next 60 seconds (also configurable).
Makes a Geonames outage much less disruptive to site operations.
Allow Meteor plugin to be configurable via configuration database or file.
As there's no admin control panel yet, this is mainly meant for batch administration and using setconfig.php
Add a User-Agent fragment blacklist to MobileProfile: sticking iPad on the regular theme, which works better on its larger screen (was tripped on 'mobile' in the UA though we had no explicit check for 'ipad' previously)
Some localization cleanup and doc to aid in customization:
* added locale/en/LC_MESSAGES/statusnet.po to make it easier to start customizing English texts
* added notes to locale/README about customizing and how to disable languages you haven't customized
* renamed PO templates from *.po to *.pot to match general conventions and reduce confusion for people trying to find which file they're supposed to edit
* move TRANS comment from ea99855b350b326f81bda0ea42be6dff8919b527 down to right before the line with the message, otherwise gettext does not pick it up.
* add another TRANS comment
The translators were having trouble with the wording of the subtitle
for the list of groups a user is a member of. I've changed the
wording and added a // TRANS: comment to hopefully make it more
clear.
Ticket #2272: Block confirmation form should let enter trigger the 'yes' button
Setting focus into the form to make it easier to submit by keyboard. Enter or space will now trigger the button right off without having to mouse around to find the button after we've clicked into the conf form, and keyboarders can also get to the 'no' button more easily.
Ticket #2272: Block confirmation form should let enter trigger the 'yes' button
Setting focus into the form to make it easier to submit by keyboard. Enter or space will now trigger the button right off without having to mouse around to find the button after we've clicked into the conf form, and keyboarders can also get to the 'no' button more easily.
Ticket #2273: Fix bookmarklet with URls with special characters
The tartget page's URL was not being URL-escaped when passed as a parameter into the query string. Result was that any URL-encoded bytes in the link would be unescaped and interpreted as raw UTF-8 when our bookmarklet post target page reads its parameters; this would break 8-bit high characters (eg a Latin-1 %FC turning into a corrupt UTF-8 byte) or reserved chars that needed to be kept escaped (eg a %3F turning into literal ?)
Unfortunately as this was a bug in the original bookmarklet's JS code, this'll only fix it for people who grab a fresh copy of the bookmarklet.
Ticket #2273: Fix bookmarklet with URls with special characters
The tartget page's URL was not being URL-escaped when passed as a parameter into the query string. Result was that any URL-encoded bytes in the link would be unescaped and interpreted as raw UTF-8 when our bookmarklet post target page reads its parameters; this would break 8-bit high characters (eg a Latin-1 %FC turning into a corrupt UTF-8 byte) or reserved chars that needed to be kept escaped (eg a %3F turning into literal ?)
Unfortunately as this was a bug in the original bookmarklet's JS code, this'll only fix it for people who grab a fresh copy of the bookmarklet.
Made a quick attempt to merge the new JID validation into the XmppPlugin, have not had a chance to test that version live yet.
Should also move over the test cases.
Don't save duplicate messages into a user's packed inbox. We've already got the packed box loaded at insert time, so we can simply unpack it and check before doing the update query.
Should help with dupes that come in when inbox distrib jobs die and get restarted, etc.
Conflicts:
classes/Inbox.php
Looks like this was implemented on master recently and not copied up to testing. Merging to my version on testing as I've added some doc comments and extracted a couple functions for future ease of use.
Don't save duplicate messages into a user's packed inbox. We've already got the packed box loaded at insert time, so we can simply unpack it and check before doing the update query.
Should help with dupes that come in when inbox distrib jobs die and get restarted, etc.
Temporary hack until notice_profile_id_idx is updated
to (profile_id, id) instead of (profile_id, created, id).
It's been falling back to PRIMARY instead, which is really
very inefficient for a profile that hasn't posted in a few
months. Even though forcing the index will cause a filesort,
it's usually going to be better. Even for large profiles it
seems much faster than the badly-indexed query.
Temporary hack until notice_profile_id_idx is updated
to (profile_id, id) instead of (profile_id, created, id).
It's been falling back to PRIMARY instead, which is really
very inefficient for a profile that hasn't posted in a few
months. Even though forcing the index will cause a filesort,
it's usually going to be better. Even for large profiles it
seems much faster than the badly-indexed query.
Brion Vibber [Wed, 31 Mar 2010 00:35:27 +0000 (17:35 -0700)]
Ticket #1281: JID validation now more or less follows spec instead of calling e-mail validator
Basic splitting/validation code submitted via http://status.net/wiki/XMPP/JID_validation -- Copyright 2009 Patrick Georgi <patrick@georgi-clan.de> Licensed under ISC-L, which is compatible with everything else that keeps the copyright notice intact.
Added PEAR Net_IDNA package to extlib to handle IDN normalization (also used by Validate's email verifier if present).
* added test suite, supplemented my own test cases with JID validation and normalization test cases from libpurple
* follows XMPP rules for validation of name part
* fixes for normalization with non-ASCII names
* will do domain checks if $config['email']['check_domain'] is on, checking for an XMPP-server SRV record or any lookup. (We don't actually need to ping those direct though.)
* some more obscure stringprep validation rules aren't quite followed yet, but we err on the side of permissiveness.
* we still don't actually let you save your address with a resource on it, as we strip resources when looking up users who've sent us presence or message updates. I would recommend saving the outgoing resource as a separate field if/when we add that..?
Brion Vibber [Tue, 30 Mar 2010 18:57:31 +0000 (11:57 -0700)]
Update call for renamed OStatus functions -- installer now no longer fails with a PHP fatal error when trying to set up the subscription to update@status.net.
Brion Vibber [Tue, 30 Mar 2010 18:07:01 +0000 (11:07 -0700)]
Quick fixes for grouplistall:
* respect count instead of listing all groups
* respect page parameter
* don't spew notice on undefined $id
* don't spew notice on undefined $group->homepage_url (dropped the element since there's nothing to go in it)
Brion Vibber [Tue, 30 Mar 2010 18:07:01 +0000 (11:07 -0700)]
Quick fixes for grouplistall:
* respect count instead of listing all groups
* respect page parameter
* don't spew notice on undefined $id
* don't spew notice on undefined $group->homepage_url (dropped the element since there's nothing to go in it)
Brion Vibber [Mon, 29 Mar 2010 22:46:41 +0000 (15:46 -0700)]
Tweak to Eugene Crosser's patch to make transactions and acks configurable; disabling them gets basic message delivery working under MorbidQ, and may help with RabbitMQ etc.
I swapped the settings from negative to positive ($config['queue']['stomp_transactions'] = false rather than $config['queue']['stomp_no_transactions'] = true), gave them defaults (both on for best ActiveMQ experience), and added notes to the README about configuring them.
Brion Vibber [Mon, 29 Mar 2010 22:07:15 +0000 (15:07 -0700)]
Renamed HTTPResponse class to StatusNet_HTTPResponse to avoid conflict with PECL HTTP extension.
The class isn't referenced by name by any other code I can see so this should have no side effects.
Brion Vibber [Mon, 29 Mar 2010 19:57:16 +0000 (12:57 -0700)]
Add $config['db']['annotate_queries'] option to include caller ID comments into queries. Comment can then be seen in process list, slow query logs on the server, aiding in tracking down unexpected slow queries.
SELECT /* queuedaemon.php Ostatus_profile->processPost */ * FROM notice WHERE ( notice.uri = 'http://stormcloud.local/mublog2/notice/479' )
INSERT /* POST Notice::saveNew */ INTO notice (profile_id , content ....