Commit Graph

790 Commits

Author SHA1 Message Date
Evan Prodromou
9dafde2c9f styling on the favor/disfavor forms to show inline
darcs-hash:20080908201751-84dde-a498395d26b957b72350d8075d056b661a1f77c7.gz
2008-09-08 16:17:51 -04:00
Evan Prodromou
0075f1136f better styling for favor/disfavor buttons
darcs-hash:20080908183515-84dde-7630e2185aa2f0a4e95e3eb8502294361d9879e5.gz
2008-09-08 14:35:15 -04:00
Evan Prodromou
59ef19b7d3 fix requires in dis/favor and correct url in form
darcs-hash:20080908182559-84dde-27b288efd341a4dd148abb641064d9e48ca2aa11.gz
2008-09-08 14:25:59 -04:00
Evan Prodromou
c47a576f6c change input buttons to submit buttons
darcs-hash:20080908182353-84dde-c2825731b071e140b8bf8f633246eddc7c5b1f3c.gz
2008-09-08 14:23:53 -04:00
Evan Prodromou
a8a3667774 initial non-Ajax version of favorites
darcs-hash:20080908181624-84dde-8200e1d91eb5f560ef0f296c9e1c56f93ef1b0c5.gz
2008-09-08 14:16:24 -04:00
CiaranG
dcc93125ed Added missing subs.php
darcs-hash:20080816153917-f6e2c-e9a3111a80dfda5755c5fa3a4ea00d880afb08c2.gz
2008-08-16 11:39:17 -04:00
CiaranG
bfb22a9932 XMPP daemon updates including help, sub and subsub commands, plus subscribe/unsubcribe logic broken out into standalone module for sharing
darcs-hash:20080816083422-f6e2c-fb8b4e0581719bd8c3f433e661ec9742e1b84cbc.gz
2008-08-16 04:34:22 -04:00
Evan Prodromou
e248066b74 updates for invitations
Add the code to registration to handle invitation codes.

Some edge cases on invitations: is the user already subbed to this
person? Tell them. Is the person already on the system? Sub the user
to them, then, and tell the user.

Add some code to User to auto-sub invitees whenever the email address
changes. Call it from a new registration with an invite code, and also
from confirmaddress.

Some whitespace cleanup in the files touched.

darcs-hash:20080827001927-84dde-b50e5d921ca3f2fb894821730ff93cac09d2ba66.gz
2008-08-26 20:19:27 -04:00
Evan Prodromou
c2839a80f0 helper functions that take a user object
darcs-hash:20080827001348-84dde-de452a1120aba995355aa616cf416bb6b617566c.gz
2008-08-26 20:13:48 -04:00
Evan Prodromou
a442d4d04a fix the invite url
darcs-hash:20080825193450-84dde-a9a2e16b65c21a22adcb5574c4040d401513e961.gz
2008-08-25 15:34:50 -04:00
Evan Prodromou
245b9584bf invite fancy url
darcs-hash:20080825193333-84dde-d02930a6e8c2333cbaa3ec4cddb7e31d1cbaf3eb.gz
2008-08-25 15:33:33 -04:00
Evan Prodromou
1b7e8405c9 add invite to the nav menu
darcs-hash:20080825193235-84dde-fb91c560029b3aa7c73709dba57e00d3cc7f5122.gz
2008-08-25 15:32:35 -04:00
Evan Prodromou
ec3c936234 use common-config instead of $config in common_language
darcs-hash:20080922172631-84dde-357c532ac1fb1e2fec54680eb9d294a2ede23ab0.gz
2008-09-22 13:26:31 -04:00
Evan Prodromou
423227d2db make NoticeWrapper extend Notice so methods work
darcs-hash:20080915073006-84dde-8ea7daa73743647711a8c1d7389894b25f2b077d.gz
2008-09-15 03:30:06 -04:00
Evan Prodromou
6451b7ad6a another attribute error
darcs-hash:20080915072738-84dde-377131613c91dcb353bc6aaf55bae8ce1b7f13e5.gz
2008-09-15 03:27:38 -04:00
Evan Prodromou
4bd2c2ad72 misused instance attribute in noticewrapper
darcs-hash:20080915072553-84dde-6de01a486dfcf3440643584d1f698fe1b188f351.gz
2008-09-15 03:25:53 -04:00
Evan Prodromou
d86f954797 subscriptions clear user with-friends cache, too
darcs-hash:20080915071500-84dde-765c8c289d5cf7f71c2a49967bde4ecda28d9ea8.gz
2008-09-15 03:15:00 -04:00
Evan Prodromou
df724990bd array_count -> count
darcs-hash:20080915070951-84dde-be26f8844c884b0210cfd6165fd3403ce760195e.gz
2008-09-15 03:09:51 -04:00
Evan Prodromou
f246b8f2d7 cache noticesWithFriends in memcached
noticesWithFriends is turning out to be one of our most expensive
queries. The join is costly, and this method is hit over and over and
over by desktop clients and other API users.

So, I've added a first pass at caching the results. I store a "window"
of notices -- equal to the first 3 pages of notices, plus one for
pagination -- in the memcached cache. If with-friends notices are
requests, I fetch the whole window out of the cache and grab the slice
requested. If the requested notices are outside the window, we just do
the query. If there's nothing in the cache, we request the window and
store it, then return a slice.

I had to add a NoticeWrapper class that works like DB_DataObject
(well, just the fetch() part...) but just holds an array of notices
instead of a DB cursor.

Finally, saving a new notice blows away the caches for subscribed users.

