Commit Graph

1898 Commits

Author SHA1 Message Date
Evan Prodromou
5c05cd2b1a Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x 2010-04-26 02:43:33 -04:00
Evan Prodromou
14adb7cc41 Give users more control over URL shortening
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.

Squashed commit of the following:

commit d136b39011
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:39:00 2010 -0400

    use site and user settings to determine when to shorten URLs

commit 1e1c851ff3
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:38:40 2010 -0400

    add a method to force shortening URLs

commit 4d29ca0b91
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:37:41 2010 -0400

    static method for getting best URL shortening service

commit a9c6a3bace
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:37:11 2010 -0400

    allow 0 in numeric entries in othersettings

commit 767ff2f7ec
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:36:46 2010 -0400

    allow 0 or blank string in inputs

commit 1e21af42a6
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:01:11 2010 -0400

    add more URL-shortening options to othersettings

commit 869a6be0f5
Author: Evan Prodromou <evan@status.net>
Date:   Sat Apr 24 14:22:51 2010 -0400

    move url shortener superclass to lib from plugin

commit 9c0c9863d5
Author: Evan Prodromou <evan@status.net>
Date:   Sat Apr 24 14:20:28 2010 -0400

    documentation and whitespace on UrlShortenerPlugin

commit 7a1dd5798f
Author: Evan Prodromou <evan@status.net>
Date:   Sat Apr 24 14:05:46 2010 -0400

    add defaults for URL shortening

commit d259c37ad2
Author: Evan Prodromou <evan@status.net>
Date:   Sat Apr 24 13:40:10 2010 -0400

    Add User_urlshortener_prefs

    Add a table for URL shortener prefs, a corresponding class, and the
    correct mumbo-jumbo in statusnet.ini to make everything work.