darcs-hash:20080915065616-84dde-1b1e814c2294498a10b763b779cbb62c3f96aa84.gz
2008-09-15 02:56:16 -04:00
Evan Prodromou
ed57778b92 LOG_ERROR -> LOG_ERR
darcs-hash:20080913161107-84dde-30b694455d509a7ec2d12e8418f54ce695aa0993.gz
2008-09-13 12:11:07 -04:00
Evan Prodromou
a482123fea reverse order of queries for galleries
darcs-hash:20080911144742-84dde-235a1af2d958500b1f1c503f21785284ca4b5c8a.gz
2008-09-11 10:47:42 -04:00
Evan Prodromou
1374e0763e error checking in subscriptions
darcs-hash:20080908201020-84dde-233d38e3cb65f1778a34456193cd3f013e8d94a8.gz
2008-09-08 16:10:20 -04:00
Evan Prodromou
4af3393452 remove some debugging code from omb.php
darcs-hash:20080907200344-84dde-3cc68af343e2da1ae852df07bdc1738865c122f0.gz
2008-09-07 16:03:44 -04:00
Evan Prodromou
580c6ddc7b lots of debugging code in OMB send
darcs-hash:20080907195242-84dde-b2adc3cd10cfe516c4635d26830ed43b8151d6f0.gz
2008-09-07 15:52:42 -04:00
Evan Prodromou
c660a3438f debugging for omb
darcs-hash:20080907193402-84dde-cc5ecd5d02a00e3dfb7523f93d7f0a9ddbe6fb1b.gz
2008-09-07 15:34:02 -04:00
Evan Prodromou
f02b5bf7dd free memory in SMS daemon, too
darcs-hash:20080906015621-84dde-ae1a53e6757a743f82f3078947212b7bbe984dde.gz
2008-09-05 21:56:21 -04:00
Evan Prodromou
0c71340c9f free and unset DB_DataObjects after we're done with them
darcs-hash:20080906015501-84dde-e787962b9805759224389dd42a211dfa21da3473.gz
2008-09-05 21:55:01 -04:00
Evan Prodromou
96de63ea99 change sms broadcast to use a join
darcs-hash:20080905022019-84dde-d53b1dda2cd0ec996b8dda99a00d01e6da000d3f.gz
2008-09-04 22:20:19 -04:00
Evan Prodromou
d17cb8eedc use a join for omb broadcast
darcs-hash:20080905004701-84dde-c8b27c6b3b4ad634cd954ec51d45a92d2ad32389.gz
2008-09-04 20:47:01 -04:00
Evan Prodromou
f72b12c7b8 better @ links
darcs-hash:20080904224129-84dde-6844b29ab1818954aacaf6d9ef11371dbb11812a.gz
2008-09-04 18:41:29 -04:00
Evan Prodromou
be075ed642 add some processTime() to the send loops to avoid filling the buffer
darcs-hash:20080904213257-84dde-c046a708c6ac9f8f7ed2135f29241d70abe4104f.gz
2008-09-04 17:32:57 -04:00
Evan Prodromou
bd83350c89 abstract XMPP-related queue handling to a common superclass
darcs-hash:20080904194035-84dde-480b3605862d26eff6a2cac6eec02775628287e4.gz
2008-09-04 15:40:35 -04:00
Evan Prodromou
dfae116c47 add newline at the end of pidfile
darcs-hash:20080904191517-84dde-7bc5b62f26d10c7e865b483df90356a5eaea0205.gz
2008-09-04 15:15:17 -04:00
Evan Prodromou
32a189220c more robust code for setting daemon uid/gid
darcs-hash:20080904191031-84dde-bb457c429c76eedb9bd4ea838b7ccad28844effd.gz
2008-09-04 15:10:31 -04:00
Evan Prodromou
65efe17c4e add .pid to pidfile names
darcs-hash:20080904190254-84dde-57d24d7a82e4c7eabef87d60ebb69292832e31ac.gz
2008-09-04 15:02:54 -04:00
Evan Prodromou
aed0fff4ea scripts daemonize themselves
darcs-hash:20080904184031-84dde-eba2061f3aa898d0c791ffeb70837f759778c567.gz
2008-09-04 14:40:31 -04:00
CiaranG
fff677e6c4 Resolve remote subscribe and omb problems with quotes (Tickets #604 and #567)
darcs-hash:20080904065504-f6e2c-f0c770f52624e7151a93f2ed2b8813657ca88c14.gz
2008-09-04 02:55:04 -04:00
Garret Buell
51caab6e5e Elide_Tags
Make "#sanfrancisco", "#SanFrancisco", "#san_francisco", "#San.Francisco", and "#SAN-FRANCISCO" all link to http://identi.ca/tag/sanfrancisco but preserve appearance

darcs-hash:20080901025932-e3c0d-c0a939eaf7e242d88cbcb0d651c9d53718c60a9d.gz
2008-08-31 22:59:32 -04:00
Garret Buell
cca78b26f7 Allow_multicase_tags
Make "#test", "#Test", and "#tEsT" all preserve appearance but link to the same tag

darcs-hash:20080901001241-e3c0d-b466f35f4f023c6c90a6d2817487c97be9a1bbca.gz
2008-08-31 20:12:41 -04:00
Garret Buell
e333345722 Tags_without_fancy
Change common_tag_link to format the tag link based on the setting of $config['site']['fancy']

darcs-hash:20080831233401-e3c0d-4e0e43f5a53a6659c49d65a2b1f2a47c5cdec228.gz
2008-08-31 19:34:01 -04:00
Evan Prodromou
719470994a try to make the reply button do the right thing if there's no notification box.
darcs-hash:20080827015010-84dde-d5ed6a0a290273e400b71e4623a54ac88ee29173.gz
2008-08-26 21:50:10 -04:00
Evan Prodromou
d5f83d9252 switch around how XMLStream does processing
darcs-hash:20080831003210-84dde-92ccffd5b2e1d50963b18babd93c70fb1d20cdba.gz
2008-08-30 20:32:10 -04:00
Evan Prodromou
fa123bef67 restore HTML in output, remove rump pubsub event code
darcs-hash:20080902030403-84dde-5f1576104104ea57d3e23401b59493c03d5a84d4.gz
2008-09-01 23:04:03 -04:00
Evan Prodromou
ab92ba78ba slightly more robust connection code
darcs-hash:20080902030331-84dde-bb2db886d90623785f930bb7c5c3c406d407f808.gz
2008-09-01 23:03:31 -04:00
Evan Prodromou
c6c3cd40f6 separate out presence from connection, send different presence types from queuehandlers
darcs-hash:20080902012604-84dde-073a583da9b09c80e5e9a47a5eddd144fad8e87a.gz
2008-09-01 21:26:04 -04:00
Evan Prodromou
c31afa795f halt sending HTML in Jabber
darcs-hash:20080831114642-84dde-c1e486fe03752882e212bd6e3930477042f993be.gz
2008-08-31 07:46:42 -04:00
Evan Prodromou
c46f152697 forgot to use the array for avoiding dupes
darcs-hash:20080830094252-84dde-bf6c17d7036c84bfeaf41d2fc704cc8656a083c1.gz
2008-08-30 05:42:52 -04:00
Evan Prodromou
72d8bb12e1 use priority in connection
darcs-hash:20080830091522-84dde-75121e8794f2a43b8a4c5bff7ec42cac40d5520c.gz
2008-08-30 05:15:22 -04:00
Evan Prodromou
6c42bdc448 get rid of Laconica_XMPP and ignore priority
darcs-hash:20080830084423-84dde-7749d00c4c2fcada9e0f30af044637c48c0512c3.gz
2008-08-30 04:44:23 -04:00
evan
55816cf24e some fixes from on the jabber server
darcs-hash:20080830083502-5b646-d6a66157d86ca84cfa6cf6280bb2eb17bc20e02d.gz
2008-08-30 04:35:02 -04:00
Evan Prodromou
19147201c8 forgot to get the profile in public queue handler
darcs-hash:20080830071232-84dde-90bad1be7a7e141927175e42d39cb21d7bba337e.gz
2008-08-30 03:12:32 -04:00
Evan Prodromou
ac85a4b0fa less sleeping, slightly
darcs-hash:20080830064431-84dde-42629109de11f65da9d876aee168abdf7c4ced3d.gz
2008-08-30 02:44:31 -04:00
Evan Prodromou
439c14d986 use common log in error handler rather than echo
darcs-hash:20080830053052-84dde-279d1c52e9b8696079ba686009ce2d71725a690e.gz
2008-08-30 01:30:52 -04:00
Evan Prodromou
b17bb9861c lost $sent_to in jabber_public_notice
darcs-hash:20080829200859-84dde-d1c4c5897096a06dec8be14e81499d70a79c78d2.gz
2008-08-29 16:08:59 -04:00
Evan Prodromou
f5fe013657 many jabber queue management changes
Added a method to QueueManager to let subclasses do stuff when idle.
Needed so that XMPP queue manager can service its message queue.

Cleaned up jabber_broadcast_message quite a bit. Use custom joins
instead of loop-and-query, should fix some problems with users who are
getting messages even after turning off notification. Only build $msg
and $entry once, and use the XMPPHP function for messages with a
payload, rather than rolling our own.

darcs-hash:20080829200352-84dde-427e4ca8c81d4222a36f78e7c580b611ff0bf765.gz
2008-08-29 16:03:52 -04:00
Evan Prodromou
c4d6789275 split public stream to its own queue handler
Add another queue handler for the public stream. Should further
parallelize the work of sending out messages.

darcs-hash:20080829181702-84dde-594505aa73d2380b13bd98917b70b02bac597d12.gz
2008-08-29 14:17:02 -04:00
Evan Prodromou
f652418863 harmonize csrf and queues
darcs-hash:20080829174012-84dde-4859ce0a34a50080f8376fa3278c3aa3e3a3046d.gz
2008-08-29 13:40:12 -04:00
Evan Prodromou
241881238c misprint of omb as oms
darcs-hash:20080828012619-84dde-f7e993f345220d3642743e9f2567d7f8e6e4b6ce.gz
2008-08-27 21:26:19 -04:00
Evan Prodromou
9cdb33ac0e don't clear claims immediately
darcs-hash:20080828002610-84dde-d9cb46cb08ac50b8efbdf5683baeb2de168fc4b1.gz
2008-08-27 20:26:10 -04:00
Evan Prodromou
2be3be1c29 correct presence in jabber function
darcs-hash:20080828001936-84dde-e4ec2fef30c49d1254d5358624a4391930811832.gz
2008-08-27 20:19:36 -04:00
Evan Prodromou
7887147603 change return in queue function
darcs-hash:20080828001414-d018c-fa900f60f0af20c01e8b83a74834ddf46829f4b2.gz
2008-08-27 20:14:14 -04:00
Evan Prodromou
cd5dc3246e got two lines reversed
darcs-hash:20080827211940-84dde-d5b404023a2fb6b74b6255dd91910c9ec7df3cc6.gz
2008-08-27 17:19:40 -04:00
Evan Prodromou
b9f0ea6f0e break up monolithic xmppdaemon into multiple queue handlers
Eventually, the poor xmppdaemon has become overloaded with extra
tasks. So, I've broken it up. Now, we have 5 background scripts, and
more coming:

* xmppdaemon.php - handles incoming XMPP messages only.
* xmppqueuehandler.php - sends notices from the queue out through XMPP.
* smsqueuehandler.php - sends notices from the queue out over SMS
* ombqueuehandler.php - sends notices from the queue out over OMB
* xmppconfirmhandler.php - sends confirmation requests out over XMPP.

This is in addition to maildaemon.php, which takes incoming messages.

None of these are "true" daemons -- they don't daemonize themselves
automatically. Use nohup or another tool to background them. monit can
also be useful to keep them running.

At some point, these might become fork()'ing daemons, able to handle
more than one notice at a time. For now, I'm just running multiple
instances, hoping they don't interfere.

darcs-hash:20080827205407-84dde-97884a12f5f4e54c93bc785bd280683d1ee7e749.gz
2008-08-27 16:54:07 -04:00
Evan Prodromou
1df845db78 fix random function name
darcs-hash:20080829021854-84dde-818492a31c07dd0921c2a693095ca7ac901b6d35.gz
2008-08-28 22:18:54 -04:00
Evan Prodromou
54bee1b999 code for session token
darcs-hash:20080829015304-84dde-1c93203bdfbd4c1696cdd3c07212ff16a9f727dd.gz
2008-08-28 21:53:04 -04:00
Evan Prodromou
cf3902d8ac get language before setting it.
darcs-hash:20080828005323-84dde-8f69e1e6115faa544c22436539148dac53ed6f65.gz
2008-08-27 20:53:23 -04:00
Evan Prodromou
b1ff7d7a2b fix error storing uris of remote notices
darcs-hash:20080826211108-84dde-b277bdb1476b9cec0c0d93fa8d565c4642ba16c8.gz
2008-08-26 17:11:08 -04:00
Evan Prodromou
4a28e70cf8 use notice URI if it's not local and it's an HTTP URL
darcs-hash:20080826210314-84dde-34d4eb71c7d74b65c0c4b486f345ed7d9301af15.gz
2008-08-26 17:03:14 -04:00
Evan Prodromou
0bc0568e66 only send local messages to public XMPP stream
darcs-hash:20080826205341-84dde-04c1641f4b9c5aa5318b76512664ee9df170d779.gz
2008-08-26 16:53:41 -04:00
Evan Prodromou
782fe0130f optionally turn encryption on or off in the XMPP connection
For identi.ca, we had some problems with the XMPP daemon getting
"stuck" in I/O through the encrypted (by default) XMPP socket. Turning
off encryption helped. So, now it's an option.

darcs-hash:20080826131814-84dde-2c4a809c6fb666dfb4b96d0d61205fe418f4e4b4.gz
2008-08-26 09:18:14 -04:00
Evan Prodromou
4cc84c3225 never allow blank passwords
darcs-hash:20080825185245-84dde-f2ad86c1aedc2a42f7b468775234be53a7e84d5b.gz
2008-08-25 14:52:45 -04:00
Evan Prodromou
cba4b50e44 use common_sql_now() instead of DB_DataObject_Cast
darcs-hash:20080825182338-84dde-ec0edef9469b294b7e23945f1bc7d810da988ed7.gz
2008-08-25 14:23:38 -04:00
Evan Prodromou
3fda5a684f notify user of remote subscriptions
darcs-hash:20080824200517-84dde-9662d89dbcd948e3ef7b7f8d4e82d90b4891c684.gz
2008-08-24 16:05:17 -04:00
CiaranG
192a673472 Prevent jabber.php error by checking key exists
darcs-hash:20080823053548-f6e2c-dfc8a0acd9fb8589ed37e54c7d0d3d38afff34f5.gz
2008-08-23 01:35:48 -04:00
CiaranG
6593092bfd Escape profile url in xmpp in case fancy urls off (Ticket #521)
darcs-hash:20080823052534-f6e2c-aa452a8c2c6ee33399f4079d0bf2224847e1450a.gz
2008-08-23 01:25:34 -04:00
CiaranG
1e68183377 Fixed attempt to read nonexistent match in JID regex
darcs-hash:20080822191751-f6e2c-578869b8524e3238c461872981a5dd8c285937e3.gz
2008-08-22 15:17:51 -04:00
CiaranG
92645bbc57 XMPP sub/unsub and help commands
darcs-hash:20080822191032-f6e2c-a3a7efbbaad1ec7c48ef132a8ba34fc8b8651969.gz
2008-08-22 15:10:32 -04:00
Evan Prodromou
97341a4c94 fix include path bug
darcs-hash:20080822210654-84dde-68595effcfc11d5e4497c72b189b5f046a8b3ca6.gz
2008-08-22 17:06:54 -04:00
Evan Prodromou
a91cd75c17 local-only is optional on public timeline
darcs-hash:20080822210307-84dde-c90f6e7953d11c5b12c7a084ac23e5578412932c.gz
2008-08-22 17:03:07 -04:00
Evan Prodromou
14c9366aac include external libs in a subdir to make install easier
darcs-hash:20080822131714-84dde-6978424ded2ed1041a65142a25560654ac717fcd.gz
2008-08-22 09:17:14 -04:00
zach
e440b9cea0 Twitter-compatible API - moved show() to the right file
darcs-hash:20080819003931-462f3-4b5b838a2fc5f872391581a189d33abdd8eeb744.gz
2008-08-18 20:39:31 -04:00
zach
d57bc1b8e9 Twitter-compatible API - running all strings through gettext() now
darcs-hash:20080819002903-462f3-94e62891db9b9de049a918034742e545f663e840.gz
2008-08-18 20:29:03 -04:00
Evan Prodromou
e8e91dc29d use UTF-8 as the internal encoding
darcs-hash:20080817153024-84dde-ca566d665fff08d52f1f9796e2731417585d4c6f.gz
2008-08-17 11:30:24 -04:00
Evan Prodromou
1ba234a9b6 make settings and search menus localisable
darcs-hash:20080817150244-84dde-7f2e4dec226aa9754dfc970386e62076f952db72.gz
2008-08-17 11:02:44 -04:00
zach
35d1714621 Twitter-compatible API: support for new in_reply_to_status_id in statuses/update
darcs-hash:20080815185317-ca946-11c3f9f7255180d5d6ea7b115b3e33b2abb7fe93.gz
2008-08-15 14:53:17 -04:00
Evan Prodromou
5923f958c9 auto-load OAuthRequest
darcs-hash:20080813195408-84dde-a1de441ce50759f50b2c88b45d626dc4e0892d31.gz
2008-08-13 15:54:08 -04:00
zach
37a47f3d57 Twitter-compatible API: filled in the source attr for notices accessed via API
darcs-hash:20080809001240-ca946-0a8ec8b965876e1da90c675ad596b32906a21d93.gz
2008-08-08 20:12:40 -04:00
Evan Prodromou
37c5e8ca3c make tag dropoff configurable
darcs-hash:20080811175820-84dde-f3d934495fa90fadde5f7d5d0c37c5f2a575a9d8.gz
2008-08-11 13:58:20 -04:00
Evan Prodromou
2c3ed64027 LOG_ERROR -> LOG_ERR (again)
darcs-hash:20080807234227-84dde-a64619c71de020aa2284ca1a36ea2a71ff8b29a6.gz
2008-08-07 19:42:27 -04:00
Evan Prodromou
80aa8b83db fix config global
darcs-hash:20080806122119-84dde-41fb0645db58ac5ce74b485c8cb68f7275e74915.gz
2008-08-06 08:21:19 -04:00
Evan Prodromou
0d58d4216b fixup locale stuff from mikenz
darcs-hash:20080806040433-84dde-a504751a8a0329a37d866e68a9ecda6a5d629c55.gz
2008-08-06 00:04:33 -04:00
Mike Cochrane
45983cc590 Add other languages to drop down
darcs-hash:20080805020520-533db-774b253ac10ae71e7d8d9b48e654736039fa5ae3.gz
2008-08-04 22:05:20 -04:00
mikec
369354505f Set the C locate to avoid tr_TR php bug see http://www.topolis.lt/php/#35050
darcs-hash:20080804133727-edabd-4bd34431d0ab8519ec512b59be354720925da9a0.gz
2008-08-04 09:37:27 -04:00
Evan Prodromou
4c8dfadf2d make init of lang environment happen earlier, or when user language may have changed
darcs-hash:20080806034515-84dde-e32cbfec2890f50b610d0441659180038b060473.gz
2008-08-05 23:45:15 -04:00
Evan Prodromou
f0f6d0e603 use noreply address as fallback if no incoming email address exists
darcs-hash:20080804133933-84dde-189f0ee39bf1000fbb648144fadcf9a9263c4b38.gz
2008-08-04 09:39:33 -04:00
Evan Prodromou
d2807d966e version upgrade
darcs-hash:20080731050632-34904-db9fc10c55321b81a33732a2062bf72914927cec.gz
2008-07-31 01:06:32 -04:00
Evan Prodromou
b1f28f4457 try to slim down the top menu so it all fits
darcs-hash:20080731020933-84dde-80d7abb2d681a9f748b16f6245d33396e1f899b2.gz
2008-07-30 22:09:33 -04:00
Evan Prodromou
f2ae665e13 let @rejon do the homework http://ur1.ca/17c
darcs-hash:20080731020433-84dde-641127c2de488087c1525fc773d544ba5b136550.gz
2008-07-30 22:04:33 -04:00
zach
93d25bec33 Twitter-compatible API: implemented /users/show.format method
(and some API bug fixes)

darcs-hash:20080730213226-ca946-eb89bad91eee630ac286d537ba42f0042b8d2109.gz
2008-07-30 17:32:26 -04:00
Mike Cochrane
9d89e7b4ac Update some gettext strings and number the arguements so life is easier for translators
darcs-hash:20080729080641-533db-560337e226a02dd6fc671f090883d4bedd50eaaa.gz
2008-07-29 04:06:41 -04:00
zach
f318f41ebf Twitter-compatible API: better error handling for replier_by_reply()
darcs-hash:20080728230221-ca946-68253052cfcd800a6da979e2a615d4847b1b05f3.gz
2008-07-28 19:02:21 -04:00
Evan Prodromou
353aa5a0d8 move the language info, fix dir for locales
darcs-hash:20080730035446-84dde-8ce202ea6956bb49e1be98307136fc299862ab9b.gz
2008-07-29 23:54:46 -04:00
Evan Prodromou
c614a9d66e use a little X instead of "delete" for delete link, right after arrow
darcs-hash:20080730033804-84dde-1c747a7a6ee85f885926a42905b0b910fd1dec50.gz
2008-07-29 23:38:04 -04:00
Evan Prodromou
e65bf0a250 new -> staticGet
darcs-hash:20080730033304-84dde-159bd4582731d2adfb8b7306ee6eb44ce25d256a.gz
2008-07-29 23:33:04 -04:00
Evan Prodromou
025a8e5526 fallback for unknown source
darcs-hash:20080730032918-84dde-a38f8731840e0dcc82a4ced768bf85069e15a133.gz
2008-07-29 23:29:18 -04:00
Evan Prodromou
2090e0aa78 show where a notice came from
darcs-hash:20080730032651-84dde-0685ec5f899129bc75745ca8d1d083f56f3f1ff5.gz
2008-07-29 23:26:51 -04:00
Evan Prodromou
4577182d2c rel
darcs-hash:20080729182558-84dde-3f3eab4da119cf57fb55896b114146fd72007824.gz
2008-07-29 14:25:58 -04:00
Evan Prodromou
984b9b6b42 require validation code
darcs-hash:20080729025156-84dde-f3d9d26db3a500ff04f3a4ce3a3ff1846b6eca08.gz
2008-07-28 22:51:56 -04:00
Evan Prodromou
7e8a58923f change 'deletenotice' to 'notice/delete'
darcs-hash:20080726034209-84dde-02b25960aeb361319f8037b17aed6290d477cf7b.gz
2008-07-25 23:42:09 -04:00
Evan Prodromou
b5bd567668 Queue_item correct name in dequeue function
darcs-hash:20080726033958-84dde-09d117b3e5bb997ddfd6548806ce7a51a38434e7.gz
2008-07-25 23:39:58 -04:00
Mike Cochrane
341563d6cd Auto/Lazy load the class files
darcs-hash:20080724234701-533db-ceab005e4c418a62d49af04e7835e963b67b03e0.gz
2008-07-24 19:47:01 -04:00
Mike Cochrane
dd3ae36084 Cache the DateTimeZon objects
darcs-hash:20080724234619-533db-015a2751ade3b5b8befb8a735fe89acd4742c4b9.gz
2008-07-24 19:46:19 -04:00
Mike Cochrane
22c51b27ef No errors if it's not set
darcs-hash:20080722082840-533db-6df7b1fe05bbcaef6862d3e9b5ee3bcd277523e7.gz
2008-07-22 04:28:40 -04:00
Mike Cochrane
334b840c3e Only Set reply details if there is something to reply to
darcs-hash:20080722082724-533db-ead12f037aa716dc548d6a4b04493ada5049ec96.gz
2008-07-22 04:27:24 -04:00
Mike Cochrane
bdfe3ca524 Only try sending xmpp notices if xmpp is enabled
darcs-hash:20080722082653-533db-14e277869986f0c4f0df0f84eec9c5d39626956d.gz
2008-07-22 04:26:53 -04:00
mikec
a4fa34cecb Resolve conflicts after pull from evan
darcs-hash:20080721135637-edabd-cca33bc0a0936423b9fd2ffdf9413236123d680e.gz
2008-07-21 09:56:37 -04:00
matthew.gregg
ed37d83fa3 Opensearch updates
This adds htaccess and searches for people and notices.

darcs-hash:20080720195505-982e4-3f03e6ab4c466ae131e025b6a3c26c7bb9a99c03.gz
2008-07-20 15:55:05 -04:00
Mike Cochrane
88717d8805 User definable timezones. Work in UTC internally and display per user/site default. http://laconi.ca/PITS/00011
darcs-hash:20080720141325-533db-87cb60501434c9dc0ac13716ba5d8b17754431f5.gz
2008-07-20 10:13:25 -04:00
Mike Cochrane
060fecf5ec Clean up delete code. Add missing htaccess rule. Exit after errors so the code doesn't continue running.
darcs-hash:20080720124552-533db-81be2c04445f146e477b1bb7e6e8e7d0eb27431d.gz
2008-07-20 08:45:52 -04:00
Mike Cochrane
de81e92f0b Strip characters that shouldn't be in xml. Fixes http://laconi.ca/PITS/00253 for future messages, or all after a regeneration of rendered messages
darcs-hash:20080720122832-533db-7fda43b257160b90788f0d860d50df995d463ee8.gz
2008-07-20 08:28:32 -04:00
Mike Cochrane
97bc06d2ee gettext strings and pass the query string between tabs http://laconi.ca/PITS/00231
darcs-hash:20080720105659-533db-35a71fab668a7ea692f7b51557b4f84addb796bb.gz
2008-07-20 06:56:59 -04:00
Mike Cochrane
5cf6174c39 Fullname is in the profile, not the user object
darcs-hash:20080720101553-533db-3ebe6e3cd4b9e1b937df076b876bc3f9b826f476.gz
2008-07-20 06:15:53 -04:00
Mike Cochrane
bd0b6970ae Fix undefined variable error
darcs-hash:20080720100024-533db-d2b5b63f169b6e16e08e81c8da63b7f9f69e7521.gz
2008-07-20 06:00:24 -04:00
Mike Cochrane
91a3cb84cd Clean up of delete links when not logged in
darcs-hash:20080720094954-533db-1096bf464e37a9c380afc15ac1b33b1f2f43cf91.gz
2008-07-20 05:49:54 -04:00
Mike Cochrane
92e90ee636 Notice error
darcs-hash:20080720094917-533db-386e12dbeabcfb9bc74cdce11e6bc197964929b7.gz
2008-07-20 05:49:17 -04:00
matthew.gregg
e20362a60a Adds Opensearch description
darcs-hash:20080720015823-982e4-b33e1ef01cd071e958c9c51625190513b86594f3.gz
2008-07-19 21:58:23 -04:00
matthew.gregg
6dd211530f Patch for PITS 00032, 00033, 00034
darcs-hash:20080719003417-982e4-7004f8a4dfb447f941457c30b0b2289eee5582e6.gz
2008-07-18 20:34:17 -04:00
matthew.gregg
faa3933fbb Added notice deletion http://laconi.ca/PITS/00045
Removes selected notice and any replies that reference it.
Attempts to de-queue anything pending.

This patch does not archive notices.

darcs-hash:20080716032045-982e4-a0b5d37ecfa84796f1681dda54110094ad1424c6.gz
2008-07-15 23:20:45 -04:00
Mike Cochrane
5d84485001 First cut at hastags support.
darcs-hash:20080720055702-533db-193ed842b0d0a952bef71a3c5287213ada0ef15c.gz
2008-07-20 01:57:02 -04:00
Mike Cochrane
e4f1d6f504 More notice errors and fix and incorrect variable name
darcs-hash:20080720055558-533db-781488916e178921f1bcd6ea141df10c1a0ace55.gz
2008-07-20 01:55:58 -04:00
Evan Prodromou
e0e5013a32 don't show register link if the site is closed
darcs-hash:20080724235804-84dde-daf159e938289ad2d593d3825ce845bcbecac053.gz
2008-07-24 19:58:04 -04:00
Evan Prodromou
e97c06e8e2 let admins prevent registration
darcs-hash:20080724235508-84dde-8bac4d9dd772adb9f27d083b3d0b6ed5b7526dbf.gz
2008-07-24 19:55:08 -04:00
Evan Prodromou
60ba63b04e default for mirror in DB
darcs-hash:20080724205456-84dde-855e907d68c9548e99efe1068b5a53733e5555bf.gz
2008-07-24 16:54:56 -04:00
zach
7e6870db91 base class is_readonly() now returns false by default
darcs-hash:20080722212056-ca946-e4bd9eef8e3d8991414932e9fc7b8c9a31f818c0.gz
2008-07-22 17:20:56 -04:00
zach
038f762bce Added is_readonly() method to all Actions
darcs-hash:20080722171501-ca946-160bad6c4f80be2b3b105ea9b913f1c0f9edb0ef.gz
2008-07-22 13:15:01 -04:00
Evan Prodromou
0323ca5c8e correctly return 0 for zero followers
darcs-hash:20080722164129-84dde-be64fd4d2fff5951f2d182e44ec1eb457bddd51c.gz
2008-07-22 12:41:29 -04:00
Evan Prodromou
905ba4998b fix content check so it shows zeros
darcs-hash:20080722163618-84dde-5a519a92a84bb94de225fbb3da61af51cfdfdef4.gz
2008-07-22 12:36:18 -04:00
Evan Prodromou
64ed01f0af centralize and optimize with-friends query
darcs-hash:20080722160213-84dde-2e466b9cc4601a8cb7237770a7df17a2f9dcadb9.gz
2008-07-22 12:02:13 -04:00
zach
93ac0bcae3 Twitter-compatible API - refactoring and bug fixes
darcs-hash:20080720083428-ca946-c14a92345366f2105b3c452a3899714d89692daa.gz
2008-07-20 04:34:28 -04:00
zach
140689800b Twitter-compatible API - Error handling that better matches Twitter's
darcs-hash:20080720070905-ca946-dda57dd92210461361fd58b7a3244bf24c01e801.gz
2008-07-20 03:09:05 -04:00
zach
00a6f3d015 Twitter-compatible API: /account/update_location implemented
darcs-hash:20080720044756-ca946-2e0823506b352d8364f84b77af644b8fc7f1a00d.gz
2008-07-20 00:47:56 -04:00
Evan Prodromou
df386be05a return true from mail sms broadcast
darcs-hash:20080721093457-84dde-b9c735bef0d279b92e23743a5d96bcaa6b7f8444.gz
2008-07-21 05:34:57 -04:00
Evan Prodromou
30caf568e6 do the sms query the dumb way
darcs-hash:20080721093401-84dde-6c370b1901ea3f548bec0d7e69cf21e63c3ade97.gz
2008-07-21 05:34:01 -04:00
Evan Prodromou
2bdc6f0643 logging and checking
darcs-hash:20080721092813-84dde-ac19bbdd85bbf796ecf8ffbc8c0cb05d0d1667ab.gz
2008-07-21 05:28:13 -04:00
Evan Prodromou
8bc9834854 SQL error
darcs-hash:20080721091854-84dde-98b2bc313f23694a92c6f3ce92fd8f6beafe01fd.gz
2008-07-21 05:18:54 -04:00
Evan Prodromou
289b64c94d fix mail sending
darcs-hash:20080721090819-84dde-34f1d1a0c448296e124c172d234976fd5cdad32c.gz
2008-07-21 05:08:19 -04:00
Evan Prodromou
0876b60006 rewrite for settings of sms
darcs-hash:20080721083758-84dde-76534893df215e9754c00c1e0a6d6351f64f1818.gz
2008-07-21 04:37:58 -04:00
Evan Prodromou
184425796b trim mail and maildaemon
darcs-hash:20080721042333-84dde-f3331569171b33f16322bd6b2999a21cefb718c0.gz
2008-07-21 00:23:33 -04:00
Evan Prodromou
c2aaa22ffb use smsemail stored value
darcs-hash:20080721042302-84dde-b077675affa13a761ba07b4c5ac4ff667cf00eb2.gz
2008-07-21 00:23:02 -04:00
Evan Prodromou
a4edf5daef use user field rather than re-building sms email over and over
darcs-hash:20080721040614-84dde-431def35d4e3c163df2b4f4e78bef7b3521be40a.gz
2008-07-21 00:06:14 -04:00
Evan Prodromou
485331f99d shorter confirmation message and web iface to confirm
darcs-hash:20080721011128-84dde-0b3af6237c2c07bf7f573d9e609c19e6538c2859.gz
2008-07-20 21:11:28 -04:00
Evan Prodromou
bb366ab0b8 bad string in SQL query
darcs-hash:20080720200039-84dde-62412804de2802de9f032bd4e00c8e32373d56a8.gz
2008-07-20 16:00:39 -04:00
Evan Prodromou
3372a98f8e add sms broadcast to broadcasting
darcs-hash:20080720195549-84dde-4193f27f8efda497fbe55f1c514fe30e4dd8a69d.gz
2008-07-20 15:55:49 -04:00
Evan Prodromou
3642967315 require sms carrier
darcs-hash:20080720193228-84dde-00e82ee00a1c94f6adb079ea3ac6affa5aad280c.gz
2008-07-20 15:32:28 -04:00
Evan Prodromou
5fd0a788d5 start sms settings
darcs-hash:20080720193005-84dde-97e098996309550dc98b658923d84620e7715c69.gz
2008-07-20 15:30:05 -04:00
Evan Prodromou
594811350c email settings for post by email
darcs-hash:20080719202625-84dde-52b3d6710302f55e35ef57ea0aa4aff07cbeafaa.gz
2008-07-19 16:26:25 -04:00
Mike Cochrane
57ea8b3644 Add hidden form value when the site is not in fancy mode so the action is not lost
darcs-hash:20080720040351-533db-a0924ce6cd6e472c7001a167ce36452adf99b038.gz
2008-07-20 00:03:51 -04:00
Mike Cochrane
a1515e5411 Some more notice errors - I guess I'm the only one developing with E_ALL
darcs-hash:20080720033236-533db-95f6a169f73e69549a8ff0eefb0e4c8ba21f090e.gz
2008-07-19 23:32:36 -04:00
Mike Cochrane
08dfd72bad A couple more notice errors
darcs-hash:20080720025546-533db-7044949bfaa6676c86f3e1d84d20ecb85aab0937.gz
2008-07-19 22:55:46 -04:00
Mike Cochrane
32136f978a Another notice error
darcs-hash:20080720023510-533db-74cdcbc59c5956c1bd1ce3b01921fd4cd1c7376c.gz
2008-07-19 22:35:10 -04:00
Mike Cochrane
e59cfea9bc Fix a couple of notice errors
darcs-hash:20080720023259-533db-6a4e8abb730b2192fcf2887a665dee2e1048529a.gz
2008-07-19 22:32:59 -04:00
Evan Prodromou
54a931a31a LOG_ERROR -> LOG_ERR
darcs-hash:20080718190835-84dde-1ce20cb3ac604f0e9fa9e4ed86118bca7bec3a06.gz
2008-07-18 15:08:35 -04:00
Evan Prodromou
f50bc70445 increment software version
darcs-hash:20080718164317-34904-693c42830fa5682f49ac2213b31153172815b9a5.gz
2008-07-18 12:43:17 -04:00
Evan Prodromou
03a84f45fd forgot the user's name in HTML output
darcs-hash:20080718070252-84dde-27b01cd01b309ba079c38e9bd09a97b1626d479b.gz
2008-07-18 03:02:52 -04:00
Evan Prodromou
5f55c96157 add an HTML payload to outgoing notices
darcs-hash:20080718063130-84dde-01cc0d9d9cf92e5ad9f5c079c771e2ea64c8d5f2.gz
2008-07-18 02:31:30 -04:00
Evan Prodromou
310d02ae40 init and end documents
darcs-hash:20080718043456-84dde-ffe825e8021e0f803fbbecacdc93d26309853daa.gz
2008-07-18 00:34:56 -04:00
Evan Prodromou
902bab5818 show friendship stuff
darcs-hash:20080718041323-84dde-2cc93bd2ced792797db634c4c4cd2a72a6ae61be.gz
2008-07-18 00:13:23 -04:00
Evan Prodromou
2ebe1fc61c move mail notification to a utility function
darcs-hash:20080718041231-84dde-5953d417b76ae538fd501db11af9ff4a32bfbc9f.gz
2008-07-18 00:12:31 -04:00
zach
42bbd38417 Twitter-API: /account/verify_credentials.format now works
darcs-hash:20080718040332-ca946-0c8da4f5e98355ccbb1ee929693fa74bff3c2481.gz
2008-07-18 00:03:32 -04:00
Earle Martin
e5f26f8b2e Link author avatars to posts directly.
darcs-hash:20080716183052-68ac8-ad94d5e0195ea861cd65b9b3abf8b56824906794.gz
2008-07-16 14:30:52 -04:00
zach
b5659ed85a Twitter-compatible API - /statuses/show and /statuses/update now work
darcs-hash:20080717054411-ca946-e839882ebec3f6d6a12a3f5ecdc1cc403e8afe51.gz
2008-07-17 01:44:11 -04:00
zach
ac2d811a46 Twitter-compatible API - code cleanup
darcs-hash:20080716220223-ca946-e3eed117cded61eb9c2d2805fd07758f883fb85b.gz
2008-07-16 18:02:23 -04:00
zach
fba25b0d98 Twitter-compatible API: public_timeline.atom works
darcs-hash:20080716205218-ca946-98e53e29ed364ea4254ed90303c04b93511877f9.gz
2008-07-16 16:52:18 -04:00
zach
c998c7c601 Twitter-compatible API: public_timeline.rss really works now
darcs-hash:20080716191847-ca946-9a75dd3aa07974408b269b31d1de3e49c5ae2a72.gz
2008-07-16 15:18:47 -04:00
zach
7b2367164e Twitter-compatible API: public_timeline.rss mostly working
darcs-hash:20080716072124-ca946-6714d13d6801eddf84800b884721aac37852993d.gz
2008-07-16 03:21:24 -04:00
zach
8977032e11 Twitter-compatible API: public_timeline.json now works
darcs-hash:20080716060922-ca946-6e973c6fb40ab8c8c930b6dfd916e20f40545471.gz
2008-07-16 02:09:22 -04:00
zach
110ce8c811 Twitter-compatible API: refactor in prep for json, rss, and atom formats
darcs-hash:20080715234131-ca946-8c277e9f5980953b5037af40db38c0546222304d.gz
2008-07-15 19:41:31 -04:00
zach
846a1a4106 Twitter-compatible API: public_timeline.xml more complete
darcs-hash:20080715065850-ca946-6d0e490957830d2f837fd304f70599a636597f9c.gz
2008-07-15 02:58:50 -04:00
zach
efd14edf5c Twitter-compatible API: /statuses/public_timeline.xml sorta works
darcs-hash:20080715031812-ca946-10a94dd3cd96039ad76adc36f0f23d7402768fbe.gz
2008-07-14 23:18:12 -04:00
zach
0c90e94864 First volly at a Twitter-compatible API. Just working out the
detials of 1) Basic Auth and 2) dispatch to the right Action class
files to handle the requests.

You can hit it with...

	http://localhost/laconica/api/public_timeline.json

or to try Basic Auth you can try something like:

	http://nickname:password@localhost/laconica/api/statuses/friends_timeline.xml

Although that actual method isn't done yet, so it should authenticate
and then complain.

darcs-hash:20080712081247-ca946-acd3e0e2762c7d9ff0cb3cd7a53cfdfcc5b26660.gz
2008-07-12 04:12:47 -04:00
Evan Prodromou
c51d1521f0 uniquify the list of reply nicknames (DOH!)
darcs-hash:20080717164042-84dde-191bc47dc302911e4ceae0d3b1e74116bb95bcba.gz
2008-07-17 12:40:42 -04:00
Evan Prodromou
3ea1119e50 define syslog variables in common.php
darcs-hash:20080717163613-84dde-2684415a03d1a2754e148e4921ce39ad075bbc5b.gz
2008-07-17 12:36:13 -04:00
Evan Prodromou
753a03d895 public indexers in config file
darcs-hash:20080717134331-84dde-b63c9b7e318d74e2cfea14cc962ec2d519f20d43.gz
2008-07-17 09:43:31 -04:00
Evan Prodromou
d9b164b3bd default timezone
darcs-hash:20080716210949-84dde-b12d95acdf6f15887fe83fea8f968c972b862be5.gz
2008-07-16 17:09:49 -04:00
Evan Prodromou
4798cd3126 theme server support
darcs-hash:20080716205947-84dde-fa57c8fc140cc479e14b50479df13447abaef31b.gz
2008-07-16 16:59:47 -04:00
Evan Prodromou
0b1528382b default value for avatar server
darcs-hash:20080716205541-84dde-1c98befb2d53613fe1b161d479b8f91adbfb7f6c.gz
2008-07-16 16:55:41 -04:00
Evan Prodromou
265d267d81 remove tag URI stuff; unused and confusing
darcs-hash:20080716205359-84dde-590916f8812c7c03a2b81b3e7aeb021194ac0f25.gz
2008-07-16 16:53:59 -04:00
Evan Prodromou
e858ee49c6 creator_url
darcs-hash:20080716163339-84dde-b6d10e042e3168afa07eb6738dae9714b402dbe2.gz
2008-07-16 12:33:39 -04:00
Evan Prodromou
68cf99a53f use root url of site, not hard-coded identi.ca URL
darcs-hash:20080716152906-84dde-6b28a9c29901274ecef255f8b34839445d6e3d7b.gz
2008-07-16 11:29:06 -04:00
Evan Prodromou
eb9715992c utility function for getting a profile URI
I added a utility function for getting a profile URI. At some point we
need to push commonalities between Remote_profile and User into the
Profile class; single-table inheritance. We do a lot of switching
around for no good reason on users and profiles.