2010-04-26 02:40:36 -04:00
Brion Vibber
dd7b95c2cf Merge branch 'master' into testing 2010-04-23 14:26:57 -07:00
Brion Vibber
7bdea95ccb Fix to make blowing of replies stream cache more consistent when receiving replies. (Was being done at mail notify time instead of at save time for local replies; now moved to reply save time internally so it can't get forgotten) 2010-04-23 06:55:46 -07:00
Brion Vibber
df41287226 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-04-20 13:52:58 +02:00
Brion Vibber
61098faf5d Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-04-20 13:52:18 +02:00
Brion Vibber
c48caa85e1 Fix email notifications for @-replies that come via OStatus.
* Moved notification sending from Notice::saveReplies to distrib queue handler, so it'll pull from the reply set we've saved regardless of how we got it.
* Set up gettext infrastructure for command-line scripts; gets localization mail notifications etc working from background queues.
* Adjusted locale switching: common_switch_locale() works at runtime for bg scripts, forces a message catalog update
2010-04-20 13:49:29 +02:00
Craig Andrews
39392e03a7 Merge branch '0.9.x' into 1.0.x
Conflicts:
	actions/confirmaddress.php
	actions/imsettings.php
2010-04-18 19:21:15 -04:00
Brion Vibber
f789928942 Merge branch 'testing' into 0.9.x 2010-04-14 11:15:48 +02:00
Brion Vibber
3da50c19df Merge branch 'master' into testing 2010-04-14 11:15:21 +02:00
Brion Vibber
a21a172639 Fix for "#foo !foo" in same notice failing during save, causing failout before distribution. Move saveGroups after saveTags when saving notices; groups may save additional tags, so need to be moved after so the check for duplicates actually works. 2010-04-14 11:11:02 +02:00
Brion Vibber
d445b977fc move comment to correct place 2010-04-14 11:09:54 +02:00
Brion Vibber
1eeb23e1e3 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	actions/confirmaddress.php
2010-04-10 17:56:11 -07:00
Brion Vibber
edd883d3b0 Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-04-10 17:54:37 -07:00
Brion Vibber
71c828de89 Allow blocking someone who's not currently subscribed to you (prevents seeing @-replies from them, or them subbing to you in future) 2010-04-10 17:52:40 -07:00
Siebrand Mazeland
af06c554a0 * DB -> Database in message
* some translator documentation added
2010-04-11 01:08:51 +02:00
Brion Vibber
6fb60fb57f Fix for conversation check in @-reply notification email; i18n cleanup on mail messages: fixed some bad gettext usage, added trans doc comments. 2010-04-09 12:02:11 -07:00
Brion Vibber
d00942cce1 Fix for conversation check in @-reply notification email; i18n cleanup on mail messages: fixed some bad gettext usage, added trans doc comments. 2010-04-09 11:56:27 -07:00
Evan Prodromou
ce40425533 Merge branch 'master' of gitorious.org:statusnet/mainline 2010-04-09 14:06:24 -04:00
Brion Vibber
9cb0dab270 Run block checks on remote OStatus replies 2010-04-09 10:48:18 -07:00
Brion Vibber
f5b00404d8 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-04-09 10:47:45 -07:00
Brion Vibber
80bd77ced3 Run block checks on remote OStatus replies 2010-04-09 10:46:18 -07:00
Evan Prodromou
727ea5a516 Merge branch '0.9.x' into 1.0.x 2010-04-07 10:47:29 -04:00
Evan Prodromou
76cce8a3c5 Merge branch 'master' into 0.9.x 2010-04-07 10:46:23 -04:00
Evan Prodromou
08745e4eac Merge branch 'master' into testing 2010-04-07 10:45:44 -04:00
Evan Prodromou
82326a3b69 show PEAR_Error message, not the object 2010-04-07 10:43:14 -04:00
Brion Vibber
2f4438fe24 Merge branch '0.9.x' into 1.0.x
Conflicts:
	actions/imsettings.php
	lib/jabber.php

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.
2010-04-02 15:56:25 -07:00
Brion Vibber
e4d934827b Merge branch 'testing' into 0.9.x 2010-04-02 15:48:39 -07:00
Brion Vibber
ec24f283dd 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.
2010-04-02 15:45:03 -07:00
Brion Vibber
61394aa8ac 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.
2010-04-02 15:43:30 -07:00
Brion Vibber
d844e6bde5 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-04-01 11:09:45 -07:00
Brion Vibber
f1c01f9ead 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.
2010-04-01 10:17:17 -07:00
Brion Vibber
9f2cfd20f8 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.
2010-04-01 10:15:40 -07:00
Evan Prodromou
9efe5393ff Revert "Revert "don't insert the same notice twice into an inbox""
This reverts commit a09b27ff41.
2010-04-01 12:57:52 -04:00
Evan Prodromou
a09b27ff41 Revert "don't insert the same notice twice into an inbox"
This reverts commit 650074c648.
2010-04-01 12:52:26 -04:00
Evan Prodromou
650074c648 don't insert the same notice twice into an inbox 2010-03-31 15:54:35 -04:00
Brion Vibber
df9eb4164a Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-31 12:48:24 -07:00
Brion Vibber
3ed88938b9 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-31 12:47:42 -07:00
Evan Prodromou
d3f995846b use Subscription::cancel() to cancel all subscriptions on block 2010-03-31 15:20:16 -04:00
Evan Prodromou
c1c7feedbd do complete unsubscribe process when deleting a user 2010-03-31 15:02:19 -04:00
Brion Vibber
01a03e34c8 Merge branch '0.9.x' into 1.0.x 2010-03-29 15:15:51 -07:00
Brion Vibber
cfeb1bfa41 Merge branch 'testing' into 0.9.x 2010-03-29 15:15:11 -07:00
Brion Vibber
873b832827 Merge branch 'master' into testing
Conflicts:
	plugins/Blacklist/BlacklistPlugin.php
2010-03-29 15:14:25 -07:00
Brion Vibber
d44e5ac935 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 ....
2010-03-29 13:14:11 -07:00
Evan Prodromou
f0d905112e Merge branch 'master' into 0.9.x
Conflicts:
	lib/attachmentlist.php
2010-03-28 15:25:02 -04:00
Evan Prodromou
65766a0ebe continue deleting even if user profile record is missing 2010-03-28 11:58:16 -04:00
Nick Holliday
92ded7c6cb Fixes problem with IRC URLs showing as attachments 2010-03-26 18:16:44 -04:00
Brion Vibber
abf2ce873b Avoid notice when reporting DB errors for objects that don't have an 'id' field 2010-03-24 14:18:25 -07:00
Brion Vibber
c3ceaa893f Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 1.0.x 2010-03-24 14:11:01 -07:00
Brion Vibber
ecb009bcf5 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-24 13:57:20 -07:00
Brion Vibber
13d59e0c76 fixup_deletions.php script to look for notices posted by now-deleted profiles and remove them. 2010-03-23 17:24:01 -07:00
Brion Vibber
7277b59734 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-23 12:13:32 -07:00
Brion Vibber
44caa3a93f Consistently send Profiles into Fave::addNew() 2010-03-23 11:08:30 -07:00
Brion Vibber
533a3bf6a3 Consistently send Profiles into Fave::addNew() 2010-03-23 11:06:37 -07:00
Brion Vibber
80b16c8499 Don't add PHPSESSID parameter onto notice and conversation URIs if we save a notice during a session override.
This was being triggered by welcomebot messages created at account creation time, then propagated through replies.
2010-03-23 09:56:05 -07:00
Brion Vibber
2d79455a1f Don't add PHPSESSID parameter onto notice and conversation URIs if we save a notice during a session override.
This was being triggered by welcomebot messages created at account creation time, then propagated through replies.
2010-03-23 09:54:24 -07:00
Brion Vibber
e89908f261 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 1.0.x
Conflicts:
	lib/channel.php
	scripts/imdaemon.php
2010-03-22 13:56:16 -07:00
Craig Andrews
c85228eadc blowSubscriberCount and blowSubscriptionCount - no 's' 2010-03-22 14:22:18 -04:00
Brion Vibber
5e54e7b55d Throw an exception when an undefined method is called on one of our DB_DataObjects, instead of failing silently.
The magic __call() method is used to implement a getter and setter interface, and simply didn't bother to throw an error for things it didn't recognize.

This may expose a number of existing errors where mistyped method names are called and we're not noticing that they're failing.
2010-03-19 12:38:14 -07:00
Brion Vibber
5c314c2288 Drop result ID from data objects on clone(). This keeps the original object working if it was in the middle of a query loop, even if the cloned object falls out of scope and triggers its destructor.
This bug was hitting a number of places where we had the pattern:

$db->find();
while($dbo->fetch()) {
  $x = clone($dbo);
  // do anything with $x other than storing it in an array
}

The cloned object's destructor would trigger on the second run through the loop, freeing the database result set -- not really what we wanted.
(Loops that stored the clones into an array were fine, since the clones stay in scope in the array longer than the original does.)

Detaching the database result from the clone lets us work with its data without interfering with the rest of the query.
In the unlikely even that somebody is making clones in the middle of a query, then trying to continue the query with the clone instead of the original object, well they're gonna be broken now.
2010-03-19 11:18:27 -07:00
Brion Vibber
1301877dfe OStatus discover fixes:
* Subscription::start was sometimes passing users instead of profiles to hooks, which broke OStatus subscription notifications; now normalizing to profiles for processing.
* H-card parsing would trigger a lot of PHP warnings and notices in hKit. Now suppressing warnings and notices for the duration of the call to keep them out of output when display_errors is on.
* H-card parsing would trigger a PHP fatal error if the source page was not well-formed XML and Tidy was not present on the system. Switched normalization to use the PHP DOM module which is always present, as we have no need for Tidy's extra features here.
* Trying to fetch avatars from Google profiles failed and triggered a PHP warning due to the relative URL not being resolved during h-card parsing. Now passing profile page URL into hKit by sneaking a <base> tag in while we normalize the HTML source.
* Profile pages without a "Link" header could trigger PHP notices due to a bad NULL -> array(NULL) conversion in LinkHeader::getLink(). Now checking that there was a return value before converting single return value into array.
2010-03-18 17:08:19 -07:00
Brion Vibber
cac9d23498 Fix for xmpp/sms notification options appearing to be disabled on new subscriptions.
Base problem is that our caching-on-insert interferes with relying on column default values; the cached object is missing those fields, so they appear to be empty (null) when the object is retrieved from cache.
Now explicitly setting them when inserting subscriptions, and cleaned up some code that had alternate code paths.

May also have made auto-subscription work for remote OStatus subscribers, but can't test until magic sigs are working again.
2010-03-18 14:26:32 -07:00
Brion Vibber
1de7badd78 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-18 10:55:20 -07:00
Brion Vibber
515cdf28a8 Ensure that DB connection is active at start of User::updateKeys() and Foreign_user::updateKeys(); calls to $this->_quote() require a live connection object and don't lazy-initialize themselves.
May fix WSOD when changing incoming email address.
2010-03-18 09:24:55 -07:00
Evan Prodromou
425ddcaa26 add exception on inconsistent db to User::getProfile() 2010-03-18 08:35:10 -05:00
Brion Vibber
ca5612c451 Merge branch 'master' into testing 2010-03-17 12:15:12 -07:00
Brion Vibber
dacd0f3e6d Fix to regression for auto-subscribe - was backwards. 2010-03-17 12:14:19 -07:00
Brion Vibber
441e52718e Background deletion of user accounts. Notices are deleted in chunks, then the user itself when they're all gone.
While deletion is in progress, the account is locked with the 'deleted' role, which disables all actions with rights control.

Todo:
* Pretty up the notice on the profile page about the pending delete. Show status?
* Possibly more thorough account disabling, such as disallowing all use for login and access.
* Improve error recovery; worst case is that an account gets left locked in 'deleted' state but the queue jobs have gotten dropped out. This would leave the username in use and any undeleted notices in place.
2010-03-15 16:08:00 -07:00
Brion Vibber
9ec24f59ca Drop result ID from data objects on clone(). This keeps the original object working if it was in the middle of a query loop, even if the cloned object falls out of scope and triggers its destructor.
This bug was hitting a number of places where we had the pattern:

$db->find();
while($dbo->fetch()) {
  $x = clone($dbo);
  // do anything with $x other than storing it in an array
}

The cloned object's destructor would trigger on the second run through the loop, freeing the database result set -- not really what we wanted.
(Loops that stored the clones into an array were fine, since the clones stay in scope in the array longer than the original does.)

Detaching the database result from the clone lets us work with its data without interfering with the rest of the query.
In the unlikely even that somebody is making clones in the middle of a query, then trying to continue the query with the clone instead of the original object, well they're gonna be broken now.
2010-03-15 15:58:55 -07:00
Brion Vibber
cb471e0c96 Blow more timeline caches on notice delete. Fixes paging on public and profile timelines after deleting something from the first page. 2010-03-15 14:19:22 -07:00
Brion Vibber
f72eb17304 Merge commit 'origin/testing' into 0.9.x 2010-03-12 09:41:49 -08:00
Zach Copley
78f0d6bbd2 Scrub all atom output with common_xml_safe_str() 2010-03-12 01:12:30 +00:00
Zach Copley
7cdcb89dc9 Add id and updated elements to atom source 2010-03-12 00:36:26 +00:00
Craig Andrews
74fd755556 A null mimetype is not an enclosure (more likely than not means there was an error) 2010-03-11 17:27:25 -05:00
Sarven Capadisli
4c320872d9 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-11 16:39:07 -05:00
Brion Vibber
ce92bc7143 Drop timestamp cutoff parameter from User::getCurrentNotice() and Profile::getCurrentNotice().
It's not currently used, and won't be efficient when we update the notice.profile_id_idx index to optimize for our id-based sorting when pulling user post lists for profile pages, feeds etc.
2010-03-11 11:01:01 -08:00
Brion Vibber
c6f09306b1 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-10 17:04:51 -08:00
Brion Vibber
294b290dd9 Fixup script for files w/ bogus data saved into file record ('h bug') 2010-03-10 15:13:16 -08:00
Brion Vibber
f02cb7c718 Fix for attachment "h bug": posting a shortened link to an oembed-able resource that has been previously used in the system would incorrectly save "h" as the item's type and title. 2010-03-10 15:13:16 -08:00
Craig Andrews
714d920fae Merge branch '0.9.x' into 1.0.x
Conflicts:
	classes/statusnet.ini
	db/statusnet.sql
	lib/jabber.php
	lib/xmppmanager.php
2010-03-08 17:22:23 -05:00
Jeffery To
ef3991dbbe Fixed warning messages when auto-registering a new LDAP user.
On my test system (without memcache), while testing the LDAP
authentication plugin, when I sign in for the first time, triggering
auto-registration, I get these messages in the output page:

Warning: ksort() expects parameter 1 to be array, null given in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php  on line 219

Warning: Invalid argument supplied for foreach() in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 224

Warning: assert() [function.assert]: Assertion failed in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 241

(plus two "Cannot modify header information..." messages as a result of
the above warnings)

This change appears to fix this (although I can't really explain exactly
why).
2010-03-08 13:15:49 -05:00
Ciaran Gultnieks
8029faadae Fixed problem causing 500 error on notices containing a non-existent group 2010-03-06 00:30:15 +00:00
Zach Copley
b8001ea107 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-05 03:56:04 +00:00
Zach Copley
e3c4b0c85d A better way to safely delete Foreign_links 2010-03-05 03:55:56 +00:00
Zach Copley
6a377a4ba4 A better way to safely delete Foreign_links 2010-03-05 03:14:40 +00:00
Brion Vibber
b218aee94e Merge commit 'origin/testing' into 0.9.x
Conflicts:
	lib/action.php
	lib/adminpanelaction.php
2010-03-04 06:07:28 -08:00
Zach Copley
f210cadfec Revert "Revert "Show <activity:subject> and no activity actors for user feed""
This reverts commit e2578cfad6.
2010-03-03 20:58:34 -08:00
Brion Vibber
4a2511139e Initial user role controls on profile pages, for owner to add/remove administrator and moderator options.
Buttons need to be themed.
2010-03-03 15:43:49 -08:00
Brion Vibber
7e5bf39f76 Avoid notice on local group creation when uri isn't passed in at create time (needs to be generated) 2010-03-03 12:57:40 -08:00
Brion Vibber
3bb42d1170 Use poster's subscribed groups to disambiguate group linking when a remote group and a local group exist with the same name. (If you're a member of two groups with the same name though, there's not a defined winner.) 2010-03-03 19:00:02 +00:00
Brion Vibber
79ffebb51b OStatus: save file records for enclosures
Also stripping id from foreign HTML messages (could interfere with UI) and disabled failing attachment popup for a.attachment links that don't have a proper id, so you can click through instead of getting an error.

Issues:
* any other links aren't marked and saved
* inconsistent behavior between local and remote attachments (local displays in lightbox, remote doesn't)
* if the enclosure'd object isn't referenced in the content, you won't be offered a link to it in our UI
2010-03-02 16:36:08 -08:00
Craig Andrews
c30f95c55c Updated some references to the long gnone "isEnclosure" function to the new "getEnclosure" 2010-03-02 14:25:06 -08:00
Brion Vibber
ddf3614c84 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-02 13:38:10 -08:00
Brion Vibber
72460091dd Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-02 12:21:48 -08:00
Brion Vibber
6b134ae4c7 Dropped deprecated timestamp-based 'since' parameter for all API methods. When it sneaks in it can cause some very slow queries due to mismatches with the indexing.
Twitter removed 'since' support some time ago, and we've already removed it from the public timeline, so it shouldn't be missed.
2010-03-02 11:54:02 -08:00
Evan Prodromou
e2578cfad6 Revert "Show <activity:subject> and no activity actors for user feed"
This reverts commit c25fc8a4b5.
2010-03-02 03:40:43 -05:00
Evan Prodromou
40ac724797 don't duplicate title in summary in Atom output per RFC4287 4.2.13 2010-03-02 03:13:05 -05:00
Evan Prodromou
c25fc8a4b5 Show <activity:subject> and no activity actors for user feed
We only need one author for user feeds: the user themselves. So, show
the user as the activity:subject, and don't repeat the same
activity:actor for every notice unnecessarily.
2010-03-02 02:54:52 -05:00
Craig Andrews
a0114f2006 Correctly handle the case when MIME/Type doesn't know what file extension a mime type maps to 2010-03-01 21:44:42 -05:00
Evan Prodromou
17c2c793a5 Remove check for secret in token deletion on Subscription::cancel() 2010-03-01 18:03:17 -05:00
Evan Prodromou
48ce511f94 Better logging on bad token in subscription 2010-03-01 18:03:17 -05:00
Evan Prodromou
320036dbfb drop tokens for OMB on unsubscribe 2010-03-01 18:03:17 -05:00
Evan Prodromou
f00e8bbf47 Merge branch 'testing' into 0.9.x 2010-02-27 17:07:57 -05:00
Evan Prodromou
04c4facba9 fix call of common_find_mentions() in Notice::saveReplies() 2010-02-27 16:30:38 -05:00
Evan Prodromou
4d9daf2149 Use notice for context when deciding who @nickname refers to
In a federated system, "@nickname" is insufficient to uniquely
identify a user. However, it's a very convenient idiom. We need to
guess from context who 'nickname' refers to.

Previously, we were using the sender's profile (or what we knew about
them) as the only context. So, we assumed that they'd be mentioning to
someone they followed, or someone who followed them, or someone on
their own server.

Now, we include the notice information for context. We check to see if
the notice is a reply to another notice, and if the author of the
original notice has the nickname 'nickname', then the mention is
probably for them. Alternately, if the original notice mentions someone
with nickname 'nickname', then this notice is probably referring to
_them_.

Doing this kind of context sleuthing means we have to render the
content very late in the notice-saving process.
2010-02-27 16:06:46 -05:00
Siebrand Mazeland
b701f5648d uri -> URI in interface text 2010-02-27 18:51:49 +01:00
Evan Prodromou
a5cfda8505 blow cache on known replies 2010-02-26 17:47:39 -05:00
Craig Andrews
410cd52434 bail out if the requested nickname is illegal 2010-02-26 15:51:25 -05:00
Brion Vibber
8dfc8f1635 Merge branch 'testing' into 0.9.x 2010-02-26 09:35:28 -08:00
Brion Vibber
3aee8e0448 Fix a few keys that got dropped from statusnet.ini by mistake 2010-02-25 21:46:53 -08:00
Zach Copley
7922edb5b6 Add lots of fun avatars to our Atom output 2010-02-25 16:06:49 -08:00
Zach Copley
e61edb55d9 Rationalize group activity stuff 2010-02-25 13:34:43 -08:00
Brion Vibber
fb8b8615b0 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2010-02-25 11:27:21 -08:00
Brion Vibber
79c0d52daa OStatus: save categories from the Atom entry as hashtags. 2010-02-25 11:26:33 -08:00
Evan Prodromou
2f03b2cc45 method for getting a group's URI 2010-02-25 12:15:26 -05:00
Evan Prodromou
d53b4b9b84 save mainpage element for groups 2010-02-25 12:05:22 -05:00
Evan Prodromou
8f42d37593 Add 'mainpage' to User_group
Add the mainpage attribute to user_group objects.
2010-02-25 09:24:29 -05:00
Evan Prodromou
e6858d7203 modify group actions so they use Local_group to look up by nickname 2010-02-25 08:44:15 -05:00
Evan Prodromou
ddc3671b6a recover user_openid tables, which got lost in generation 2010-02-24 23:32:20 -05:00
Evan Prodromou
68a10970f9 fixup exe bits 2010-02-24 23:30:14 -05:00
Evan Prodromou
bd68154772 Make user_group able to handle remote groups
We add a local_group table to store data about local groups. It has
the unique key for nickname, so /group/<nickname> looks up here.

Updated DB data object classes and data files.
2010-02-24 23:28:41 -05:00
Craig Andrews
c187bf5597 Merge branch '0.9.x' into 1.0.x
Conflicts:
	EVENTS.txt
	db/statusnet.sql
	lib/queuemanager.php
2010-02-24 20:52:45 -05:00
Brion Vibber
59be4b8cae Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-24 15:47:51 -08:00
Brion Vibber
2aaf8d4e30 Add class and (if present) id to DB_DataObject error exceptions; often they're VERRRRRY vague, and it helps to know what type of item is failing! 2010-02-24 01:09:12 +00:00
Zach Copley
89dc6dee01 Add PoCo namespace to optional ns output in Notice::asAtomEntry() 2010-02-22 17:56:43 -08:00
Zach Copley
cbf6ebae01 Merge branch 'rationalize-activity' into testing
* rationalize-activity:
  Move ActivityObject and related stuff to core
  Add PoCo bits, avatar link, geo point, etc. to person activity obj output
2010-02-22 17:12:33 -08:00
Zach Copley
6a711c6cdc Move ActivityObject and related stuff to core 2010-02-22 17:10:50 -08:00
Brion Vibber
d410df0406 OStatus group delivery initial implementation.
- added rel="ostatus:attention" links for group delivery
- added events for plugins to override group profile/permalink pages
- pulled Notice::saveGroups up to save-time so we can override;
  it's relatively cheap and gives us a clean list of target
  groups for distrib time even with customized delivery.
- fixed notice::getGroups to return group objects as expected
- added some doc on new parameters to Notice::saveNew
 - 'groups' list of group IDs to push to in place of parsing
- messages that come in via PuSH and contain local group targets
  are delivered to local group members
- messages that come in via PuSH and contain remote group targets
  are delivered to local members of the remote group

Todo:
- handle group posts that only come through Salmon
- handle conflicts in case something comes in both through Salmon and PuSH
- better source verification
- need a cleaner interface to look up groups by URI
- need a way to handle remote groups with conflicting names
2010-02-23 00:44:45 +00:00
Evan Prodromou
b79d4ed6a1 add PoCo preferredUsername for nickname in Profile::asActivityNoun() 2010-02-22 07:43:12 -05:00
Evan Prodromou
fae5a15a88 add strongly-suggested link to Profile::asActivityNoun() 2010-02-22 07:40:20 -05:00
Zach Copley
35be39e30e Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-22 01:23:24 -08:00
Zach Copley
47300a2ae9 Upgrade profile-based activity noun to have more complete set of
profile fields
2010-02-22 01:21:34 -08:00
Evan Prodromou
891e002883 don't calculate replies for remote notices 2010-02-21 23:56:48 -05:00
Evan Prodromou
a745d38d6d slight rearrangement of getting profile URIs 2010-02-21 22:52:27 -05:00
Evan Prodromou
ab3db8c899 Combine code that finds mentions into one place and add hook points
Combined the code that finds mentions of other profiles into one place.

common_find_mentions() finds mentions and calls hooks to allow
supplemental syntax for mentions (like OStatus).

common_linkify_mentions() links mentions.

common_linkify_mention() links a mention.

Notice::saveReplies() now uses common_find_mentions() instead of
trying to parse everything again.
2010-02-21 16:20:30 -05:00
Brion Vibber
85528ccb1f Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-21 11:12:56 -08:00
Evan Prodromou
e9d22138ef permalink on a note represented by rel=alternate 2010-02-21 09:23:51 -05:00
Evan Prodromou
9498a16480 Notice::saveNew() accepts url and rendered options 2010-02-21 09:17:00 -05:00
Brion Vibber
9c2fe8492f OStatus: send favorite/unfavorite notifications to remote authors 2010-02-20 15:56:36 -08:00
Evan Prodromou
36d21fa716 Add events for favor and disfavor
Added events to core code for when someone favors or disfavors a
notice.
2010-02-20 12:03:32 -05:00
Evan Prodromou
52e8aa798a Refactor subs_* functions for remote use
The subs_* functions in subs.php have made a lot of assumptions
about users versus profiles. I've refactored the functions to
be methods of the Subscription class instead, and to use Profile
objects throughout.

Some of the checks for blocks or existing subscriptions depended
on users or profiles, so I've moved those methods around a bit.

I've left stubs for the subs_* functions until we get time to replace
them.
2010-02-19 08:16:45 -05:00
Evan Prodromou
3d665f82d1 add type='text/html' to alternate link in Notice Atom 2010-02-18 22:13:47 -05:00
Evan Prodromou
c2ba764535 always distribute to inbox of author immediately 2010-02-18 07:11:20 -05:00
Brion Vibber
5a6cbb248f Merge branch 'testing' into 0.9.x 2010-02-17 10:14:08 -08:00
Zach Copley
198c046c89 - Set the root of a new local conversation to a new conversation.id
- Output conversation URIs from conversation.uri
2010-02-17 01:12:13 -08:00
Zach Copley
ed46a38ecf - conversation.uri needs to be nullable
- factory method for creating new local conversations
2010-02-17 01:11:14 -08:00
Zach Copley
a2f8c5da17 New Conversation DO to handle remote notices as conversation roots 2010-02-16 23:30:08 -08:00
Zach Copley
2cb243808c More sensical profile::getUri() 2010-02-16 20:13:39 -08:00
Zach Copley
c892726c80 Take remote profiles into account when looking up canonical profile URIs 2010-02-16 16:22:58 -08:00
Zach Copley
eea52c708b Add rel="avatar" to img links in <activity:actor> stanzas 2010-02-16 11:32:10 -08:00
Craig Andrews
20d6a7caed Merge branch '0.9.x' into 1.0.x
Conflicts:
	lib/queuemanager.php
	lib/xmppmanager.php
	plugins/Xmpp/Fake_XMPP.php
	scripts/imdaemon.php
2010-02-16 13:15:09 -05:00
Evan Prodromou
3d170bfa30 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-16 12:46:02 -05:00
Evan Prodromou
71ecd68901 add a FIXME to Profile 2010-02-16 12:45:00 -05:00
Brion Vibber
d5cbfe8071 Merge branch 'testing' into 0.9.x
Conflicts:
	lib/iomaster.php
2010-02-16 09:25:09 -08:00
Brion Vibber
81b6b58e33 Merge branch 'master' into testing
Conflicts:
	lib/stompqueuemanager.php
2010-02-16 09:22:02 -08:00
Brion Vibber
c74aea589d Stomp queue restructuring for mass scalability:
- Multiplexing queues into groups and for multiple sites.
- Sharing vs breakout configurable per site and per queue via $config['queue']['breakout']
- Detect how many times a message is redelivered, discard if it's killed too many daemons
 - count configurable with $config['queue']['max_retries']
 - can dump the items to files in $config['queue']['dead_letter_dir']

Queue daemon memory & resource leak fixes:
- avoid unnecessary reconnections to memcached server (switch persistent connections back in on second initialization, assuming it's child process)
- monkey-patch for leaky .ini loads in DB_DataObject::databaseStructure() - was leaking 200k per active switch
- applied leak fixes to Status_network as well, using intermediate base Safe_DataObject for both it and Memcache_DataObject

Misc queue fixes:
- correct handling of child processes exiting due to signal termination instead of regular exit
- shutdown instead of infinite respawn loop if we're already past the soft memory limit at startup
- Added --all option for xmppdaemon... still opens one xmpp connection per site that has xmpp active

Cache updates:
- add Cache::increment() method with native support for memcached atomic increment
2010-02-16 09:16:51 -08:00
Craig Andrews
32084e33a2 Merge branch '0.9.x' into 1.0.x
Conflicts:
	lib/queuemanager.php
2010-02-16 10:25:57 -05:00
Evan Prodromou
269b4711eb Merge branch 'ssleverything' into testing 2010-02-13 12:39:15 -05:00
Brion Vibber
f8a459a88a Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-12 15:32:12 -08:00
Brion Vibber
d6f1df8b76 fix for Atom notice output: correct check against conversation & current id 2010-02-12 15:30:23 -08:00
Zach Copley
506c2d7491 Initial upgraded Atom output for group timelines 2010-02-12 12:24:29 -08:00
Brion Vibber
122c8677b7 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-12 11:18:35 -08:00
Brion Vibber
fd3c9334bf PHP 5.3 compatibility hack for DB_DataObject
statusnet.links.ini file could not be read anymore due to the entry for nonce containing a comma in its key value.
PHP's parse_ini_file() function no longer allows commas in keys, and rejects the *ENTIRE FILE* if it's present, breaking various automatic joins.
2010-02-12 11:15:12 -08:00
Brion Vibber
b39047d95b OStatus: prep work for sending notifications on sub/unsub/join/leave/favorite/unfavorite via Salmon; needs to be completed and hooked up once feed gen is fixed. 2010-02-12 18:54:48 +00:00
Zach Copley
525358fa10 Fix retarded spelling mistake 2010-02-11 17:08:50 -08:00
Zach Copley
3beddffc39 ostatus:attention links in Notice Atom output 2010-02-11 16:29:27 -08:00
Evan Prodromou
31461e120f let files go to SSL dir too 2010-02-11 17:06:57 -05:00
Evan Prodromou
3018683718 let backgrounds be put under SSL 2010-02-11 17:03:31 -05:00
Zach Copley
e2c0f59414 Some upgrades to Atom output for OStatus 2010-02-11 13:56:05 -08:00
Evan Prodromou
d6869cde7b let avatars be served over SSL 2010-02-11 16:51:15 -05:00
Brion Vibber
8449256817 OStatus partial support for group subscriptions:
* detection of group feeds is currently a nasty hack based on presence of '/groups/' in URL -- should use some property on the feed?
* listing for the remote group is kinda cruddy; needs to be named more cleanly
* still need to establish per-author profiles (easier once we have the updated Atom code in)
* group delivery probably not right yet
* saving of group messages still triggering some weird behavior

Added support for since_id and max_id on group timeline feeds as a free extra. Enjoy!
2010-02-09 18:32:52 -08:00
Brion Vibber
b2e8d8407c Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-08 15:48:52 -08:00
Brion Vibber
384387c9b0 OStatus cleanup...
* Treat linkless feed posts as status updates; drop the "New post:" prefix and quotes on them.
* Use stable user IDs for atom/rss2 feed links instead of unstable nicknames
* Pull Atom feed preferentially when subscribing -- can now put the remote user's profile page straight into the feed subscription form and get to the right place.
* Clean up naming for push endpoints
2010-02-08 14:58:12 -08:00
Evan Prodromou
5fdcd88176 Moderator can make users admins of a group 2010-02-06 11:36:59 +01:00
Brion Vibber
875e1a70ce Don't spew warnings on usage of MEMCACHE_COMPRESSED constant when memcache PHP extension is not present.
Switched to a locally-defined Cache::COMPRESSED, translating that to MEMCACHE_COMPRESSED in the plugin.
2010-02-05 09:47:56 -08:00
Zach Copley
23802e58d6 Merge branch 'temp' 2010-02-05 03:19:12 +00:00
Zach Copley
208eec6511 OAuth app name should not be null 2010-02-05 03:18:45 +00:00
Zach Copley
e495ac356c Allow developers to delete OAuth applications 2010-02-05 03:18:43 +00:00
Zach Copley
dc183f23cf OAuth app names should be unique. 2010-02-05 03:18:43 +00:00
Zach Copley
03fefb86bd Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-05 02:10:35 +00:00
Zach Copley
4180ab74d9 OAuth app name should not be null 2010-02-05 02:09:58 +00:00
Zach Copley
8d320d7cc2 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-05 02:08:37 +00:00
Zach Copley
82f1119073 OAuth app name should not be null 2010-02-05 01:24:21 +00:00
Brion Vibber
941d0433cf Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-04 15:20:17 -08:00
Brion Vibber
509c8fc515 Merge branch 'master' into testing - drop debug statements 2010-02-04 15:19:09 -08:00
Brion Vibber
4502bea9a8 drop debug messages from inbox deletion fix 2010-02-04 15:16:27 -08:00
Brion Vibber
bb16898b1c Inbox::streamNotices() with deletion compensation: inbox paging should more or less work with deleted items now.
No change in efficiency for the common case where nothing's deleted: does the same bulk fetch of just the notices we think we'll need as before, then if we turned up short keeps checking one by one until we've filled up to our $limit.

This can leave us with overlap between pages, but we already have that when new messages come in between clicks; seems to be the lesser of evils versus not getting a 'before' button.
More permanent fix for that will be to switch timeline paging in the UI to use notice IDs.
2010-02-04 15:15:42 -08:00
Brion Vibber
9554b4ccbf Inbox::streamNotices() with deletion compensation: inbox paging should more or less work with deleted items now.
No change in efficiency for the common case where nothing's deleted: does the same bulk fetch of just the notices we think we'll need as before, then if we turned up short keeps checking one by one until we've filled up to our $limit.

This can leave us with overlap between pages, but we already have that when new messages come in between clicks; seems to be the lesser of evils versus not getting a 'before' button.
More permanent fix for that will be to switch timeline paging in the UI to use notice IDs.
2010-02-04 15:09:04 -08:00
Brion Vibber
c59eee72a8 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-04 12:23:56 -08:00
Brion Vibber
a020e23086 Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-02-04 11:56:07 -08:00
Evan Prodromou
dbeb388ade clear cache for Profile::hasRepeated() at Notice::insert() time 2010-02-03 12:31:25 -05:00
Evan Prodromou
20953ea3de Merge branch 'master' of git@gitorious.org:statusnet/mainline 2010-02-03 11:53:54 -05:00
Evan Prodromou
6215b9788c add nickname as unique key for user_group table 2010-02-03 11:53:31 -05:00
Craig Andrews
057ec1fcea Merge branch '0.9.x' into 1.0.x
Conflicts:
	EVENTS.txt
	lib/imqueuehandler.php
	lib/jabber.php
	lib/util.php
	plugins/Xmpp/Sharing_XMPP.php
2010-02-02 17:00:10 -05:00
Brion Vibber
f4c81fa1e1 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-02 09:57:50 -08:00
Brion Vibber
51c3606715 Fix regression breaking file attachments. This is what I get for rushing fixes and not properly testing them. :P 2010-02-02 09:32:28 -08:00
Brion Vibber
027c7e61fd Fix regression breaking file attachments. This is what I get for rushing fixes and not properly testing them. :P 2010-02-02 09:30:15 -08:00
Zach Copley
f0875ceea1 Allow developers to delete OAuth applications 2010-02-02 08:50:18 +00:00
Zach Copley
df2a081265 OAuth app names should be unique. 2010-02-02 08:50:01 +00:00
Zach Copley
38bebb4c0d Allow developers to delete OAuth applications 2010-02-02 06:26:03 +00:00
Zach Copley
59d16cf16a OAuth app names should be unique. 2010-02-01 20:58:30 +00:00
Brion Vibber
c14ac57b19 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-01 10:30:45 -08:00
Brion Vibber
6159edcebb Improve name validation checks on local File references 2010-02-01 08:49:59 -08:00
Brion Vibber
84ab0156b4 Improve name validation checks on local File references 2010-02-01 08:48:31 -08:00
Evan Prodromou
f9cb1c3265 restructuring of User::registerNew() lost password munging 2010-02-01 00:47:50 -05:00
Evan Prodromou
fb36094eb1 buggy fetch for site owner 2010-01-31 22:55:07 -05:00
Evan Prodromou
779204b194 Merge branch 'testing' into 0.9.x
Conflicts:
	actions/apioauthauthorize.php
2010-01-31 15:27:58 -05:00
Evan Prodromou
fec8066bf7 error clearing tags for profiles from memcached 2010-01-30 14:37:39 -05:00
Evan Prodromou
8cb8b357a4 add hooks for user registration 2010-01-29 17:54:54 -05:00
Evan Prodromou
70a4f8c0e2 method to get the site owner 2010-01-29 15:15:23 -05:00
Evan Prodromou
d437b76ed1 define a constant for the 'owner' role of a site 2010-01-29 15:15:04 -05:00
Evan Prodromou
f6eecf02fc add simple cache getter/setter static functions to Memcached_DataObject 2010-01-29 15:01:21 -05:00
Brion Vibber
864ce8e276 Fixes for status_network db object .ini and tag setter script 2010-01-28 20:09:17 -08:00
Evan Prodromou
d13d73c563 Last-chance distribution if enqueueing fails 2010-01-28 16:53:37 -08:00
Evan Prodromou
513f8be07a hide most DB_DataObject errors 2010-01-28 16:26:55 -05:00
Evan Prodromou
d5f86f7a8a Merge branch 'master' of git@gitorious.org:statusnet/mainline 2010-01-28 13:54:19 -05:00
Evan Prodromou
84b5480007 update mysqltimestamps on insert and update 2010-01-28 13:54:01 -05:00
Evan Prodromou
c81318d3ca additional debugging data for Sessions 2010-01-28 13:53:28 -05:00
Brion Vibber
ffaaf9de4a Don't preemptively close existing DB connections for web views (needed to keep # of conns from going insane on multi-site queue daemons, so just doing for CLI)
May, or may not, help with mystery session problems
2010-01-27 23:51:22 -08:00
Brion Vibber
644c319f5a fix notice -- drop unused return value of variable that isn't initialized :) thx @ g0 for the catch 2010-01-27 19:59:25 -08:00
Craig Andrews
914bc9f9c5 Merge branch '0.9.x' into 1.0.x
Conflicts:
	lib/queuemanager.php
2010-01-27 22:07:04 -05:00
Brion Vibber
3abfb454a3 Adds an emergency switch so we can run inbox distribution at save time (bypassing 'distrib' queue)
Set $config['queue']['inboxes'] = false to do so
2010-01-27 18:39:17 -08:00
Zach Copley
78079f34e2 Merge branch 'testing' into -1.9.x
* testing: (130 commits)
  HTTP auth provided is evaluated even if it's not required
  Rename rc3to09.sql to rc3torc4.sql to avoid confusion if we add a last-minute change after this!
  Add new oauth tables and modifications to 'consumer' table for rc4
  Centred leaderboard ad
  camelcase the uap param names
  move leaderboard to after the header
  Moved rectangle ad into aside and leaderboard to the right in header.
  Aligning wide skyscraper to the right instead of left
  CSS ids and classes fixed in UAPPlugin
  wrong height for rectangle in BlankAd
  Add the moved BlankAdPlugin
  make BlankAd dir and change to use a 1x1 image
  move BlankAdPlugin to its own dir
  Add BlankAdPlugin to test ad layout in different themes
  make uapplugin an abstract class
  move UAP plugin to core
  Lowercased switch cases in UAP Plugin
  Plugin for Universal Ad Package. Outputs four most widely used ad types.
  Add persistent:true property to Stomp messages so ActiveMQ doesn't decide to discard them even though persistence is enabled on the broker. :) (Thanks Aric!)
  quick fix: use common_path() on realtime update JS so it works with the new JS path code (will pull from main server for now)
  ...

Conflicts:
	actions/apioauthaccesstoken.php
	actions/apioauthauthorize.php
	actions/apioauthrequesttoken.php
	actions/editapplication.php
	actions/newapplication.php
	lib/apiauth.php
	lib/queuemanager.php
	lib/router.php
2010-01-27 14:27:22 -08:00
Craig Andrews
e9995b0f6a Create IM plugin, Pluginize XMPP, Create AIM plugin 2010-01-27 13:48:35 -05:00
Brion Vibber
58be61b641 Control channel for queue daemons to request graceful shutdown, restart, or update to listen to a newly added or reconfigured site.
queuectl.php --update -s<site>
  queuectl.php --stop
  queuectl.php --restart

Default control channel is /topic/statusnet-control. For external utilities to send a site update ping direct to the queue server, connect via Stomp and send a message formatted thus:

  update:<nickname>

(Nickname here, *not* server hostname! The rest of the queues will be updated to use nicknames later.)

Note that all currently-connected queue daemons will get these notifications, including both queuedaemon.php and xmppdaemon.php. (XMPP will ignore site update requests for sites that it's not handling.)

Limitations:
* only implemented for stomp queue manager so far
* --update may not yet handle a changed server name properly
* --restart won't reload PHP code files that were already loaded at startup. Still need to stop and restart the daemons from 'outside' when updating code base.
2010-01-26 11:49:49 -08:00
Brion Vibber
ad6f0501ff Site metadata tags in status_network: single 'tags' field, pipe-separated.
$sn->tags() returns tag list as array; $sn->hasTag('blah') to check for a particular tag only

Could be used to control things in config file:

  $sn = Status_network::setupSite($_server, $_path, $_wildcard);
  if (!$sn) { die("No such site"); }
  if ($sn->hasTag('individual')) { /* blah */ }

Note memcached keys are unchanged; if tags are changed from an external tool clear:
  statusnet:<dbname>:status_network:<key>:<val>
  for <key>s 'nickname', 'hostname', and 'pathname'
2010-01-26 10:33:20 -08:00
Evan Prodromou
663e4e02a1 Merge branch 'master' into testing
Conflicts:
	lib/queuemanager.php
2010-01-25 18:13:09 -05:00
Evan Prodromou
b6aa1511eb Merge branch 'master' into 0.9.x 2010-01-25 18:10:59 -05:00
Evan Prodromou
e26a843caf Offload inbox updates to a queue handler to speed up posting online
Moved much of the writing that happens when posting a notice to a new
queuehandler, distribqueuehandler. This updates tags, groups, replies
and inboxes at queue time (or at Web time, if queues are disabled).

To make this work well, I had to break up the monolithic
Notice::blowCaches() and make cache blowing happen closer to where
data is updated.

Squashed commit of the following:

commit 5257626c62750ac4ac1db0ce2b71410c5711cfa3
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 14:56:41 2010 -0500

    slightly better handling of blowing tag memory cache

commit 8a22a3cdf6ec28685da129a0313e7b2a0837c9ef
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 01:42:56 2010 -0500

    change 'distribute' to 'distrib' so not too long for dbqueue

commit 7a063315b0f7fad27cb6fbd2bdd74e253af83e4f
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 01:39:15 2010 -0500

    change handle_notice() to handle() in distributqueuehandler

commit 1a39ccd28b9994137d7bfd21bb4f230546938e77
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 16:05:25 2010 -0500

    error with queuemanager

commit e6b3bb93f305cfd2de71a6340b8aa6fb890049b7
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 01:11:34 2010 -0500

    Blow memcache at different point rather than one big function for Notice class

commit 94d557cdc016187d1d0647ae1794cd94d6fb8ac8
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 00:48:44 2010 -0500

    Blow memcache at different point rather than one big function for Notice class

commit 1c781dd08c88a35dafc5c01230b4872fd6b95182
Author: Evan Prodromou <evan@status.net>
Date:   Wed Jan 20 08:54:18 2010 -0500

    move broadcasting and distributing to new queuehandler

commit da3e46d26b84e4f028f34a13fd2ee373e4c1b954
Author: Evan Prodromou <evan@status.net>
Date:   Wed Jan 20 08:53:12 2010 -0500

    Move distribution of notices to new distribute queue handler
2010-01-25 18:08:21 -05:00
Evan Prodromou
536170d788 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-01-24 22:42:29 -05:00
Evan Prodromou
e6cf293db8 Recover caching logic lost in bad merge
I made a bad merge on Jan 10th from master to 0.9.x. This lost a number
of memcache enhancements made on the 0.9.x branch. I've been able to
re-do the manual merge, and this represents the changes. Most of them
are related to caching on insert.
2010-01-24 22:39:32 -05:00
Zach Copley
6efbf2777a Add verifier and verified callback to token for OAuth 1.0a 2010-01-24 16:36:05 -08:00
Zach Copley
d33040089d Remove verifier from Oauth_application_user (not needed there) 2010-01-24 16:36:05 -08:00
Zach Copley
9e7f47652d Revoke access token UI 2010-01-24 16:36:05 -08:00
Zach Copley
adfca01808 Can now edit/change application icon 2010-01-24 16:36:04 -08:00
Zach Copley
c78937537e Better detial in connected OAuth applications list 2010-01-24 16:36:03 -08:00
Zach Copley
c2337ab47c Decided we didn't need to keep the token secret in the
Oauth_application_user record
2010-01-24 16:36:02 -08:00
Zach Copley
a0b8438773 Exchanging authorized request tokens for access tokens working 2010-01-24 16:36:02 -08:00
Zach Copley
c473a39a7d Associate request tokens with OAuth apps and app users 2010-01-24 16:36:02 -08:00
Zach Copley
48e5f2b3c5 Add icons/icon upload to Oauth apps 2010-01-24 16:36:02 -08:00
Zach Copley
3c2b05d222 Workflow for registering new OAuth apps pretty much done. 2010-01-24 16:36:02 -08:00
Zach Copley
035c475b45 It might help if I checkd in statusnet.ini. 2010-01-24 16:36:02 -08:00
Zach Copley
ae46bc5fff Started work on interface for displaying connected OAuth apps 2010-01-24 16:36:01 -08:00
Zach Copley
efd84cadc0 Changed the OAuth app tables to refer to profiles instead of users.
Added an owner column to oauth_application.
2010-01-24 16:36:01 -08:00
Zach Copley
c0b832d19f Add new OAuth application tables and DataObjects. Also add a new
column for consumer secret to consumer table.
2010-01-24 16:36:01 -08:00
Evan Prodromou
8dce24c82c save nickname and wildcard when setting up status network 2010-01-24 16:01:00 -08:00
Evan Prodromou
238998eca0 save nickname and wildcard when setting up status network 2010-01-24 18:18:24 -05:00
Brion Vibber
c7507e7e9d XMPP queued output & initial retooling of DB queue manager to support non-Notice objects.
Queue handlers for XMPP individual & firehose output now send their XML stanzas
to another output queue instead of connecting directly to the chat server. This
lets us have as many general processing threads as we need, while all actual
XMPP input and output go through a single daemon with a single connection open.

This avoids problems with multiple connected resources:
* multiple windows shown in some chat clients (psi, gajim, kopete)
* extra load on server
* incoming message delivery forwarding issues

Database changes:
* queue_item drops 'notice_id' in favor of a 'frame' blob.
  This is based on Craig Andrews' work branch to generalize queues to take any
  object, but conservatively leaving out the serialization for now.
  Table updater (preserves any existing queued items) in db/rc3to09.sql

Code changes to watch out for:
* Queue handlers should now define a handle() method instead of handle_notice()
* QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning
  thread management (RespawningDaemon) infrastructure.
* The polling XmppConfirmManager has been dropped, as the message is queued
  directly when saving IM settings.
* Enable $config['queue']['debug_memory'] to output current memory usage at
  each run through the event loop to watch for memory leaks

To do:
* Adapt XMPP i/o to component connection mode for multi-site support.
* XMPP input can also be broken out to a queue, which would allow the actual
  notice save etc to be handled by general queue threads.
* Make sure there are no problems with simply pushing serialized Notice objects
  to queues.
* Find a way to improve interactive performance of the database-backed queue
  handler; polling is pretty painful to XMPP.
* Possibly redo the way QueueHandlers are injected into a QueueManager. The
  grouping used to split out the XMPP output queue is a bit awkward.

Conflicts:

	scripts/xmppdaemon.php
2010-01-22 12:52:36 -08:00
Evan Prodromou
d25bd9b292 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-22 14:19:08 -05:00
Evan Prodromou
c8bc598cfd Merge branch 'testing' into 0.9.x 2010-01-22 14:18:43 -05:00
Evan Prodromou
e666433eb4 Merge branch 'master' into 0.9.x 2010-01-22 14:18:40 -05:00
Evan Prodromou
29d83c8ca9 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-01-22 14:18:21 -05:00
Evan Prodromou
a3e484a0e8 Memcached_DataObject unnecessarily require_once'd itself 2010-01-22 10:46:11 -05:00
Craig Andrews
672126968f Updated some references to the long gnone "isEnclosure" function to the new "getEnclosure" 2010-01-22 10:12:26 -05:00
Brion Vibber
0e852def6a XMPP queued output & initial retooling of DB queue manager to support non-Notice objects.
Queue handlers for XMPP individual & firehose output now send their XML stanzas
to another output queue instead of connecting directly to the chat server. This
lets us have as many general processing threads as we need, while all actual
XMPP input and output go through a single daemon with a single connection open.

This avoids problems with multiple connected resources:
* multiple windows shown in some chat clients (psi, gajim, kopete)
* extra load on server
* incoming message delivery forwarding issues

Database changes:
* queue_item drops 'notice_id' in favor of a 'frame' blob.
  This is based on Craig Andrews' work branch to generalize queues to take any
  object, but conservatively leaving out the serialization for now.
  Table updater (preserves any existing queued items) in db/rc3to09.sql

Code changes to watch out for:
* Queue handlers should now define a handle() method instead of handle_notice()
* QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning
  thread management (RespawningDaemon) infrastructure.
* The polling XmppConfirmManager has been dropped, as the message is queued
  directly when saving IM settings.
* Enable $config['queue']['debug_memory'] to output current memory usage at
  each run through the event loop to watch for memory leaks

To do:
* Adapt XMPP i/o to component connection mode for multi-site support.
* XMPP input can also be broken out to a queue, which would allow the actual
  notice save etc to be handled by general queue threads.
* Make sure there are no problems with simply pushing serialized Notice objects
  to queues.
* Find a way to improve interactive performance of the database-backed queue
  handler; polling is pretty painful to XMPP.
* Possibly redo the way QueueHandlers are injected into a QueueManager. The
  grouping used to split out the XMPP output queue is a bit awkward.
2010-01-21 22:40:35 -08:00
Brion Vibber
26fdf0c9d2 XMPP queued output & initial retooling of DB queue manager to support non-Notice objects.
Queue handlers for XMPP individual & firehose output now send their XML stanzas
to another output queue instead of connecting directly to the chat server. This
lets us have as many general processing threads as we need, while all actual
XMPP input and output go through a single daemon with a single connection open.

This avoids problems with multiple connected resources:
* multiple windows shown in some chat clients (psi, gajim, kopete)
* extra load on server
* incoming message delivery forwarding issues

Database changes:
* queue_item drops 'notice_id' in favor of a 'frame' blob.
  This is based on Craig Andrews' work branch to generalize queues to take any
  object, but conservatively leaving out the serialization for now.
  Table updater (preserves any existing queued items) in db/rc3to09.sql

Code changes to watch out for:
* Queue handlers should now define a handle() method instead of handle_notice()
* QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning
  thread management (RespawningDaemon) infrastructure.
* The polling XmppConfirmManager has been dropped, as the message is queued
  directly when saving IM settings.
* Enable $config['queue']['debug_memory'] to output current memory usage at
  each run through the event loop to watch for memory leaks

To do:
* Adapt XMPP i/o to component connection mode for multi-site support.
* XMPP input can also be broken out to a queue, which would allow the actual
  notice save etc to be handled by general queue threads.
* Make sure there are no problems with simply pushing serialized Notice objects
  to queues.
* Find a way to improve interactive performance of the database-backed queue
  handler; polling is pretty painful to XMPP.
* Possibly redo the way QueueHandlers are injected into a QueueManager. The
  grouping used to split out the XMPP output queue is a bit awkward.
2010-01-21 16:42:50 -08:00
Brion Vibber
c9c7bb3234 Merge commit 'origin/testing' into 0.9.x 2010-01-21 16:33:11 -08:00
Brion Vibber
8dafe09ab2 Option to log slow db queries or all db queries
$config['db']['log_queries'] = true; // all
$config['db']['log_slow_queries'] = 10; // queries taking > 10 seconds
2010-01-21 11:07:52 -08:00
Evan Prodromou
01dc77c2fd Merge branch 'master' into 0.9.x 2010-01-19 00:31:42 -05:00
Brion Vibber
d35faa04c1 Fix for background recalculation of groups; needs to get Group objects not IDs; also don't list any groups for repeats to match saveGroups behavior
todo: merge calculation portion with saveGroups so they don't get out of sync
2010-01-15 13:06:21 -08:00
Brion Vibber
963260d262 Fix since_id and max_id API parameters for inbox-based loads; was failing if the exact id mentioned wasn't present in the inbox (or had been trimmed out) 2010-01-15 10:03:02 -08:00
Brion Vibber
745d428365 Fix since_id and max_id API parameters for inbox-based loads; was failing if the exact id mentioned wasn't present in the inbox (or had been trimmed out) 2010-01-15 10:01:50 -08:00
Brion Vibber
ef016dca45 Merge branch 'master' of gitorious.org:statusnet/mainline into 0.9.x 2010-01-15 09:52:50 -08:00
Evan Prodromou
16742d0fde do since_id and max_id in inbox 2010-01-13 22:32:17 -08:00
Evan Prodromou
abd67452da go straight to the DB for inbox before insert 2010-01-13 22:12:19 -08:00
Zach Copley
ee8c1ec91c Add verifier and verified callback to token for OAuth 1.0a 2010-01-14 02:41:10 +00:00
Zach Copley
ead1ef4c68 Remove verifier from Oauth_application_user (not needed there) 2010-01-14 02:41:10 +00:00
Zach Copley
38269a6579 Revoke access token UI 2010-01-14 02:41:10 +00:00
Zach Copley
0d7490470d Can now edit/change application icon 2010-01-14 02:41:08 +00:00
Zach Copley
31c5ebb95c Better detial in connected OAuth applications list 2010-01-14 02:41:06 +00:00
Zach Copley
bfe3e3c74e Decided we didn't need to keep the token secret in the
Oauth_application_user record
2010-01-14 02:41:06 +00:00
Zach Copley
d8abad7478 Exchanging authorized request tokens for access tokens working 2010-01-14 02:41:06 +00:00
Zach Copley
e7f4ab6774 Associate request tokens with OAuth apps and app users 2010-01-14 02:41:05 +00:00
Zach Copley
b14a97f5f9 Add icons/icon upload to Oauth apps 2010-01-14 02:41:05 +00:00
Zach Copley
dad67b030f Workflow for registering new OAuth apps pretty much done. 2010-01-14 02:41:04 +00:00
Zach Copley
8e0499a233 It might help if I checkd in statusnet.ini. 2010-01-14 02:41:04 +00:00
Zach Copley
5bff6651ba Started work on interface for displaying connected OAuth apps 2010-01-14 02:41:04 +00:00
Zach Copley
6e64ce3777 Changed the OAuth app tables to refer to profiles instead of users.
Added an owner column to oauth_application.
2010-01-14 02:41:04 +00:00
Zach Copley
14bcac31b8 Add new OAuth application tables and DataObjects. Also add a new
column for consumer secret to consumer table.
2010-01-14 02:41:04 +00:00
Evan Prodromou
4d7cdbf1c6 don't write Inbox if on a read-only page, but encache 2010-01-13 16:28:42 -08:00
Evan Prodromou
d032fc038a make sure whoGets() doesn't write anything 2010-01-13 12:37:01 -08:00
Brion Vibber
0e1f2d4b47 Fix regressions in XMPP output during inbox refactoring
- NOTICE_INBOX_SOURCE_* constants moved to common.php since Notice_inbox.php not always loaded
- fixed typo in User::staticGet() call which caused user #1 to receive messages once for each subscriber instead of for him/herself
- 'continue' -> 'continue 2' inside switch() statement to fix loop escape (PHP considers switch() a looping construct for break & continue)
2010-01-13 18:17:36 +00:00
Evan Prodromou
430bd69312 add events for subscribing to people and joining groups 2010-01-13 02:16:13 -08:00
Evan Prodromou
43ff542189 Don't save reply info for repeats 2010-01-13 01:13:06 -08:00
Evan Prodromou
8bfa7fdeaf repeats don't get posted to groups 2010-01-13 00:47:12 -08:00
Evan Prodromou
5397249e50 remove vestiges of Notice_inbox from cache clearing code in Notice 2010-01-13 00:45:12 -08:00
Evan Prodromou
1bbd19169f unimplement repeatedToMe() until we figure out how 2010-01-13 00:44:29 -08:00
Evan Prodromou
3d579fc580 memoize Notice::whoGets() 2010-01-13 00:16:54 -08:00
Evan Prodromou
436b8c845e Merge branch '0.9.x' into inblob 2010-01-12 23:53:52 -08:00
Evan Prodromou
fb0d837ddc remove transaction for Notice save; causes deadlocks 2010-01-12 23:41:33 -08:00
Brion Vibber
ec145b73fc Major refactoring of queue handlers to support running multiple sites in one daemon.
Key changes:
* Initialization code moved from common.php to StatusNet class;
  can now switch configurations during runtime.
* As a consequence, configuration files must now be idempotent...
  Be careful with constant, function or class definitions.
* Control structure for daemons/QueueManager/QueueHandler has been refactored;
  the run loop is now managed by IoMaster run via scripts/queuedaemon.php
  IoManager subclasses are woken to handle socket input or polling, and may
  cover multiple sites.
* Plugins can implement notice queue handlers more easily by registering a
  QueueHandler class; no more need to add a daemon.

The new QueueDaemon runs from scripts/queuedaemon.php:

* This replaces most of the old *handler.php scripts; they've been refactored
  to the bare handler classes.
* Spawns multiple child processes to spread load; defaults to CPU count on
  Linux and Mac OS X systems, or override with --threads=N
* When multithreaded, child processes are automatically respawned on failure.
* Threads gracefully shut down and restart when passing a soft memory limit
  (defaults to 90% of memory_limit), limiting damage from memory leaks.
* Support for UDP-based monitoring: http://www.gitorious.org/snqmon

Rough control flow diagram:
QueueDaemon -> IoMaster -> IoManager
                           QueueManager [listen or poll] -> QueueHandler
                           XmppManager [ping & keepalive]
                           XmppConfirmManager [poll updates]

Todo:

* Respawning features not currently available running single-threaded.
* When running single-site, configuration changes aren't picked up.
* New sites or config changes affecting queue subscriptions are not yet
  handled without a daemon restart.
* SNMP monitoring output to integrate with general tools (nagios, ganglia)
* Convert XMPP confirmation message sends to use stomp queue instead of polling
* Convert xmppdaemon.php to IoManager?
* Convert Twitter status, friends import polling daemons to IoManager
* Clean up some error reporting and failure modes
* May need to adjust queue priorities for best perf in backlog/flood cases

Detailed code history available in my daemon-work branch:
http://www.gitorious.org/~brion/statusnet/brion-fixes/commits/daemon-work
2010-01-12 20:45:09 -08:00
Brion Vibber
4cc9b183d7 Avoid spewing warnings about returning by reference on memcached cache misses by setting a var and returning it instead of trying to return false directly.
This hacky workaround is brought to you by DB_DataObject's PHP 4 roots.
2010-01-12 12:20:45 -08:00
Evan Prodromou
ecb3abf84c Merge branch '0.9.x' into inblob 2010-01-11 16:28:27 -08:00
Brion Vibber
f397d35527 Regression fix: don't spew notices to log every time we get a non-cached user object 2010-01-11 13:24:52 -08:00
Evan Prodromou
8809e577b2 Merge branch 'sessionidparam' into 0.9.x
Conflicts:
	lib/command.php
2010-01-11 00:45:26 -08:00
Evan Prodromou
866dfa6822 Merge branch 'master' into 0.9.x
Conflicts:
	classes/Memcached_DataObject.php
2010-01-10 14:18:19 -08:00
Evan Prodromou
2e42d3336a check before saving a thumbnail 2010-01-10 13:25:16 -08:00
Evan Prodromou
f463329b9a check before inserting File_oembed and File_thumbnail 2010-01-10 13:18:53 -08:00
Evan Prodromou
9d3893255a don't put Users with object IDs in the cache, and don't fetch them 2010-01-10 12:31:43 -08:00
Evan Prodromou
e2dee5fedb always set site/server to hostname if it exists 2010-01-10 00:20:08 -08:00
Evan Prodromou
3d723ed1ed allow hostname with SSL 2010-01-09 22:49:26 -08:00
Evan Prodromou
e8d85a1ef5 use nickname, not sitename, in domain for SSL 2010-01-09 22:48:05 -08:00
Evan Prodromou
deb5ee6154 correct superglobal variable name 2010-01-09 16:31:25 -08:00
Evan Prodromou
5ca41b6870 redirect to sitename.wildcard for SSL 2010-01-09 16:19:45 -08:00
Evan Prodromou
ed5828f30e Redirect to a one-time-password when ssl and regular server are different 2010-01-09 15:26:06 -08:00
Evan Prodromou
96e51dad4b whoGets() method for Notice 2010-01-09 13:55:54 -08:00
Evan Prodromou
5e81149e47 create new Inbox from Notice_inbox if not exists at read/write time 2010-01-09 10:26:50 -08:00
Evan Prodromou
920c878221 initialize an Inbox from Notice_inbox records 2010-01-09 10:02:07 -08:00
Evan Prodromou
1de0f37f0d disable all Notice_inbox functions 2010-01-09 10:02:07 -08:00
Evan Prodromou
72934e9f50 Revert "Replace Notice_inbox with Inbox"
We use Notice_inbox to transition to Inbox.

This reverts commit 7640d3f07b.
2010-01-09 10:02:07 -08:00
Evan Prodromou
1e7ec69190 some formatting changes to make inblobs work 2010-01-09 10:02:07 -08:00
Evan Prodromou
f2a403589c Use inbox instead of notice_inbox 2010-01-09 10:02:07 -08:00
Evan Prodromou
7ec27b657e Replace Notice_inbox with Inbox 2010-01-09 10:02:07 -08:00
Evan Prodromou
475bf6010f flip exe bit 2010-01-09 10:01:21 -08:00
Evan Prodromou
8b2f6c01fb add inbox data class 2010-01-09 10:01:21 -08:00
Evan Prodromou
c0a062dd85 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-07 14:56:09 -08:00
Ciaran Gultnieks
deeaafe712 Fixes to bugs where non-local messages were being wrong put in the public timeline and public xmpp feed 2010-01-07 20:59:31 +00:00
Evan Prodromou
b2bab7d7ca fixup keytypes so it returns the types no matter what kind of class it is 2010-01-06 23:34:59 -08:00
Evan Prodromou
a55939f3b1 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-06 23:23:30 -08:00
Evan Prodromou
e50410683f only encache new objects when insert was successful 2010-01-06 16:34:18 -10:00
Brion Vibber
4e2acd153b ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Brion Vibber
85554d0840 Rearrange Memcached_DataObject::staticGet() to avoid "only variables can be passed by reference" warnings when DB lookup fails and we return false.
(We need to keep it returning a reference because the extlib parent class is stuck in PHP 4-land and uses references everywhere, including this function's return value. Yuck!)

Also changed pkeyGet to drop the reference, since it doesn't have an upstream equivalent.
2010-01-06 13:35:13 -08:00
Brion Vibber
b93244395f Fix for broken profile flag admin UI: delete stray flag entries when users are deleted so broken entries don't litter the lookups.
* added ProfileDeleteRelated event to match UserDeleteRelated, to allow plugins to add extra related tables on profile deletion
* UserFlagPlugin: deleting flags when target profile is deleted
* UserFlagPlugin: deleting flags when flagging user is deleted
* UserFlagPlugin: fix for autoloader -- class names are case-insensitive. We may get lowercase class names coming in at times, such as when creating DB objects programatically from a table name.

Note that any already-existing bogus entries need to be removed from the database:
select * from user_flag_profile where (select id from profile where id=profile_id) is null;
select * from user_flag_profile where (select id from user where id=user_id) is null;
2010-01-06 11:10:33 -08:00
Evan Prodromou
35d4587172 encache on insert instead of decaching 2010-01-05 19:48:43 -10:00
Brion Vibber
8af7ba0226 Fix for overlong RT trimming: don't trim if textlimit is 0 (unlimited) 2010-01-05 16:16:25 -08:00
Brion Vibber
bbbec435b0 Fix for overlong RT trimming: don't trim if textlimit is 0 (unlimited) 2010-01-05 16:15:12 -08:00
Brion Vibber
eb22d2d240 Ticket 2135: trim overlong repeats with ellipsis rather than failing.
In web interface and retweet/repeat API we show the original untrimmed text, but some back-compat API messages will still show the trimmed 'RT' version.
This matches Twitter's behavior on overlong retweets, though we're outputting the RT version in more API results than they do.
2010-01-05 16:11:02 -08:00
Brion Vibber
9215496902 Ticket 2135: trim overlong repeats with ellipsis rather than failing.
In web interface and retweet/repeat API we show the original untrimmed text, but some back-compat API messages will still show the trimmed 'RT' version.
This matches Twitter's behavior on overlong retweets, though we're outputting the RT version in more API results than they do.
2010-01-05 16:10:00 -08:00
Brion Vibber
aff78e5121 Cache fixes:
* We now cache negative lookups; clear them in Memcached_DataObject->insert()
* Mark file.url as a unique key in statusnet.ini so its negative lookups are cleared properly (first save of a notice with a new URL was failing due to double-insert)
* Now using serialization for default in-process cache instead of just saving objects; avoids potential corruption if you save an object to cache, change the original object, then fetch the same key from cache again
2010-01-05 15:05:53 -08:00
Craig Andrews
250bcfa8dc Require users to login to view attachments on private sites
Thank you jeff-themovie for this implementation!
2010-01-05 17:49:28 -05:00
Craig Andrews
9e2e0605ed Move Authorization and Authentication plugin structures into core, instead of as plugins.
This move makes sense as you can addPlugin('Authentication') for example - these are abstract classes designed to be implemented, not used directly.
2010-01-05 13:56:22 -05:00
Evan Prodromou
4e84c523b7 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	classes/Memcached_DataObject.php
2010-01-04 22:50:04 -10:00
Evan Prodromou
7aeb11bb07 Merge branch 'master' into 0.9.x
Conflicts:
	actions/publictagcloud.php
	classes/Memcached_DataObject.php
2010-01-04 15:14:54 -10:00
Brion Vibber
78214c4e06 Exclude process-specific link & result cache references from serialized Memcached_Data_Object instances.
Should fix seemingly-random bugs due to destructor free()ing local resources by mistake.

cherry-pick from 0.9.x
2010-01-04 14:38:56 -08:00
Brion Vibber
8f02379f6e Revert "Take Memcached_DataObject destructor back out to check whether it might be causing some under-the-hood problems."
This reverts commit 89cca01259.
2010-01-04 14:37:39 -08:00
Brion Vibber
440b9957f9 Exclude process-specific link & result cache references from serialized Memcached_Data_Object instances.
Should fix seemingly-random bugs due to destructor free()ing local resources by mistake.
2010-01-04 14:30:45 -08:00
Evan Prodromou
06b6a27d7d cached id streams can be empty, compare against false 2010-01-04 10:03:57 -10:00
Evan Prodromou
254ea279d8 carefully compare cached settings against false for Config 2010-01-04 10:02:59 -10:00
Evan Prodromou
abc9b33241 Memcached_DataObject stores empty values in the cache
There's great value in knowing that something doesn't exist. We
now cache this information, and carefully compare the results from
cache as $results !== false instead of !empty($results), since some
empty values (null, 0, empty array, empty string) are stored in the
cache.

Caching staticGet() and pkeyGet() now store DB misses in the cache,
and cachedQuery() checks for empty results from the cache.
2010-01-04 10:00:17 -10:00
Evan Prodromou
5a1ea0b9b2 Stop caching unfindable keys
There were some problems with the automated cache/uncache system
for data objects that made us cache unfindable keys (with null
attributes and sometimes null names). Fixed those problems and
refactored the encache() and decache() methods so they use a helper
to find the cache keys to use.
2010-01-04 08:59:19 -10:00
Evan Prodromou
8f362e9956 user_id is a non-autoincrement pkey for user_location_prefs 2010-01-04 08:53:28 -10:00
Evan Prodromou
d5fb88e1c0 Revert "use keys() instead of keyTypes() so plugin data object work"
This reverts commit ec380887f7.
2010-01-03 11:24:05 -10:00
Evan Prodromou
ec380887f7 use keys() instead of keyTypes() so plugin data object work 2010-01-03 10:52:24 -10:00
Evan Prodromou
90a2563a90 Merge branch 'master' into 0.9.x
Conflicts:
	classes/Memcached_DataObject.php
2010-01-02 19:47:34 -10:00
Evan Prodromou
d32fb7c7c4 return false from Memcached_DataObject::staticGet() on not found, like DB_DataObject 2010-01-02 16:28:46 -10:00
Evan Prodromou
2bd32dfad7 change harmless check of to check of in Memcached_DataObject 2010-01-02 16:21:19 -10:00
Evan Prodromou
52fbd10162 incorrectly used empty() instead of isset() for a variable that could be 0 2010-01-02 08:36:47 -10:00
Evan Prodromou
d2bbf65f19 Merge branch 'master' of git@gitorious.org:statusnet/mainline 2010-01-01 11:27:28 -10:00
Evan Prodromou
79c2e3f720 Revert "add cleanup method to cleanup a single row"
This reverts commit b0527801d9.
2010-01-01 11:27:13 -10:00
Evan Prodromou
a9d8359208 Merge branch 'master' into 0.9.x
Conflicts:
	classes/Memcached_DataObject.php
2010-01-01 11:20:25 -10:00
Evan Prodromou
b0527801d9 add cleanup method to cleanup a single row 2010-01-01 11:02:56 -10:00
Evan Prodromou
727978332a stop using DB_DataObject's staticGet() which caches 2010-01-01 10:57:22 -10:00
Evan Prodromou
053b8c600d Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-12-31 09:14:55 -10:00
Brion Vibber
89cca01259 Take Memcached_DataObject destructor back out to check whether it might be causing some under-the-hood problems. 2009-12-30 16:42:57 -08:00
Brion Vibber
ff50c2b91d Revert debugging code 2009-12-30 16:40:59 -08:00
Brion Vibber
9218cce3cd subbug debug info to check on free ordering 2009-12-30 15:55:15 -08:00
Evan Prodromou
ad8ea98cd7 Merge branch 'locshunt2' into 0.9.x
Conflicts:
	classes/User_location_prefs.php
2009-12-30 08:57:39 -10:00
Evan Prodromou
544e884d30 Add magic formula to keep DB_DataObject from treating location prefs pkey as autoincrement 2009-12-30 08:56:43 -10:00
Brion Vibber
45c9d3d729 Add progress output and optional --sleep-time parameter to triminboxes.php 2009-12-29 14:17:03 -08:00
Brion Vibber
e3850e5273 Add progress output and optional --sleep-time parameter to triminboxes.php 2009-12-29 14:16:22 -08:00
Brion Vibber
0fb114c34f Fix for saving user location preferences -- user_id field was marked as an auto-increment and wasn't getting saved with new inserts. 2009-12-29 12:49:28 -08:00
Evan Prodromou
a1b130541b Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-12-29 12:48:59 -08:00
Evan Prodromou
05e2b4d92d Merge branch 'master' into 0.9.x 2009-12-29 12:09:17 -08:00
Brion Vibber
e152bec282 Fix for saving user location preferences -- user_id field was marked as an auto-increment and wasn't getting saved with new inserts. 2009-12-29 11:46:10 -08:00
Evan Prodromou
45c4078ca9 notices are immutable, use created date for updated 2009-12-28 17:51:04 -08:00
Evan Prodromou
e3789be03f Move location-argument-handling code into a single function
Moved the important parts of the location-argument-handling stuff
to a single function. Handles defaults and overrides correctly, and
easy to use. Changed Web and API channels to use it.
2009-12-28 15:59:24 -08:00
Evan Prodromou
97f611107a More configuration options for location sharing 2009-12-28 15:58:58 -08:00
Evan Prodromou
6a6d88f0f4 user_id is primary key for user_location_prefs 2009-12-28 15:58:47 -08:00
Evan Prodromou
c1e3b2f032 remove namespace setting from location; it's unused 2009-12-28 15:58:05 -08:00
Evan Prodromou
33786b2c4e turn off exe bits 2009-12-28 15:57:54 -08:00
Evan Prodromou
51a33dc66d add user-location-prefs data objects 2009-12-28 15:57:38 -08:00
Evan Prodromou
e119362fde Merge branch 'locshunt' into 0.9.x 2009-12-28 15:49:27 -08:00
Evan Prodromou
98a579fedf Merge branch 'master' into 0.9.x 2009-12-28 15:49:14 -08:00
Evan Prodromou
ca6669538a Move location-argument-handling code into a single function
Moved the important parts of the location-argument-handling stuff
to a single function. Handles defaults and overrides correctly, and
easy to use. Changed Web and API channels to use it.
2009-12-28 15:13:15 -08:00
Evan Prodromou
39bdda9c7e More configuration options for location sharing 2009-12-28 14:43:34 -08:00
Evan Prodromou
29a1669c01 user_id is primary key for user_location_prefs 2009-12-28 14:43:14 -08:00
Evan Prodromou
bb93d6b1c7 remove namespace setting from location; it's unused 2009-12-28 14:21:07 -08:00
Evan Prodromou
bbf516b965 turn off exe bits 2009-12-28 13:59:31 -08:00
Evan Prodromou
c326824135 add user-location-prefs data objects 2009-12-28 13:59:03 -08:00
Evan Prodromou
c07f221040 check if other user exists before unsub 2009-12-28 10:42:31 -08:00
Evan Prodromou
3262930ed4 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-12-23 10:31:27 -08:00
Brion Vibber
fa0fbd0118 Fix for massively slow friends timeline query due to indexing bug introduced with repeats.
Sorting on notice.id when our primary selector was notice_inbox.user_id caused a filesort and table scan of the notice table.
Switchng to notice_inbox's notice_id means we can use our index, and everything comes right up.

Before:
mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice.id DESC LIMIT 61 OFFSET 0;
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+
| id | select_type | table        | type   | possible_keys                      | key     | key_len | ref                           | rows   | Extra                                        |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+
|  1 | SIMPLE      | notice_inbox | ref    | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4       | const                         | 102600 | Using index; Using temporary; Using filesort |
|  1 | SIMPLE      | notice       | eq_ref | PRIMARY                            | PRIMARY | 4       | stoica.notice_inbox.notice_id |      1 | Using index                                  |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+

After:
mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice_id DESC LIMIT 61 OFFSET 0;
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
| id | select_type | table        | type   | possible_keys                      | key     | key_len | ref                           | rows   | Extra                    |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
|  1 | SIMPLE      | notice_inbox | ref    | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4       | const                         | 102816 | Using where; Using index |
|  1 | SIMPLE      | notice       | eq_ref | PRIMARY,notice_repeatof_idx        | PRIMARY | 4       | stoica.notice_inbox.notice_id |      1 | Using where              |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
2009-12-22 20:30:41 -08:00
Brion Vibber
eab6d1c954 Fix for massively slow friends timeline query due to indexing bug introduced with repeats.
Sorting on notice.id when our primary selector was notice_inbox.user_id caused a filesort and table scan of the notice table.
Switchng to notice_inbox's notice_id means we can use our index, and everything comes right up.

Before:
mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice.id DESC LIMIT 61 OFFSET 0;
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+
| id | select_type | table        | type   | possible_keys                      | key     | key_len | ref                           | rows   | Extra                                        |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+
|  1 | SIMPLE      | notice_inbox | ref    | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4       | const                         | 102600 | Using index; Using temporary; Using filesort |
|  1 | SIMPLE      | notice       | eq_ref | PRIMARY                            | PRIMARY | 4       | stoica.notice_inbox.notice_id |      1 | Using index                                  |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+

After:
mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice_id DESC LIMIT 61 OFFSET 0;
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
| id | select_type | table        | type   | possible_keys                      | key     | key_len | ref                           | rows   | Extra                    |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
|  1 | SIMPLE      | notice_inbox | ref    | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4       | const                         | 102816 | Using where; Using index |
|  1 | SIMPLE      | notice       | eq_ref | PRIMARY,notice_repeatof_idx        | PRIMARY | 4       | stoica.notice_inbox.notice_id |      1 | Using where              |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
2009-12-22 20:18:27 -08:00
Evan Prodromou
f6bf952980 Merge branch 'testing' 2009-12-22 16:44:19 -08:00
Brion
38877a4922 Skip DB_DataObject's in-process cache for static gets on CLI processes.
The local process cache would grow forever, keeping things stuck in memory and preventing GC.
2009-12-22 16:24:01 -08:00
Evan Prodromou
530673b3cd Merge branch '0.9.x' into testing 2009-12-16 22:14:41 -05:00
Brion Vibber
0ca80f78fb Add doc comments listing the array parameters for User::register() and Notice::saveNew() 2009-12-16 09:27:48 -05:00
Brion Vibber
a998bda4a5 Fix UserRightsTest unit tests 2009-12-16 09:27:48 -05:00
Brion Vibber
00fb5feff8 Cleanup undefined variable notice: set a couple more null defaults for new params in Notice::saveNew().
Fixes this notice seen while using AJAX repeat button:
Notice: Undefined variable: uri in classes/Notice.php on line 243
2009-12-16 09:27:48 -05:00
Brion Vibber
e2e1843639 slight cleanup for a bit in Notice.php where a var was reused for different types, confusing tracking down a bug 2009-12-16 09:27:47 -05:00
Evan Prodromou
2a1468ec8b Merge branch '0.9.x' into testing 2009-12-15 16:24:52 -05:00
Evan Prodromou
22f02b35ad call DB_DataObject::__destruct() if it exists 2009-12-15 12:38:15 -05:00
Evan Prodromou
945661d942 take out DB_DataObject destructor 2009-12-15 12:33:17 -05:00
Evan Prodromou
797a0d79fb create a method for notification for new messages, and use it 2009-12-15 10:31:25 -05:00
Brion Vibber
b9040a7cc4 Add destructor on Memcached_DataObject to free DB_DataObject's global storage for an object when that object itself is destroyed.
Reduces some, but not all, memory leakage for long-running processes.
2009-12-14 16:36:01 -08:00
Evan Prodromou
2a8eee0e0b add friends_timeline with no repeats in it 2009-12-14 16:41:25 -05:00
Evan Prodromou
438a0d7f1c remove obsoleted getStream, getStreamDirect, getCachedStream from Notice; use stream() instead 2009-12-12 16:58:39 -05:00
Evan Prodromou
1ec54d3433 add statuses/retweeted_to_me to API 2009-12-12 16:15:23 -05:00
Evan Prodromou
698b28c95c clear repeat_of flag when a notice is deleted 2009-12-12 16:02:44 -05:00
Evan Prodromou
cfe67a9c01 add statuses/retweets_of_me to API 2009-12-12 16:00:27 -05:00
Evan Prodromou
138ce0cd05 add statuses/retweeted_by_me api action 2009-12-12 15:35:05 -05:00
Evan Prodromou
c622d14440 add statuses/retweets to API 2009-12-12 14:46:24 -05:00
Brion Vibber
727357695e Debug check to track down live error -- wrong data type sometimes being sent down to Memcached_DataObject::cacheKey() via various fetch functions, need a backtrace to track it down. 2009-12-11 14:19:18 -08:00
Evan Prodromou
afc86a86d3 save repeats from the form 2009-12-11 11:51:09 -05:00
Evan Prodromou
60754fc6de Merge branch '0.9.x' into forward 2009-12-11 11:38:08 -05:00
Evan Prodromou
79f81ad76d change Notice::saveNew() to use named arguments for little-used options 2009-12-11 11:29:51 -05:00
Evan Prodromou
81843f2acd show the repeat form in notice lists 2009-12-11 10:49:26 -05:00
Evan Prodromou
c9649f9321 reset executable bit on Notice.php and statusnet.ini 2009-12-11 10:23:36 -05:00
Evan Prodromou
da30890988 add repeat_of column to notice class 2009-12-11 10:22:56 -05:00
Evan Prodromou
e9b733e7f0 Merge branch '0.9.x' into testing 2009-12-11 09:55:47 -05:00
Evan Prodromou
433106dfc5 remove 'has forwarded' method from Profile 2009-12-10 14:40:48 -05:00
Evan Prodromou
dd098fee77 remove forward table from db scripts 2009-12-10 14:34:47 -05:00
Evan Prodromou
144faade3b move forwarding stuff to Repeat plugin 2009-12-10 13:31:16 -05:00
Craig Andrews
b07e1143cc Override login_token's sequenceKey() so that it behaves correctly 2009-12-10 13:08:24 -05:00
Evan Prodromou
fcce5a064a Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-12-08 21:18:49 -05:00
Evan Prodromou
45408142e9 reorder notices when not using memcached 2009-12-08 21:02:54 -05:00
Brenda Wallace
789378838b that pesky table named user - now quoted 2009-12-09 13:26:59 +13:00
Evan Prodromou
9dff9e6cea make sure not to forward blocked users 2009-12-08 17:42:07 -05:00
Evan Prodromou
c49ece9fb4 method to check if a profile has forwarded a notice 2009-12-08 17:20:17 -05:00
Evan Prodromou
7dd0f2fa9c pkeyGet() method for Forward and return value from saveNew() 2009-12-08 17:20:04 -05:00
Evan Prodromou
72c82a2e29 Basic function to store forwards and redistribute 2009-12-08 16:30:33 -05:00
Evan Prodromou
6bc6af667e fix exe flag 2009-12-08 15:43:34 -05:00
Evan Prodromou
0f1d0ab4d7 add DB_DataObject for forward table 2009-12-08 15:43:11 -05:00
Evan Prodromou
78fc9483d4 Merge branch '0.9.x' into testing 2009-12-08 14:43:21 -05:00
Craig Andrews
75cac0fd6b Added 'login' command that gives you a link that can be used to login to the website 2009-12-05 21:05:33 -05:00
Craig Andrews
d31b1d774e use the new htmloutputter->style() function 2009-12-04 20:20:44 -05:00
Zach Copley
d2b42577de Was deleting wrong subscription during block. Now deletes the blockee's sub if it exists. 2009-12-03 17:44:34 -08:00
Zach Copley
aef4cc0a59 Make it impossible to block (and thus unsubscribe from your
self-subscription) via the API.  Additionally, make it impossible
to block yourself or unsubscribe from yourself, period.

I also made User use the subs.php helper function for unsubscribing
during a block.

Hopefully, these changes will get rid of the problem of people
accidentally deleting their self-subscriptions once and for all
(knock on wood).
2009-12-03 17:06:58 -08:00
Zach Copley
9dc888894b Merge branch 'master' into 0.9.x
* master: (67 commits)
  Ticket 2038: fix bad bug tracker link
  Fix regression in group posting: bug introduced in commit 1319002e15. Need to use actual profile object rather than an id on a variable that doesn't exist when checking blocks :D
  Log database errors when saving notice_inbox entries
  Drop the username from the log id for now; seems to trigger an error loop in some circumstances
  request id on logs... pid + random id per web request + username + method + url
  Add OpenID ini info back into statusnet.ini as a stopgap until we can
  Some changes to the OpenID DataObjects to make them emit the exact same
  OpenID plugin should set 'user_openid.display' as unique key
  Remove relationship: user_openid.user_id -> user.id. I don't think this
  Have OpenID plugin DataObjects emit their own .ini info
  Revert "Allow plugin DB_DataObject classes to not have to use the .ini file by overriding keys(), table(), and sequenceKey() for them"
  Catch and report exceptions from notice_to_omb_notice() instead of letting the OMB queue handler die.
  Fix regression in remote subscription; added hasRole() shadow method on Remote_profile.
  Fix fatal error on OMB subscription for first-timers
  Remove annoying log msg
  Drop error message on setlocale() failure; this is harmless, since we actually have a working locale set up.
  Catch uncaught exception
  Fixed bug where reply-sync bit wasn't getting saved
  Forgot to render the nav menu when on FB Connect login tab
  Facebook plugin no longer takes over Login and Connect settings nav menus
  ...

Conflicts:
	db/08to09_pg.sql
	db/statusnet_pg.sql
	locale/pt_BR/LC_MESSAGES/statusnet.mo
	plugins/Mapstraction/MapstractionPlugin.php
2009-11-30 10:28:58 -08:00
Brion Vibber
4965476998 Fix regression in group posting: bug introduced in commit 1319002e15. Need to use actual profile object rather than an id on a variable that doesn't exist when checking blocks :D 2009-11-27 14:54:55 -08:00
Brion Vibber
2b8a3e3511 Fix regression in group posting: bug introduced in commit 1319002e15. Need to use actual profile object rather than an id on a variable that doesn't exist when checking blocks :D 2009-11-27 14:52:58 -08:00
Brion Vibber
2ba67e9b62 Log database errors when saving notice_inbox entries 2009-11-27 14:21:23 -08:00
Brion Vibber
e85e47b509 Log database errors when saving notice_inbox entries 2009-11-27 14:20:57 -08:00
Zach Copley
261ee0264a Add OpenID ini info back into statusnet.ini as a stopgap until we can
get plugins to load ini info properly on status.net
2009-11-26 18:49:18 +00:00
Zach Copley
54ad3b21d7 Remove relationship: user_openid.user_id -> user.id. I don't think this
is used. And if we need it, the OpenID plugin should do it.
2009-11-25 23:55:03 +00:00
Zach Copley
2b6cf0d8b6 Revert "Allow plugin DB_DataObject classes to not have to use the .ini file by overriding keys(), table(), and sequenceKey() for them"
This reverts commit a373d07ae0.

Conflicts:

	classes/statusnet.ini
	lib/schema.php
	plugins/Authentication/AuthenticationPlugin.php
	plugins/OpenID/OpenIDPlugin.php
	plugins/UserFlag/UserFlagPlugin.php
2009-11-25 23:54:36 +00:00
Zach Copley
bd4a613c38 Merge branch 'fix-openid' into 0.9.x 2009-11-25 23:33:13 +00:00
Zach Copley
035c8cfd71 Remove relationship: user_openid.user_id -> user.id. I don't think this
is used. And if we need it, the OpenID plugin should do it.
2009-11-25 23:29:12 +00:00
Brion Vibber
b771a8bb21 Fix regression in remote subscription; added hasRole() shadow method on Remote_profile.
DB_DataObject hides errors by silently returning null for any non-existent method call, making it harder to tell what the heck's going on... the rights check for blocked remote users returned null for the check for subscribe rights, thus eval'ing to false. We now log a note in this circumstance, which would have cut about 3 hours off of the debug time.
2009-11-25 22:23:21 +00:00
Brion Vibber
4d71dbe98c Fix regression in remote subscription; added hasRole() shadow method on Remote_profile.
DB_DataObject hides errors by silently returning null for any non-existent method call, making it harder to tell what the heck's going on... the rights check for blocked remote users returned null for the check for subscribe rights, thus eval'ing to false. We now log a note in this circumstance, which would have cut about 3 hours off of the debug time.
2009-11-25 22:22:21 +00:00
Zach Copley
8acc1587b1 Revert "Allow plugin DB_DataObject classes to not have to use the .ini file by overriding keys(), table(), and sequenceKey() for them"
This reverts commit a373d07ae0.

Conflicts:

	classes/statusnet.ini
	lib/schema.php
	plugins/Authentication/AuthenticationPlugin.php
	plugins/OpenID/OpenIDPlugin.php
	plugins/UserFlag/UserFlagPlugin.php
2009-11-25 13:38:59 -08:00
Zach Copley
c0190af982 Remove annoying log msg 2009-11-25 19:23:33 +00:00
Zach Copley
40e875f9cc Remove annoying log msg 2009-11-25 19:22:09 +00:00
Craig Andrews
e9b877a4a3 correct the primary key for login_token 2009-11-20 10:56:06 -05:00
Evan Prodromou
224d82793c Revert "Added 'login' command that gives you a link that can be used to login to the website"
This reverts commit b9d40f723b.

Conflicts:

	actions/login.php
	classes/statusnet.ini
	db/08to09.sql
	db/08to09_pg.sql
	db/statusnet_pg.sql
	lib/command.php
	lib/commandinterpreter.php
2009-11-20 02:50:43 -08:00
Craig Andrews
cac5a417f2 Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.x 2009-11-18 17:04:42 -05:00
Eric Helgeson
199ccdb53f Consolidate group creation into static function in User_group 2009-11-18 15:54:24 -05:00
Craig Andrews
d07df8a796 Added Authorization plugin
Added LDAPAuthorization plugin
2009-11-18 14:19:43 -05:00
Evan Prodromou
3a980a75fc Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-11-17 14:51:38 -05:00
Zach Copley
638df94f88 Need to check the Profile rather than the User. 2009-11-17 08:48:16 -08:00
Evan Prodromou
bac2d80c91 Merge branch '0.9.x' into adminpanel
Conflicts:
	classes/User.php
2009-11-17 08:04:14 -05:00
Evan Prodromou
6a1afda259 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	classes/statusnet.ini
2009-11-17 06:25:07 -05:00
Craig Andrews
a373d07ae0 Allow plugin DB_DataObject classes to not have to use the .ini file by overriding keys(), table(), and sequenceKey() for them 2009-11-16 15:24:25 -05:00
Evan Prodromou
d59af02960 disallow email on faves from sandboxed users 2009-11-16 14:28:55 -05:00
Evan Prodromou
440af7ed7a silenced users can't send direct messages 2009-11-16 19:51:41 +01:00
Evan Prodromou
e9321a1806 more rights denied to silenced and sandboxed 2009-11-16 19:46:08 +01:00
Evan Prodromou
f1efb845e4 don't allow sandboxed users to post public notices 2009-11-16 19:22:22 +01:00
Evan Prodromou
d2145a5b7f Move rights check to profile and add right for new notices
Added a right for new notices, realized that the hasRight() method
should be on the profile, and moved it.

Makes this a less atomic commit but that's the way it goes sometimes.
2009-11-16 19:03:59 +01:00
Craig Andrews
7177585630 getGroups was not handling the case where limit=null correctly 2009-11-16 11:22:45 -05:00
Evan Prodromou
3e08309826 change uses of User_role to Profile_role 2009-11-16 16:06:52 +01:00
Evan Prodromou
dd10e9729b fix exe flag after createTable 2009-11-16 16:05:22 +01:00
Evan Prodromou
fa00aed88b remove User_role class 2009-11-16 16:04:51 +01:00
Evan Prodromou
4e00ce01a9 Rename user_role to profile_role
Renamed the user_role table to profile_role. Remote users can have a
role on the site; that 'role' may be negative (silenced or sandboxed).
2009-11-16 16:02:47 +01:00
Evan Prodromou
792590bcdc move role functions to Profile class 2009-11-16 15:52:33 +01:00
Craig Andrews
6470ccd1b8 getSubscribers and getSubscriptions were not handling the case where limit=null correctly 2009-11-16 00:19:19 -05:00
Evan Prodromou
c9475c76a8 define rights around how to silence, sandbox, and delete a user 2009-11-15 15:59:10 +01:00
Craig Andrews
ed690615de Added a User_username table that links the external username with a StatusNet user_id
Added EmailAuthenticationPlugin
Added ReverseUsernameAuthenticationPlugin
Changed the StartChangePassword and EndChangePassword events to take a user, instead of a nickname
User::allowed_nickname was declared non-static, but used as if it was static, so I made the declaration static
2009-11-12 20:12:36 -05:00
Evan Prodromou
935410e8dc Merge branch '0.9.x' into adminpanel 2009-11-11 00:22:42 -05:00
Brion Vibber
53c86c43c4 Bringing Sphinx search support up to code: broken out to a plugin, now supports multiple sites on a single server.
Upgrade notes:
* Index names have changed from hardcoded 'Identica_people' and 'Identica_notices' to use the database name and actual table names. Must reindex.

New events:
* GetSearchEngine to override default search engine class selection from plugins

New scripts:
* gen_config.php generates a sphinx.conf from database configuration (with theoretical support for status_network table, but it doesn't seem to be cleanly queriable right now without knowing the db setup info for that. Needs generalized support.)
* Replaced old sphinx-indexer.sh and sphinx-cron.sh with index_update.php

Other fixes:
* sphinx.conf.sample better matches our live config, skipping unused stopword list and using a more realistic indexer memory limit

Further notes:
* Probably doesn't work right with PostgreSQL yet; Sphinx can pull from PG but the extraction queries currently look like they use some MySQL-specific functions.
2009-11-10 13:44:40 -08:00
Evan Prodromou
1f5f5474f1 Merge branch '0.9.x' into adminpanel 2009-11-10 16:27:23 -05:00
Evan Prodromou
cb64cfb44c add geo output to statuses in json, xml, atom, rss in API 2009-11-10 16:15:05 -05:00
Brion Vibber
088081675f Revert "Remove more contractions"
This reverts commit 5ab709b739.

Missed this one yesterday...
2009-11-09 20:01:46 +01:00
Evan Prodromou
691beefd0f Merge branch '0.9.x' into adminpanel 2009-11-08 21:41:43 -05:00
Evan Prodromou
76b0e6e6f4 Merge branch '0.9.x' into adminpanel 2009-11-08 21:23:09 -05:00
Siebrand Mazeland
b10f362ede Merge branch '0.9.x' of git://gitorious.org/statusnet/mainline into 0.9.x 2009-11-08 23:33:58 +01:00
Siebrand Mazeland
5ab709b739 Remove more contractions
* doesn't
* won't
* isn't
* don't
2009-11-08 23:32:15 +01:00
Brion Vibber
fc5002015b Revert "* [Cc]an't -> [Cc]annot"
This reverts commit 0ab17f382b.
2009-11-08 23:28:51 +01:00
Siebrand Mazeland
104a47e4a2 Merge branch '0.9.x' of git://gitorious.org/statusnet/mainline into 0.9.x 2009-11-08 23:22:50 +01:00
Siebrand Mazeland
0ab17f382b * [Cc]an't -> [Cc]annot
* [Cc]ould't -> [Cc]ould not
2009-11-08 23:22:38 +01:00
Evan Prodromou
111f6a775d Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-11-08 17:06:41 -05:00
Evan Prodromou
b7e2e3fd2b Restructure theme.php to define a class Theme
For various reasons, it's nicer to have a class for theme-file paths
and such. So, I've rewritten the code for determining the locations of
theme files to be more OOPy.

I changed all the uses of the two functions in the module (theme_file
and theme_path) to use Theme::file and Theme::path respectively.

I've also removed the code in common.php that require's the module;
using a class means we can autoload it instead.
2009-11-08 17:04:46 -05:00
Brion Vibber
8d44b6a5a2 Fix bug 1962: deleteuser.php regression when OpenID plugin not enabled
The User_openid data object was explicitly listed as a related field to delete from in User::delete(); this class doesn't exist anymore by default since OpenID was broken out to a plugin.
Added UserDeleteRelated event for plugins to add related tables to delete from at user delete time.
2009-11-08 14:40:30 +01:00
Evan Prodromou
408510f527 pkeyGet() and save() methods for Config 2009-11-07 23:16:59 -05:00
Evan Prodromou
144f817109 add a break to switch in hasRight() 2009-11-07 23:15:59 -05:00
Evan Prodromou
38833af6f1 use upper-case constants for roles and rights in hasRight() 2009-11-07 19:16:54 -05:00
Evan Prodromou
eaec5b03f5 add constants for user roles 2009-11-07 19:16:33 -05:00
Evan Prodromou
1319002e15 don't distribute group notices to inboxes for users who've blocked the author 2009-11-07 12:22:00 -05:00
Craig Andrews
b9d40f723b Added 'login' command that gives you a link that can be used to login to the website 2009-11-02 18:40:49 -05:00
Evan Prodromou
a2b8303925 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	classes/User.php
2009-11-02 18:13:04 -05:00
Evan Prodromou
61419038e5 Merge branch '0.8.x' into 0.9.x
Conflicts:
	README
2009-11-02 18:11:45 -05:00
Craig Andrews
15d0055c6f allowed_nickname blocks top level url router names 2009-11-02 15:18:56 -05:00
Brion Vibber
5581143bee Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, adding redirect handling and convenience functions.
Caching support will be added in future work after unit tests have been added.

* extlib: add PEAR HTTP_Request2 0.4.1 alpha
* extlib: update PEAR Net_URL2 to 0.3.0 beta for HTTP_Request2 compatibility
* moved direct usage of CURL and file_get_contents to HTTPClient class, excluding external-sourced libraries
* adapted GeonamesPlugin for new HTTPResponse interface

Note some plugins haven't been fully tested yet.
2009-11-02 09:14:15 -08:00
Brion Vibber
b22fc5b74a Revert "Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, adding redirect handling and convenience functions."
Going to restructure a little more before finalizing this...

This reverts commit fa37967858.
2009-11-02 07:51:29 -08:00
Brion Vibber
fa37967858 Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, adding redirect handling and convenience functions.
Caching support will be added in future work after unit tests have been added.

* extlib: add PEAR HTTP_Request2 0.4.1 alpha
* extlib: update PEAR Net_URL2 to 0.3.0 beta for HTTP_Request2 compatibility
* moved direct usage of CURL and file_get_contents to HTTPClient class, excluding external-sourced libraries

Note some plugins haven't been tested yet.
2009-11-02 06:31:28 -08:00
Evan Prodromou
6664528244 Revert "Blacklist all files and directories in the web root (INSTALLDIR). Much more elegant than manually keep tracking of these invalid usernames."
This reverts commit 15f9c80c28.

So, so, elegant! And so, so, incorrect!

We can't have a user named 'notice' because that would interfere with
URLs like /notice/1234. However, there is no file named 'notice' in
the Web root.

If there were a way to automatically pull out the virtual paths in the
root dir, this may make sense. Until then, we keep track here.
2009-11-01 11:09:14 -05:00
Craig Andrews
acaf07f6e8 Added an "Verify Your Identity" page to the OpenID provider 2009-10-30 13:21:37 -04:00
Craig Andrews
005f85b5ea Removed reference to 'api' action which no longer exists since api refactor 2009-10-30 01:25:52 -04:00
Evan Prodromou
5d2b35cce6 get location from a Profile 2009-10-29 14:43:25 -04:00
Evan Prodromou
e9644f03de get location from a Notice 2009-10-29 14:43:18 -04:00
Evan Prodromou
b73d6d18ba Merge branch '0.9.x' into location 2009-10-28 17:24:53 -04:00
Evan Prodromou
2df1189465 save replies in the inbox 2009-10-28 15:33:10 -04:00
Evan Prodromou
6c615f6801 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-10-28 14:21:51 -04:00
Evan Prodromou
7df082abb8 replace some boolean-evaluations with calls to empty() 2009-10-28 14:21:42 -04:00
Carlos Perilla
bf701b8235 Enable welcome bot to broadcast it's notices 2009-10-27 23:38:08 -04:00
Evan Prodromou
3c724ccd0d Merge branch '0.9.x' into location 2009-10-24 19:59:46 -04:00
Evan Prodromou
967de94665 update location while saving new profile 2009-10-23 11:47:00 -04:00
Evan Prodromou
943b2bea09 update location while registering 2009-10-23 11:46:44 -04:00
Craig Andrews
c93b9b9523 Merge commit 'refs/merge-requests/1815' of git://gitorious.org/statusnet/mainline into 0.9.x 2009-10-23 11:15:25 -04:00
Evan Prodromou
b7a4437e79 flip x flag on generated files 2009-10-21 22:43:41 -04:00
Evan Prodromou
6fc5c934ed statusnet.ini update 2009-10-21 22:43:41 -04:00
Evan Prodromou
2ed073f295 new data structures for location 2009-10-21 22:43:40 -04:00
Zach Copley
0bbc05c1d5 Merge branch '0.9.x' into TwitterBridgePlugin 2009-10-16 23:42:02 +00:00
Trever Fischer
1241e651ae Added support for profile designs to the twitter API 2009-10-15 05:16:37 -04:00
Zach Copley
0fd8e758ad Make queuing and daemons work via events 2009-10-14 04:50:16 +00:00
Evan Prodromou
4f5badda94 remove inboxes option 2009-10-13 17:38:27 -04:00
Craig Andrews
f719720e8a Merge remote branch 'statusnet/0.8.x' into 0.9.x
Conflicts:
	lib/common.php
2009-10-11 13:39:10 -04:00
Evan Prodromou
bf1c662990 Merge branch '0.8.x' into 0.9.x 2009-10-09 14:07:45 -04:00
Evan Prodromou
88e7092d23 don't write session if it's unchanged 2009-10-09 10:39:56 -04:00
Evan Prodromou
c5047fd90a Merge branch '0.8.x' into 0.9.x
Conflicts:
	classes/Profile.php
2009-10-04 03:07:37 -04:00
Evan Prodromou
18f4a7eaea reformat Notice.php 2009-10-03 20:34:40 -04:00
Brenda Wallace
bcdf31c639 added all them doxygens 2009-10-04 11:14:26 +13:00
Evan Prodromou
be513db013 copy-and-paste typo in profile deletion 2009-10-02 15:42:34 -04:00
Evan Prodromou
94e3f6bb09 also delete blocks 2009-10-02 15:29:57 -04:00
Evan Prodromou
b3b3af9a2e Merge branch '0.8.x' into deleteuser 2009-10-02 15:27:55 -04:00
Evan Prodromou
0a57d1ccee change string return from Notice::saveNew to exceptions 2009-09-29 17:16:07 -04:00
Evan Prodromou
3afcdc18f7 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-09-27 21:15:14 -04:00
Evan Prodromou
38345d0783 let hooks override standard user rights 2009-09-27 21:11:45 -04:00
Evan Prodromou
6c069312e2 user rights 2009-09-27 21:11:45 -04:00
Craig Andrews
fc2426d7ce Fix some bugs in the URL linkification, and fixed the unit test. 2009-09-27 16:52:15 -04:00
Evan Prodromou
93b7e60115 Merge branch '0.8.x' into 0.9.x
Conflicts:
	EVENTS.txt
2009-09-24 17:24:15 -04:00
Evan Prodromou
b5b3690eef Merge branch 'master' into 0.8.x 2009-09-24 17:15:36 -04:00
Evan Prodromou
8284b3cb82 Merge branch '0.8.x' into 0.9.x
Conflicts:
	actions/requesttoken.php
	classes/File.php
	install.php
	lib/noticeform.php
2009-09-23 09:45:22 -04:00
Craig Andrews
15f9c80c28 Blacklist all files and directories in the web root (INSTALLDIR). Much more elegant than manually keep tracking of these invalid usernames. 2009-09-18 17:53:06 -04:00
Evan Prodromou
46ece1178c check correct define (not backwards compatible) 2009-09-15 21:12:44 -04:00
Evan Prodromou
13147143fc Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-09-15 17:16:35 -04:00
Craig Andrews
4a97ad9efe Remove unnecessary Profile::pkeyGet
Thanks for the info, Evan.
2009-09-15 17:08:26 -04:00
Craig Andrews
bb48698416 Add missing pkeyGet override to the Profile class 2009-09-13 21:43:29 -04:00
Craig Andrews
2a06f2ac5b If there is no mimetype set, the file shouldn't be considered an enclosure 2009-09-10 21:21:01 -04:00
Evan Prodromou
e559f82e86 flip exe bit on statusnet.ini 2009-09-08 13:07:21 -07:00
Evan Prodromou
1e707008c2 flip exe bit on Deleted_notice.php 2009-09-08 13:06:46 -07:00
Evan Prodromou
3e1dc0e0b9 flip exe bit on Config.php 2009-09-08 13:06:13 -07:00
Craig Andrews
a535ccdc4e Merge remote branch 'laconica/0.8.x' into 0.9.x
Conflicts:
	lib/common.php
	lib/twitter.php
2009-09-02 16:42:15 -04:00
Craig Andrews
efcfd209ef Check "Files" of type 'application/xhtml+xml' for oEmbed in addition to just text/html 2009-09-01 23:18:39 -04:00
Evan Prodromou
55972f59f6 remove Notice::gc() for now 2009-08-29 11:59:54 -07:00
Evan Prodromou
59f47fab4a Status_network had wrong ini file 2009-08-28 10:42:49 -07:00
Evan Prodromou
c628029ef1 Status_network had wrong ini file 2009-08-28 10:42:34 -07:00
Brenda Wallace
815630fe63 used standard SQL that mysql and pgsql both like 2009-08-28 20:45:12 +12:00
Brenda Wallace
b9ea2bf1bc used standard SQL that mysql and pgsql both like 2009-08-28 20:44:11 +12:00
Brenda Wallace
b833b725a8 make use of common_database_tablename() 2009-08-28 20:42:13 +12:00
Brenda Wallace
06514aa001 fix for SQL error: ERROR: syntax error at or near ")" at character 45
http://laconi.ca/trac/ticket/1735
2009-08-28 20:05:19 +12:00
Brenda Wallace
e277c856d6 fix for SQL error: ERROR: syntax error at or near ")" at character 45
http://laconi.ca/trac/ticket/1735
2009-08-28 20:00:55 +12:00
Evan Prodromou
c0d03fc279 make URL analyzer save new info on URLs 2009-08-27 20:23:31 -07:00
Evan Prodromou
34ce75c71d remove duplicate save of Notice and streamline attachment detection 2009-08-27 20:09:07 -07:00
Evan Prodromou
35a78de93b changes to File 2009-08-27 14:53:16 -07:00
Evan Prodromou
a08c76a434 Merge branch '0.9.x' of git@gitorious.org:laconica/mainline into 0.9.x
Conflicts:
	classes/laconica.ini
2009-08-27 14:52:32 -07:00
Evan Prodromou
522008dee5 methods on User to grant, check, and revoke roles 2009-08-27 11:38:31 -07:00
Evan Prodromou
41ee56f770 flip executable bit on User_role.php 2009-08-27 11:22:24 -07:00
Evan Prodromou
f8afad03ad add data object class for user_role 2009-08-27 11:21:57 -07:00
Evan Prodromou
5d09b6b3f0 Merge branch '0.8.x' into 0.9.x
Conflicts:
	EVENTS.txt
	actions/finishremotesubscribe.php
	actions/postnotice.php
	actions/public.php
	actions/remotesubscribe.php
	actions/showstream.php
	actions/updateprofile.php
	actions/userauthorization.php
	classes/laconica.ini
	lib/common.php
	lib/oauthstore.php
	lib/omb.php
2009-08-27 11:16:45 -07:00
Evan Prodromou
f1fda6c050 Merge branch '0.8.x' into 0.9.x 2009-08-27 07:56:19 -07:00
Craig Andrews
3e362233ee Merge commit 'laconica/0.8.x' into 0.9.x 2009-08-26 21:56:59 -04:00
Craig Andrews
504c42aa7d Fix some stupid bugs, such as a mispelling of oembed 2009-08-26 21:51:54 -04:00
Craig Andrews
6d60d74093 Display linked oembed resources as enclosures if they are of non-html mime types 2009-08-26 15:40:51 -04:00
Craig Andrews
d9e8dabaf4 Save the mimetype for oEmbed linked url 2009-08-26 14:53:52 -04:00
Evan Prodromou
df86aa7214 define LACONICA and accept LACONICA for backwards compatibility 2009-08-26 10:41:36 -04:00
Evan Prodromou
3567b9d708 global search and replace for laconica -> statusnet 2009-08-25 18:53:24 -04:00
Evan Prodromou
865b716f09 change LACONICA to STATUSNET 2009-08-25 18:42:34 -04:00
Evan Prodromou
4737563b95 a distributed -> the distributed 2009-08-25 18:14:12 -04:00
Evan Prodromou
c8b8f07af1 change Laconica and Control Yourself to StatusNet in PHP files 2009-08-25 18:12:20 -04:00
Evan Prodromou
d0baab6978 Merge branch '0.8.x' into testing 2009-08-25 18:01:46 -04:00
Evan Prodromou
c87e1de017 Rename Laconica to StatusNet 2009-08-25 17:56:10 -04:00
Zach Copley
ec83890bc2 Take token field out of foreign_link
This undoes patch a49272d448
2009-08-25 15:48:06 -04:00
Craig Andrews
9fd3a41576 ftps protocol should be handled the same way as ftp
Canon urls that have a protocol followed by a host (and no path) automatcally get a trailing slash by the canon function - make the unit test match that
2009-08-24 20:44:06 -04:00
Evan Prodromou
ff87732053 Merge branch '0.8.x' into testing
Conflicts:
	actions/twitterauthorization.php
	lib/oauthclient.php
	lib/twitter.php
	lib/twitterapi.php
	lib/twitteroauthclient.php
	scripts/twitterstatusfetcher.php
2009-08-24 16:55:49 -04:00
Zach Copley
5d5b9f7022 Add new Foreign_link col to store OAuth access token 2009-08-24 11:52:06 -04:00
Evan Prodromou
9f356b55c6 Merge branch '0.9.x' into openidplugin
Conflicts:
	actions/login.php
	actions/register.php
2009-08-21 16:27:43 -04:00
Evan Prodromou
8236037bf0 Merge branch 'dbconfig' into 0.9.x
Conflicts:
	lib/common.php
2009-08-21 16:17:06 -04:00
Evan Prodromou
538dcf2eef load configuration options from database at runtime 2009-08-21 16:14:32 -04:00
Evan Prodromou
b2664e1ae2 Merge branch '0.8.x' into 0.9.x
Conflicts:
	actions/updateprofile.php
	actions/userauthorization.php
	classes/User_group.php
	index.php
	install.php
	lib/accountsettingsaction.php
	lib/logingroupnav.php
2009-08-21 15:42:11 -04:00
Evan Prodromou
888ed474a1 new class for configuration settings 2009-08-21 15:22:02 -04:00
Evan Prodromou
d5825893c8 validation code in Notice correctly checks length of content 2009-08-21 08:12:57 -04:00
Evan Prodromou
4d05afae30 Notice class has methods to check content length 2009-08-21 08:05:13 -04:00
Evan Prodromou
4d3e2daf53 check correct setting in Profile bio length 2009-08-21 07:48:14 -04:00
Evan Prodromou
d2d3418b8a Profile class has methods to check bio length 2009-08-21 07:40:46 -04:00
Evan Prodromou
d88839d167 methods for Message to check max content length 2009-08-21 07:20:59 -04:00
Evan Prodromou
92ef4895b4 can set group desc limit to unlimited without resetting global limit 2009-08-21 06:36:55 -04:00
Evan Prodromou
cd688acceb allow configurable length for user group description 2009-08-21 06:33:22 -04:00
Evan Prodromou
900ca5c50c data classes allow >140c in user group descriptions 2009-08-21 06:33:21 -04:00
Evan Prodromou
fa6b49ab38 data classes allow >140 bios in profiles 2009-08-21 06:33:21 -04:00
Evan Prodromou
4b44308988 Messages can be >140c in classes 2009-08-21 06:33:21 -04:00
Evan Prodromou
d213a8cf90 update data classes for TEXT content in notice 2009-08-21 06:33:21 -04:00
Marcel van der Boom
418a5a95ab Change the notice type defines all into class constants and adapt all files. 2009-08-20 13:11:22 -04:00
Zach Copley
c049931dc7 Return null if all columns in the compound primary key aren't specified 2009-08-18 23:46:08 +00:00
Brett Taylor
3243612e76 Prevents redirect URLs that have canonical URLs longer than 255 chars from being written to the database as their canonical. Redirecting URLs will instead be saved to the database as given.
The reason for this is that table 'file' column 'url' is a VARCHAR(255) in MySQL and it silently truncates URLs longer than 255 characters, breaking the url.

The proper fix for this is to improve this column, making its type TEXT, but there are no database changes for 0.8.x, so this is the next best thing for data integrity. A migration script for 0.9.x could be written to audit the database checking for redirects and updating these urls to their proper canonical url.
2009-08-12 16:17:02 +12:00
Adrian Lang
bbf10e5bdf common_config returns false if the config value is not set. Design::toWebColor checks with is_null. Hence the common_config value should be adjusted. 2009-08-10 16:35:09 -04:00
Craig Andrews
11086c7823 Implemented the list_all and list groups API methods as defined at http://laconi.ca/trac/wiki/ProposedGroupsAPI
Made the Autocomplete plugin also autocomplete groups
2009-08-07 18:00:04 -04:00
Adrian Lang
44b2b64247 Argh, first commit for ages and such a stupid error. Sorry. 2009-08-05 10:58:09 -05:00
Adrian Lang
ecc7090011 Argh, first commit for ages and such a stupid error. Sorry. 2009-08-05 16:05:29 +02:00
Adrian Lang
fe507928ae Fix reference to undefined variable in Design::toWebColor. 2009-08-05 15:59:18 +02:00
Eric Helgeson
36e5d2b45f Added correct null check. Created noisey errors on fresh install.
$id is not defined, should be $this->id
2009-08-04 22:11:20 -05:00
Evan Prodromou
622c0b24c3 move redirect-to-openid code to OpenID plugin 2009-08-04 13:17:43 -04:00
Evan Prodromou
2b79b4d21f Move OpenID-related files to OpenID plugin directory
As a first step to pluginizing our OpenID support, I've moved the
important OpenID-related files to a dedicated plugin directory. Many
of these classes are still referred to by libraries that are still in
core.
2009-08-04 13:01:23 -04:00
Evan Prodromou
a074cccb0e save an archive of deleted notices 2009-08-04 06:05:04 -04:00
Evan Prodromou
db53cc800f add a deleted_notice table 2009-08-04 06:05:04 -04:00
Evan Prodromou
8157336a0d don't delete during select 2009-08-02 11:18:41 -04:00
Evan Prodromou
34e8b25cee GC sessions one by one to make sure memcached gets cleared 2009-08-02 10:34:23 -04:00
Evan Prodromou
3af5774769 throw an exception rather than die() 2009-07-30 16:55:09 -04:00
Evan Prodromou
8371aea9c1 remove debugging code about processing a new URL 2009-07-30 16:38:50 -04:00
Evan Prodromou
ae81d36137 Site-wide design configuration
I added some code so that the site-wide design can be set, using the
configuration interface.

I also moved the configuration option from
$config['site']['design']['background'] to just
$config['design']['background'], but the old syntax will still work.
2009-07-30 16:24:04 -04:00
Evan Prodromou
18573632b4 New algorithm for reply_to saving
I changed the reply-to algorithm so that we only say a notice is in
reply to another notice if a) we receive that information from the Web
or API or b) it's in a "low bandwidth" (XMPP, SMS) channel, and begins
with "@nickname" or "T NICKNAME".

The goal is to avoid false-positives and make conversation trees more
accurate and useful.
2009-07-29 11:45:32 -04:00
Evan Prodromou
a5f78449b1 better check for existing DB connection runs SET NAMES UTF8 less 2009-07-27 13:51:40 -04:00
Evan Prodromou
51ac34e80c first version of deleting users 2009-07-26 13:06:38 -06:00
Evan Prodromou
0dab5f5872 Merge branch '0.8.x' of git@gitorious.org:laconica/mainline into 0.8.x 2009-07-23 14:45:44 -07:00
Evan Prodromou
749d9bfbbf Merge branch 'master' into 0.8.x
Conflicts:
	scripts/twitterstatusfetcher.php
2009-07-23 14:45:21 -07:00
Evan Prodromou
5f7fb99447 change NOTICE_GATEWAY to Notice::GATEWAY so autoloading works 2009-07-23 14:22:22 -07:00
Craig Andrews
ec453f0123 Merge commit 'br3nda/0.8.x-profile-pgfix' into 0.8.x 2009-07-23 11:13:27 -04:00
Brenda Wallace
27e525dbbc fixed up a limit offset to be ANSI SQL compliant 2009-07-23 15:07:28 +12:00
Craig Andrews
684fc5d002 Merge commit 'br3nda/0.8.x-attachmentfix' into 0.8.x 2009-07-22 10:24:34 -04:00
Craig Andrews
e70a79d6ab Merge commit 'br3nda/0.8.x-hashtags' into 0.8.x 2009-07-22 10:23:17 -04:00
Brenda Wallace
28b62f357d fixed SQL in checking for monthly quota - works in postgres and mysql 2009-07-22 17:10:41 +12:00
Brenda Wallace
2aa47096b8 missing AND in the SQL 2009-07-22 17:10:20 +12:00
Evan Prodromou
0a602725b1 Merge branch '0.8.x' of git@gitorious.org:laconica/mainline into 0.8.x 2009-07-21 12:50:45 -07:00
Evan Prodromou
eb5679b029 correctly gc sessions 2009-07-21 11:32:01 -07:00
Evan Prodromou
84fb846939 correctly gc sessions 2009-07-21 11:31:34 -07:00
Brenda Wallace
d95f45f070 turn into canonical terms before checking for unique-ness of a tag in a notice 2009-07-20 14:18:48 +12:00
Brenda Wallace
711ade9835 look for full unicode when saving tags 2009-07-20 14:01:51 +12:00
CiaranG
1139f7cad5 Merge commit 'br3nda/0.8.x-pgfixes' into 0.8.x 2009-07-19 08:05:53 +01:00
Zach Copley
6d839ae992 Removed noisy debugging statements 2009-07-17 12:41:54 -07:00
Craig Andrews
3dbbefd5ad Merge branch 'oembed-provider' into 0.8.x 2009-07-17 12:33:56 -04:00
Evan Prodromou
83cbf246a8 use a soft limit so there's not a whole bunch of deletes on every write 2009-07-16 00:26:51 -04:00
Evan Prodromou
da512ad8c2 gc inboxes on a regular basis 2009-07-16 00:19:34 -04:00
Craig Andrews
a35794e3c3 Try oEmbed discovery before using oohembed 2009-07-15 17:10:36 -04:00
Brenda Wallace
788dd66dbe add quotes around table named "user" when quote_identifiers is true 2009-07-15 20:23:52 +12:00
Brenda Wallace
565dec0e21 use quote identifiers on the user table 2009-07-15 20:18:39 +12:00
Brenda Wallace
403bb38bcd used single quotes in SQL 2009-07-15 20:18:30 +12:00
Brenda Wallace
63ea2b7c45 changed to SQL standard of LIMIT 20 OFFSET 1 etc. 2009-07-15 20:05:57 +12:00
Craig Andrews
c97957cf3e HTML "File"/attachments should probably not be considered enclosures. 2009-07-14 13:38:26 -04:00
Craig Andrews
593af9feb6 Moved the decision logic as to whether an attachment should be an enclosure to the File class 2009-07-14 13:33:40 -04:00
Toby Inkster
38784141d1 Copy isset($attachment->filename) fix from RSS 1.0 to RSS 2.0 and Atom 1.0 feeds. 2009-07-13 16:56:52 +01:00
Evan Prodromou
8b65883f9d cache frequently-used subscriber, subscription, notice and fave count values 2009-07-09 17:28:38 -07:00
Zach Copley
db58756275 Merge branch 'candrews-review' into 0.8.x
* candrews-review:
  Notice attachments are enclosures in feeds (Atom, RSS 1.0/RDF, and RSS 2.0).
2009-07-09 11:28:21 -07:00
Zach Copley
c981f5bcec Merge branch 'candrews-review' into 0.8.x
* candrews-review:
  maildaemon makes mail attachments into notice attachments
  File classes does not use the $FILES array directly, as users of this class aren't necessarily from the web
2009-07-09 11:22:07 -07:00
Craig Andrews
69574591d0 Notice attachments are enclosures in feeds (Atom, RSS 1.0/RDF, and RSS 2.0).
http://laconi.ca/trac/ticket/1690
2009-07-09 13:18:57 -04:00
Craig Andrews
5f72423523 File classes does not use the $FILES array directly, as users of this class aren't necessarily from the web 2009-07-07 15:55:10 -04:00
Evan Prodromou
84e676b687 Merge branch 'queuemanager' into 0.8.x 2009-07-07 11:35:00 -04:00
Evan Prodromou
d4db9d83d8 Revert "Merge branch '0.8.x' into cachenonexistent"
This reverts commit e21d2cfdb5.
2009-07-05 12:44:18 -04:00
Evan Prodromou
e21d2cfdb5 Merge branch '0.8.x' into cachenonexistent 2009-07-05 11:53:39 -04:00
Evan Prodromou
ac361791c4 fix caching of faves by own, other 2009-07-05 11:32:57 -04:00
Evan Prodromou
9f6bea473e cache failure to find in memcached 2009-07-05 11:31:39 -04:00
Evan Prodromou
cb019f7aad don't send unused variable for streams 2009-07-04 01:43:35 -04:00
Evan Prodromou
741eb1a28b Merge branch '0.8.x' into queuemanager 2009-07-03 23:34:44 -04:00
Evan Prodromou
e2f8b8d65d no limit on conversation stream 2009-07-03 10:40:23 -04:00
Evan Prodromou
5f9a4ebef4 Merge branch '0.8.x' into queuemanager 2009-07-02 08:51:10 -04:00
Evan Prodromou
4e6cd42757 conversation code changes 2009-06-30 11:50:16 -04:00
Evan Prodromou
d03b8c4276 show section with admins in sidebar of group 2009-06-29 10:22:17 -04:00
Evan Prodromou
166e4a4b58 bad string compare in Status_network 2009-06-28 14:48:19 -04:00
Evan Prodromou
d4f1637f8a fallback for www. addresses 2009-06-28 14:45:33 -04:00
Evan Prodromou
854c82cfd5 start of queuemanager code 2009-06-28 14:38:34 -04:00
Evan Prodromou
871f598dcc debug flag for sessions 2009-06-27 08:11:09 -07:00
Evan Prodromou
7af94dc125 some debugging code for sessions 2009-06-27 07:09:21 -07:00
Evan Prodromou
addfcc976a remove debugging code from Notice.php 2009-06-27 07:02:36 -07:00
Evan Prodromou
5a600a02d1 fixup perms on auto-generated files 2009-06-27 06:24:06 -07:00
Evan Prodromou
0ca22cf6e2 a memcached_dataobject class for saving sessions 2009-06-27 05:48:22 -07:00
Evan Prodromou
48d671ac39 session storage 2009-06-27 05:15:59 -07:00
Sarven Capadisli
60b47d8797 Added background-attachment:fixed for userdesigns 2009-06-26 15:20:22 +00:00
Evan Prodromou
bb04f68e93 boxcar notice inbox requests 2009-06-26 00:47:27 -07:00
Evan Prodromou
994768b821 break up big inbox queries into lots of small ones 2009-06-25 23:00:46 -07:00
Evan Prodromou
c96572c090 fix caching for conversations, again 2009-06-25 11:23:47 -07:00
Evan Prodromou
638905c270 avoid getting duplicate errors on upload 2009-06-25 11:10:34 -07:00
Evan Prodromou
4d56bc6a0a streamline the file action 2009-06-25 11:08:32 -07:00
Evan Prodromou
3ca9e85ce4 update conversations to use newer query format 2009-06-25 09:43:30 -07:00
Evan Prodromou
262f864555 don't try to load a null notice into the list 2009-06-25 02:57:16 -07:00
Evan Prodromou
79547d99cf blow cache when new notice in conversation is saved 2009-06-25 02:11:34 -07:00
Evan Prodromou
83407cc3ca change foreign_user.id to bigint (for Twitter, Facebook, etc.) 2009-06-24 14:44:02 -07:00
Zach Copley
f04a54ed2f Merge branch '0.8.x' of git@gitorious.org:laconica/dev into 0.8.x
* '0.8.x' of git@gitorious.org:laconica/dev: (61 commits)
  Using default theme design values (it was previously set to identica
  Updated default colour theme and IE6 colours for transparent values
  chmod +x delete_status_network.sh
  rm -Rf, not rmdir
  script to delete a status network
  chmod allsites.php
  script to show all sites on a network
  use different name for connection and database
  use /etc/laconica/setup.cfg instead of local file
  other base directories
  On XHR notice post, calls NoticeAttachment to trigger thumbnail and
  oembed and thumbnail don't need sequences
  add innodb by default to status networks
  pwgen not pwdgen
  make pwgen command configurable
  a little sql script to drop full-text index and use innodb for profile and notice
  remove common_debug from newnotice
  append uploads to content rather than showing them double
  use a subclass for single notice items to show attachments
  make file command configurable
  ...
2009-06-23 14:29:46 -07:00
Zach Copley
31325f0995 Stop Twitter gateway notices from leaking via user faves pages 2009-06-23 13:51:23 -07:00
Evan Prodromou
e744eba7eb oembed and thumbnail don't need sequences 2009-06-23 09:52:31 -07:00
Evan Prodromou
a21a9f26c5 append uploads to content rather than showing them double 2009-06-23 07:29:43 -07:00
Zach Copley
d9bebfd651 Attachment upload server and path now configurable 2009-06-22 22:48:31 +00:00
Evan Prodromou
2e9fc34d4f change staticGet() from DB_DataObject to Memcached_DataObject for file classes 2009-06-22 14:24:40 -07:00
Evan Prodromou
05e5122802 Database changes for file tables
Some minor database changes for file tables. Namely:

 * Added a timestamp to all tables
 * Added a filename column for local files
 * Change some tables that had unnecessary auto-increment primary
   keys when they had another unique column that should act as
   the primary key
 * Change engine from MyISAM to InnoDB for a couple of files.

Also, rebuilt the DB_DataObject files for all these tables.
2009-06-22 14:19:41 -07:00
Evan Prodromou
876ab05927 Add like for search 2009-06-21 21:50:35 -07:00
Evan Prodromou
aec6456c91 Update copyright dates in files modified in 2009 2009-06-20 16:12:55 -07:00
Evan Prodromou
793a6a1155 change Controlez-Vous to Control Yourself 2009-06-20 16:00:04 -07:00
Evan Prodromou
68b34b3266 Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into 0.8.x 2009-06-18 12:22:41 -07:00
Zach Copley
e0fb15c185 Make sure we have a DB connection before setting its charset 2009-06-18 19:19:19 +00:00
Evan Prodromou
3f54840b51 Only show twitter msgs in your own inbox 2009-06-18 11:45:48 -07:00
Zach Copley
dff43c03e4 Add design_id to User_group 2009-06-17 22:16:09 -07:00
Zach Copley
6c7bdf9df6 Merge branch 'userdesign' into 0.8.x
* userdesign: (56 commits)
  Fix for background image repetition for various page heights
  Removed height:100% for better background image repetition
  A little more specific selector for notice reply
  Have user favorites page show user's design
  Placed a check to make sure there is a reply button in a notice before
  Make MailboxAction read only
  Remove stale reference to deprecated personal.php
  Uppercase hex color values
  Default to image being on, no tile after upload
  Fix sidebar color bug default design
  Update background image settings to use bitflags
  It was accidently removed
  Dynamically tile background image  and turn background image on or off
  Show a background img in settings form
  IE7/8 CSS update for user design
  Enable tiling of background imgs for Designs
  Added background image tile flag to Design
  Init styles for tile and image use on/off for user design settings
  Added form option to tile background image and to turn it on and off
  Add background dir
  ...
2009-06-17 18:49:25 -07:00
Sarven Capadisli
00736bddd1 Fix for background image repetition for various page heights 2009-06-18 01:39:37 +00:00
Evan Prodromou
420e8994f8 Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into taggedprofile 2009-06-17 15:05:24 -07:00
Evan Prodromou
07f5797f2f Make the personal tag streams actually work 2009-06-17 15:04:57 -07:00
Zach Copley
164588ef0f Merge branch '0.8.x' into userdesign 2009-06-17 21:40:52 +00:00
Robin Millette
28d02ec8cd Make oohembed endpoint configurable. 2009-06-17 16:44:33 -04:00
Robin Millette
fd6de17a4a Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into 0.8.x 2009-06-17 16:22:47 -04:00
Robin Millette
1505e3a4c3 Fixed recent attachment bug that required URLs to be posted twice to be taken into account. 2009-06-17 16:21:50 -04:00
Evan Prodromou
8384e7c7f6 Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into 0.8.x 2009-06-17 08:18:33 -07:00
Zach Copley
76cbeff33c Update background image settings to use bitflags 2009-06-17 02:35:51 -07:00
Zach Copley
3d6e30d205 Merge branch '0.8.x' into userdesign
* 0.8.x:
  Moved url handling to its proper place, from newnotice to Notice.php
  Removed more dead code.
  Brought back borders for content, navigation, aside_primary but
  Minor margin value change
  More contrast for tabs
  UI updates:
2009-06-16 22:24:11 -07:00
Zach Copley
d1ae3176b6 Enable tiling of background imgs for Designs 2009-06-16 22:18:25 -07:00
Evan Prodromou
312fd85532 names for Notice_inbox source values 2009-06-16 21:37:19 -07:00
Evan Prodromou
90b2b3f9d1 names for Notice is_local states 2009-06-16 21:37:04 -07:00
Zach Copley
7b7f119428 Added background image tile flag to Design 2009-06-16 21:36:15 -07:00
Robin Millette
befbfc9c73 Moved url handling to its proper place, from newnotice to Notice.php 2009-06-16 23:10:17 -04:00
Zach Copley
bc1f877f6e Design settings now save and displays backgrounds 2009-06-16 19:17:37 -07:00
Zach Copley
ab10db9bd1 Merge branch '0.8.x' into userdesign
* 0.8.x:
  Revert "Using neutral colour for notice hover"
  Using neutral colour for notice hover
  forgot to disinherit Memcached_DataObject in Status_network
  Add some basic memcached handling to status_network
2009-06-16 00:59:57 -07:00
Zach Copley
37cafad2e0 Another minor tweak to showCSS() CSS output 2009-06-15 22:43:06 -07:00
Zach Copley
f3199c1369 Some fixups to the CSS output of showCSS() 2009-06-15 22:39:53 -07:00
Zach Copley
4652f316cf Design class now uses WebColor class for outputting hex colors 2009-06-15 22:27:59 -07:00
Zach Copley
ef99f83963 Output custom stylesheets on design sub-Actions 2009-06-15 22:13:35 -07:00
Evan Prodromou
39117bf88c forgot to disinherit Memcached_DataObject in Status_network 2009-06-15 21:55:56 -07:00
Evan Prodromou
0a886868fb Add some basic memcached handling to status_network
Status_network can't be a subclass of Memcached_DataObject -- the
latter is too entrenched in Laconica's memc handling functions, which
aren't loaded when Status_network is running! But the importance of
caching these values can't be overstated. So, a considerably
slimmed-down version of the Memcached_DataObject code is transcribed
into Status_network.
2009-06-15 21:33:56 -07:00
Zach Copley
44343986c3 Merge branch '0.8.x' into userdesign
* 0.8.x:
  a little better query handling in redirect code
  a little better query handling in redirect code
  forgot some functions aren't available at status time
  redirect on non-canonical server name
  don't show create-a-group link if not logged in
  allow a configured base for cache keys
  Missing call to getProfile() caused verify_credentials to fail.
  change mods for setup script
  Script to set up new status networks
  strncmp -> strcasecmp
  Return network from network setup function
  Configurable avatar directory
2009-06-15 21:24:22 -07:00
Evan Prodromou
8c24a3bc92 a little better query handling in redirect code 2009-06-15 16:55:01 -07:00
Evan Prodromou
f809663245 a little better query handling in redirect code 2009-06-15 16:51:49 -07:00
Evan Prodromou
2f82a3d44c forgot some functions aren't available at status time 2009-06-15 16:43:39 -07:00
Evan Prodromou
587b7a8b2a redirect on non-canonical server name 2009-06-15 16:40:53 -07:00
Evan Prodromou
6532f0dff6 strncmp -> strcasecmp 2009-06-15 14:29:25 -07:00
Evan Prodromou
d6ff702d7f Return network from network setup function
Return the network from the network setup function. Also, special-case
for when we get a server name the same as the wildcard.
2009-06-15 13:34:52 -07:00
Zach Copley
92f095f589 Merge branch '0.8.x' into userdesign
* 0.8.x: (32 commits)
  updates to Status_network
  makeadmin action
  make admins of groups
  show aliases when showing a group
  Link and distribute notices tagged for a group alias
  Code for adding and saving group aliases
  Styles for group block
  add correct li for css magic for block stuff
  typo in profileminilist class
  return count from show
  try to get the right class for profileminilist
  fix perms for classes/statusnet.ini
  fixup perms for classes
  Added Group_alias class
  add a table for group aliases
  Cross-browser notice_attach
  Allow users to be unblocked from a group
  Some UI improvements for blocking and unblocking
  The rest of the things necessary to make group block work
  Make group block work
  ...

Conflicts:
	db/laconica.sql
	lib/common.php
2009-06-15 11:50:08 -07:00
Evan Prodromou
c077ad0775 Configurable avatar directory
Avatar directory and path are configurable.
2009-06-15 10:45:50 -07:00
Evan Prodromou
eb6a60ef88 updates to Status_network 2009-06-15 08:54:52 -07:00
Evan Prodromou
1b6b00a6d0 Link and distribute notices tagged for a group alias
Correctly link and distribute notices tagged for a group alias. Added
a helper function, getForNickname(), to User_group, to make it easier
to get a group by its nickname or aliases.
2009-06-14 23:43:47 -07:00
Evan Prodromou
ecbd7718d5 Code for adding and saving group aliases
Added code to add and save group aliases. Like tags, aliases are
free-texted in to the group admin page. configurable max number of
aliases, default is three.
2009-06-14 23:37:24 -07:00
Evan Prodromou
09c765f5bb Merge branch '0.8.x' into groupalias 2009-06-14 21:53:45 -07:00
Evan Prodromou
23fd58b74c fix perms for classes/statusnet.ini 2009-06-14 21:53:29 -07:00
Evan Prodromou
a4055fc2f9 fixup perms for classes 2009-06-14 21:53:09 -07:00
Evan Prodromou
2d63daa71c Added Group_alias class 2009-06-14 21:52:31 -07:00
Evan Prodromou
f8da15bf41 Allow users to be unblocked from a group
List users who are blocked from joining a group. Add a form to let
them be unblocked. Add an action that removes the block. Includes
changes to group and groupblock classes.
2009-06-14 16:17:44 -07:00
Evan Prodromou
1c87532912 The rest of the things necessary to make group block work
Link to the group block form. Hide join button if the current user is
blocked.
2009-06-14 15:47:39 -07:00
Evan Prodromou
f32799699c fix perms on Group_block classes 2009-06-14 12:07:12 -07:00
Evan Prodromou
85b74d846d create DB_DataObject classes for group block 2009-06-14 12:06:22 -07:00
Evan Prodromou
e0bdaa787d Merge branch '0.7.x' into 0.8.x 2009-06-14 11:27:22 -07:00
Zach Copley
d0eb2058a5 Merge branch '0.8.x' into userdesign
Conflicts:

	actions/showfavorites.php
	lib/action.php
2009-06-14 00:23:48 +00:00
Evan Prodromou
ce6285d0fc push length check to Notice class 2009-06-12 09:47:57 -07:00
Evan Prodromou
b4e649fe90 Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into 0.8.x 2009-06-10 13:52:32 -07:00
Evan Prodromou
361a52a9c8 some changes based on code review with zach 2009-06-10 13:52:15 -07:00
Robin Millette
4699fa7936 Now correctly identifiying notices with uploaded content. 2009-06-10 15:24:25 -04:00
Robin Millette
ba6beaa310 Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into 0.8.x 2009-06-10 14:18:41 -04:00
Robin Millette
e120cb1a53 Uploaded content now displays in overlay (and removed var_dump crap) 2009-06-10 14:17:46 -04:00
Evan Prodromou
4df1ea49ec Merge branch '0.8.x' into userdesign
Conflicts:
	actions/designsettings.php
2009-06-09 21:51:24 -07:00
Evan Prodromou
ed627bb4bd Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into 0.8.x 2009-06-09 21:48:56 -07:00
Robin Millette
27af3c67a2 Improve file upload and attachment interface. 2009-06-09 15:18:12 -04:00
Evan Prodromou
adfb79a9bb Merge branch '0.7.x' into 0.8.x
Conflicts:
	classes/Notice.php
	classes/Profile.php
	lib/common.php
	lib/util.php
	scripts/getvaliddaemons.php
	scripts/stopdaemons.sh
2009-06-08 11:55:32 -07:00
Robin Millette
f8dae2bbc9 Refactored some attachment code and fixed upload bug in interface. 2009-05-31 21:03:55 -04:00
Robin Millette
ebeb5f744c Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into upload
Conflicts:

	js/util.js
	lib/attachmentlist.php
2009-05-31 17:12:04 -04:00
Evan Prodromou
9e16b7d89b Use mysql_set_charset for connection instead of SET NAMES
PHP doesn't get the info about the charset of the connection if
you use SET NAMES. So, we use the appropriate PHP function instead.
2009-05-30 13:59:57 -04:00
Evan Prodromou
76ee1fd5da Removing inbox and memcached daemon handling 2009-05-30 04:40:47 -04:00
Evan Prodromou
7656277313 remove debug code from replies 2009-05-30 03:02:26 -04:00
Evan Prodromou
78968a31a7 check for since=0 in Notice::stream() 2009-05-30 00:49:14 -04:00
Zach Copley
425f9d703c Ticket #1567 - Change max_id to return notices <= ID instead of < ID 2009-05-29 16:54:24 -07:00
Zach Copley
eb76a3bbb3 Ticket #1567 - API: Change before_id parameter to max_id 2009-05-29 16:32:55 -07:00
Sarven Capadisli
a456ceb47c Merge branch '0.7.x' into 0.8.x 2009-05-29 00:10:23 +00:00
Evan Prodromou
3532cd0490 Only enqueue inbox-dependent transports after inboxes have been filled 2009-05-28 18:19:22 -04:00
Zach Copley
3d13a44b66 Upgraded foreign_id column to handle new 64-bit Facebook user IDs.
See: http://developers.facebook.com/news.php?blog=1&story=226
2009-05-27 17:59:49 -07:00
Evan Prodromou
d068680e19 optionally use SET NAMES for utf8 to DB 2009-05-27 14:57:45 -04:00
Evan Prodromou
b3bb8943f5 Merge branch '0.7.x' into utf8 2009-05-27 14:52:35 -04:00
Robin Millette
ed1e1d9f44 Handles local aliases (redirection) for file uploads attached to notices. 2009-05-27 03:47:45 -04:00
Evan Prodromou
d7e3bab0b8 fix require_once in Design.php 2009-05-23 23:34:05 -04:00
Evan Prodromou
705abf31ee add getDesign to User 2009-05-23 23:27:42 -04:00
Evan Prodromou
91fc1e36bc update User.php with new design-related fields 2009-05-23 23:26:29 -04:00
Evan Prodromou
3f5252c168 add fields to support designs for users 2009-05-22 23:43:08 -04:00
Evan Prodromou
748c744a02 add a method to Design to show custom CSS 2009-05-22 23:13:09 -04:00
Evan Prodromou
95104f38f2 Merge branch '0.8.x' into userdesign 2009-05-22 21:11:54 -04:00
Evan Prodromou
68d90bcab0 some class files had x bit set 2009-05-22 21:11:46 -04:00
Evan Prodromou
21aad16b58 fix x bit on Design.php 2009-05-22 21:10:27 -04:00
Evan Prodromou
c63622f05e add design classes 2009-05-22 21:10:00 -04:00
Evan Prodromou
d216e3bbbb fix x bit on laconica.ini 2009-05-22 21:08:58 -04:00
Evan Prodromou
59340b274a laconica.ini change after automated createTables.php 2009-05-22 21:08:22 -04:00
Robin Millette
9261e48ef0 Removed dead code. 2009-05-18 19:23:18 -04:00
Robin Millette
0271859c24 Added personal tag page: http://example.com/MY_NICK/tag/A_TAG 2009-05-18 17:18:57 -04:00
Robin Millette
5897dfa4c3 Refactored new sections code to proper classes and added notice link to links in notice sections. 2009-05-17 22:06:08 -04:00
Robin Millette
fecb8c706d Attachments and their list now provide "ajax" view. Also added a few sidebars relating tags and attachments. 2009-05-15 15:04:58 -04:00
Robin Millette
3b7ee5a5f9 rewrote short url stuff to handle new file/url classes (redirections, oembed, mimetypes, etc.) 2009-05-13 14:27:32 -04:00
Robin Millette
d010d811ba db stuff for URLs: redirections, oembed, etc. 2009-05-11 13:45:00 -04:00
Zach Copley
3e7b1e69e3 Added dirty dates to Foreign_link 2009-05-07 15:55:04 -07:00
Sarven Capadisli
aaeed091d2 Merge branch '0.7.x' into 0.8.x 2009-05-05 22:54:46 +00:00
Evan Prodromou
5314d9b2cf make faves work with ids 2009-05-01 12:01:28 -07:00
Evan Prodromou
021b520a11 Make user group stream use IDs 2009-05-01 11:38:50 -07:00
Evan Prodromou
3328ec545c make profile notice getting use ids 2009-05-01 11:27:57 -07:00
Sarven Capadisli
d30df07908 Merge branch '0.7.x' into 0.8.x
Resolved Conflicts:
	lib/queuehandler.php
	lib/util.php
	theme/base/css/display.css
2009-05-01 00:16:25 +00:00
Evan Prodromou
aee641ee1e make replies use new query format 2009-04-29 20:45:33 -04:00
Evan Prodromou
1e8ea1eb46 Make the tag stream use ID mechanism 2009-04-29 16:09:03 -04:00
Evan Prodromou
a4d959b8a2 Public stream uses IDs method
Public stream now uses IDs method
2009-04-29 12:05:31 -04:00
Evan Prodromou
10ef8a2f71 Move algorithm for caching to Notice class
Moved the algorithm for notice stream caching to the Notice class.
2009-04-29 11:27:45 -04:00
Zach Copley
f798d1ea43 Added dirty dates to Foreign_link 2009-04-28 17:08:20 -07:00
Evan Prodromou
fe53e780be Remove some debug comments in query-by-id 2009-04-28 13:31:56 -04:00
Evan Prodromou
c7105c2af1 Change to avoid a join in notice inbox
The join in notice_inbox is causing temp-table sorting on identi.ca,
so I'm trying a finer-tuned approach.
2009-04-28 13:07:05 -04:00
Evan Prodromou
ce5b98ca01 Merge branch '0.7.x' into querybyid 2009-04-27 16:55:07 -04:00
Evan Prodromou
698228acb9 Revert "Revert "run 'set names' after each connection to deal with UTF8 correctly""
This reverts commit 86770ccde7.
2009-04-26 13:16:59 -04:00
Evan Prodromou
86770ccde7 Revert "run 'set names' after each connection to deal with UTF8 correctly"
This reverts commit 84072aa5cf.

This commit caused grievous harm to old notices on identi.ca.
Reverting until we figure out how to convert the old notices.
2009-04-26 12:28:20 -04:00
Evan Prodromou
068f6801cc Revert "run 'set names' after each connection to deal with UTF8 correctly"
This reverts commit 84072aa5cf.

This commit caused grievous harm to old notices on identi.ca.
Reverting until we figure out how to convert the old notices.
2009-04-26 12:27:32 -04:00
Evan Prodromou
a7089de228 run 'set names' after each connection to deal with UTF8 correctly 2009-04-26 12:14:04 -04:00
Evan Prodromou
84072aa5cf run 'set names' after each connection to deal with UTF8 correctly 2009-04-26 12:13:49 -04:00
Evan Prodromou
a9df5eab10 insert into user's inbox at Web time 2009-04-23 10:38:51 +00:00
Evan Prodromou
31b04220bd incorrect config setting for queues 2009-04-23 09:34:56 +00:00
Evan Prodromou
aee45ea91d Add an inbox queue handler
Handle distributing a notice to multiple inboxes in a queue handler
rather than in the Web action.
2009-04-23 05:08:48 -04:00
Evan Prodromou
640628de2d A queuehandler for blowing caches offline
We add a queuehandler for blowing the memcached caches off-line. This
should speed up the processing of new notices.
2009-04-23 05:03:19 -04:00
Evan Prodromou
3081b2e317 start of querybyid 2009-04-16 08:44:48 -04:00
Zach Copley
ad5dd9030b Add option to Twitter settings for importing Friends Timeline 2009-04-13 19:19:26 -07:00