darcs-hash:20080716152511-84dde-6f73d947d11083e7235756fde635e145f02e2483.gz
2008-07-16 11:25:11 -04:00
Evan Prodromou
9b0ae9dd82 slight code hygiene for rssaction
I moved the $creators array from being a global variable to being an
instance variable.

I also changed the URL that was used for the user, based on whether
they're a remote or local user.

Finally, I changed instances of $config to calls to common_config().

darcs-hash:20080716152009-84dde-8d077ab92d1252c252ab722ba887a57b177c8f65.gz
2008-07-16 11:20:09 -04:00
Evan Prodromou
3d96d6f5f7 slightly better error handling
darcs-hash:20080716064736-5a68a-b57c978702037f380e31d2d8825109821a01cef5.gz
2008-07-16 02:47:36 -04:00
Evan Prodromou
c265587612 bad default for email on command-line systems
darcs-hash:20080716055326-5a68a-368860d9a9dfd071e7855c3d05a24b7004f59912.gz
2008-07-16 01:53:26 -04:00
Evan Prodromou
dd96edde77 add some warnings and stuff
darcs-hash:20080716061933-84dde-7bb5f28c9263782bc0535cd8303a9fcad3820134.gz
2008-07-16 02:19:33 -04:00
Evan Prodromou
9e5a8b7e1f lost else
darcs-hash:20080716053532-84dde-0a53cc573ee9a0c20ff88e011d83f15e60f7c825.gz
2008-07-16 01:35:32 -04:00
Dave Barry
8b1bf1e38c Fixup rememberme cookie handling in the POST only case
darcs-hash:20080714050037-08d49-b00c6370c4eed918eee94f828e2d6098b922ba69.gz
2008-07-14 01:00:37 -04:00
Evan Prodromou
a440afda54 sigh
darcs-hash:20080716031718-84dde-74ce45fdb3be03ae7974f76698d43ecf78730f23.gz
2008-07-15 23:17:18 -04:00
Evan Prodromou
c0527f7952 yet more array munging
darcs-hash:20080716031544-84dde-a04b4057e5d7aa394ae061daac47f38089ff5343.gz
2008-07-15 23:15:44 -04:00
Evan Prodromou
542cadd33c lcase tname
darcs-hash:20080716031459-84dde-ccb707bb9059bbc95eabb48cf32edf6dfe803108.gz
2008-07-15 23:14:59 -04:00
Evan Prodromou
af03429704 more array munging
darcs-hash:20080716031346-84dde-2aa160254fd80537ba89df2b39b4560c044d1bab.gz
2008-07-15 23:13:46 -04:00