Commit Graph

2297 Commits

Author SHA1 Message Date
Evan Prodromou
894496f0e8 remove unused noticesWithFriendsWindow from User
darcs-hash:20081022210428-5ed1f-8de35689bfee3b38e6da83328137fb457a0bfdb0.gz
2008-10-22 17:04:28 -04:00
Evan Prodromou
2a44ee0b70 fixup return value of XMPP channel on setting notification
darcs-hash:20081006054425-5ed1f-a241327bad9f5918606543f329a78a6832564f18.gz
2008-10-06 01:44:25 -04:00
Evan Prodromou
9bdcb37d22 fix error and output in on and off commands
darcs-hash:20081006041232-5ed1f-830c7ebc8141fae002fead026407f1499126e021.gz
2008-10-06 00:12:32 -04:00
Zach Copley
06a80c829b Another patch to fix up whitespace conflicts in User.php
darcs-hash:20081005181614-7b5ce-4ab236108fe2570a199120317120d921715fbd19.gz
2008-10-05 14:16:14 -04:00
Zach Copley
e115322473 Fixed up conflict (over white space) in User.php
darcs-hash:20081005181350-7b5ce-1e722af0bd3677b27dd6d100456131a42072dd91.gz
2008-10-05 14:13:50 -04:00
Evan Prodromou
5978fcb601 fix deleted function after synch from Zach
darcs-hash:20081004194218-5ed1f-efd9e82c9f78e19185d8ef6b626f46c5ae6613db.gz
2008-10-04 15:42:18 -04:00
mac65
c08a67094c Add support for since_id and before_id to Twitter API. Ticket #540.
darcs-hash:20081001001233-e558a-3fcc269985050021ec9b44c052206c731cc4689d.gz
2008-09-30 20:12:33 -04:00
Evan Prodromou
7f1639fda1 correct output for Get command
darcs-hash:20081004182028-5ed1f-18e89922d7f59bcb11c784d36f4ed0a104a1c903.gz
2008-10-04 14:20:28 -04:00
Evan Prodromou
a5a3548212 check for notification flags in FavCommand
darcs-hash:20081004174519-5ed1f-1b9f8d1f12c895eacead8703cbfb088a135e810c.gz
2008-10-04 13:45:19 -04:00
Evan Prodromou
0bd199f5cc FaveCommand -> FavCommand
darcs-hash:20081004173957-5ed1f-dd460b4208c1c7c72b92db6cb85f03accfc1d610.gz
2008-10-04 13:39:57 -04:00
Evan Prodromou
cb17be6d98 common_client_error -> common_user_error
darcs-hash:20081004173734-5ed1f-fbb4c09bc9acd26971d0a7ff58769cb77299b371.gz
2008-10-04 13:37:34 -04:00
Evan Prodromou
adc08e9df5 typo in message command
darcs-hash:20081004173609-5ed1f-e5c7fe78c409e9e073634c0bb5ede0f6d46e2f4f.gz
2008-10-04 13:36:09 -04:00
Evan Prodromou
4d30c534d9 different message source per command channel
darcs-hash:20081004173427-5ed1f-2a818562f5aa7143b68a0eab3e9f26cd02926c0b.gz
2008-10-04 13:34:27 -04:00
Evan Prodromou
6406d5f8ef correctly refer to notice as a notice
darcs-hash:20081004170550-5ed1f-69aadc2b9c26d71a1ba039eb92647f4e53c83de9.gz
2008-10-04 13:05:50 -04:00
Evan Prodromou
46b96887e6 correct use of $user to $this->user
darcs-hash:20081004170342-5ed1f-f4b4656d765c67cf95ca3a9193ff64e3220c1526.gz
2008-10-04 13:03:42 -04:00
Evan Prodromou
f072147e4e add channels and use command interpreter in different channels
darcs-hash:20081004163213-5ed1f-684ecb464e843b1bbe456c348e56b40a39a83ecd.gz
2008-10-04 12:32:13 -04:00
Evan Prodromou
c8fd8fa00f fill out commands, move to separate file
darcs-hash:20081004154846-5ed1f-02f7c93248af00fd22e7bb3520179ef1f31da121.gz
2008-10-04 11:48:46 -04:00
Evan Prodromou
76db0310ac move DB_DataObject ini files to more common name.
darcs-hash:20081004142205-5ed1f-7da60ab5a596906acb2fcac2b0a732579d61352a.gz
2008-10-04 10:22:05 -04:00
Evan Prodromou
8c0c7f6a50 basics of the command interpreter
darcs-hash:20081004021442-5ed1f-2f60065150426995707e7cf48ca08d59ec175905.gz
2008-10-03 22:14:42 -04:00
Evan Prodromou
f9bc366190 more specific profile-get is slightly more efficient
darcs-hash:20081004021158-5ed1f-c8f5e68dd411a5fe7a01ae35398914469c377794.gz
2008-10-03 22:11:58 -04:00
Evan Prodromou
67cf415b7e don't try to free faves in User
darcs-hash:20081002162739-5ed1f-7d83c69d986cc704ef1bb9703a105ac04ad38d06.gz
2008-10-02 12:27:39 -04:00
Evan Prodromou
fd0652994c incorrect function call in Fave
darcs-hash:20081002162604-5ed1f-45e9f43e3dbe778462377ebe22f994bdafb4bcdd.gz
2008-10-02 12:26:04 -04:00
Evan Prodromou
37735a35c0 try to use caching functions where possible in User
darcs-hash:20081002162513-5ed1f-fff718be660fa4a8abf58df402a3db30d72d11db.gz
2008-10-02 12:25:13 -04:00
Evan Prodromou
c8392ed58d use pkeyGet for Avatar
darcs-hash:20081002144749-5ed1f-a5503625b811f28a853712d4ddd4a76813f24bc1.gz
2008-10-02 10:47:49 -04:00
Evan Prodromou
2f71f4d95a add methods to Memcached_DataObject for caching compound keys
darcs-hash:20081002144715-5ed1f-97c8362c4fb4f6a761250b68e2f3311bcc5cba4f.gz
2008-10-02 10:47:15 -04:00
Evan Prodromou
f290ae348a remove unused helper function
darcs-hash:20081002144628-5ed1f-0cf7909fd15d5361d391a9bcde723585d83e5ed3.gz
2008-10-02 10:46:28 -04:00
Evan Prodromou
52de32fd82 don't encache on insert; misses timestamps
darcs-hash:20080930130844-5ed1f-217eb0d62fcac4a287ef3e3f213f2ac6bbc70778.gz
2008-09-30 09:08:44 -04:00
Evan Prodromou
d1660b3c4d trying to fix up pages in tags
darcs-hash:20080929230047-5ed1f-1fee58a5bb18c71de7abeef67d89b087d84cc853.gz
2008-09-29 19:00:47 -04:00
Evan Prodromou
bf661a5e84 blow cache in Notice for tags
darcs-hash:20080929222107-5ed1f-37f079239b11b8ab13d8d33c850351f703d51371.gz
2008-09-29 18:21:07 -04:00
Evan Prodromou
11eed225b7 blow the cached streams for tags on a new notice
darcs-hash:20080928181812-5ed1f-708380f239b17b2a53b7279aa4a55af11156a5e8.gz
2008-09-28 14:18:12 -04:00
Evan Prodromou
dbcd7cd29c add some whitespace to the qry for tags
darcs-hash:20080928181121-5ed1f-b8fc9b65bf1180b9a360422caf584d65a5db63c3.gz
2008-09-28 14:11:21 -04:00
Evan Prodromou
8ae0b4a132 sync function names
darcs-hash:20080928181017-5ed1f-0a55e69f2b3c12fa182954855c1f5a5f25812d1b.gz
2008-09-28 14:10:17 -04:00
Evan Prodromou
8d53a7d463 cache tag streams in Memcached, too
darcs-hash:20080928180904-5ed1f-ebf95f6f04ee4128a1ab2bb9a6a06a946926665d.gz
2008-09-28 14:09:04 -04:00
Evan Prodromou
6c9fdb314c remove debugging code for notice streams
darcs-hash:20080928174814-5ed1f-3e431670e52096669e26f6a26edc6ae903763411.gz
2008-09-28 13:48:14 -04:00
Evan Prodromou
f5f9559a60 correct some SQL and add some spaces
darcs-hash:20080928174316-5ed1f-73bc071fed0aff359c94b4213816e8830eba6c50.gz
2008-09-28 13:43:16 -04:00
Evan Prodromou
4bea5b60a0 exact check on memcached results
darcs-hash:20080928173558-5ed1f-0949a60e3c7edb9ad58f818c3121896637033abe.gz
2008-09-28 13:35:58 -04:00
Evan Prodromou
577ee0c115 another debug notice
darcs-hash:20080928172002-5ed1f-a81ae374b920e222183cf9de86e5fed732a0ed5b.gz
2008-09-28 13:20:02 -04:00
Evan Prodromou
3a99883c6c remove noticewrapper
darcs-hash:20080928171634-5ed1f-5a62d8a16dedeff8a9ed5677b2288c9890a008e7.gz
2008-09-28 13:16:34 -04:00
Evan Prodromou
3d332f802b move noticewrapper to classes
darcs-hash:20080928171538-5ed1f-a4e930adcc9aa5d25f47a04952b181a1546c22d3.gz
2008-09-28 13:15:38 -04:00
Evan Prodromou
1dfebc6147 add some debugging stuff to Notice
darcs-hash:20080928171407-84dde-9c6944a42a6e8e7f2fc90138336a86ae81c33763.gz
2008-09-28 13:14:07 -04:00
Evan Prodromou
babac77652 lost paren in Notice
darcs-hash:20080928132846-5ed1f-cb542b90cdebcb2af95e6e225c3da157a5526741.gz
2008-09-28 09:28:46 -04:00
Evan Prodromou
d3d5942ae3 change arguments to Notice::publicStream
darcs-hash:20080928132747-5ed1f-9e9b6d8b91f855758ca4b269418f6d5d6e4a2ae0.gz
2008-09-28 09:27:47 -04:00
Evan Prodromou
02a3f24b92 single function for important streams, with memcached support
I moved the 4 streams for a user (with friends, faves, replies,
personal) into functions on the User object. Added a helper function
in Notice for making notice streams. Also, will fetch notice streams
out of the memcached server, if possible. Made the API, RSS, and HTML
output all use the same streams (hopefully cached).

Added some code to Notice to blow the cache when a notice is posted.
Also, added code to favor and disfavor actions to blow the faves
cache, too.

darcs-hash:20080928120119-5ed1f-ead542348bcd3cf315be6f42934353154402eb16.gz
2008-09-28 08:01:19 -04:00
Evan Prodromou
a8624b2b72 slightly better check on $orig in update()
darcs-hash:20080927123507-5ed1f-57bc3843352007ae47689a94483d315984276b45.gz
2008-09-27 08:35:07 -04:00
Evan Prodromou
82084ab74c move memcache connections to util.php
darcs-hash:20080926200102-5ed1f-debbc18981424d7724277ac82e5fbfd5e797090e.gz
2008-09-26 16:01:02 -04:00
Evan Prodromou
15c0fb7abd handle multiple memcached servers
darcs-hash:20080926195501-5ed1f-b811fac3320a0b6d8002771caa9463ba9a0889a1.gz
2008-09-26 15:55:01 -04:00
Evan Prodromou
4af31ca98a wasn't returning results of update
darcs-hash:20080926165310-5ed1f-e6d17801c4e9f58cbbbfa774e79583221fdca01f.gz
2008-09-26 12:53:10 -04:00
Evan Prodromou
125953be31 add some more info on notice update
darcs-hash:20080926165201-5ed1f-8efd0369f1f367dacca450ac3bffd755ea841f6f.gz
2008-09-26 12:52:01 -04:00
Evan Prodromou
f951b91693 log a db error for inserting the notice
darcs-hash:20080926165029-5ed1f-60059ffeac9a39326fc6286faf4ac13c35127f25.gz
2008-09-26 12:50:29 -04:00
Evan Prodromou
85c0d71e1f another false-for-error
darcs-hash:20080926164532-5ed1f-1ed3922f205dea0805c7a77618fdf8c9e1a4de02.gz
2008-09-26 12:45:32 -04:00
Evan Prodromou
92e1c41f63 Memcache returns false on cache miss
darcs-hash:20080926164413-5ed1f-d0bbbab5215e43d182e8807fc9fec6cc86dae1ae.gz
2008-09-26 12:44:13 -04:00
Evan Prodromou
98add9803b don't record null key values
darcs-hash:20080926164021-5ed1f-833db670e260c68fc02b0a2a60a2829f247742a1.gz
2008-09-26 12:40:21 -04:00
Evan Prodromou
f01f006615 hack to make keys work
darcs-hash:20080926163555-5ed1f-b2c7f8b9fde0af801e33dc92e4177d1ed4f80159.gz
2008-09-26 12:35:55 -04:00
Evan Prodromou
d3f8cd39a1 handle one-argument calls to staticGet
darcs-hash:20080926163357-5ed1f-49bd6d85d34d0e6ac3514c06d99e5b5b9a78b0fc.gz
2008-09-26 12:33:57 -04:00
Evan Prodromou
88b19d8ab5 better deletes and key names
darcs-hash:20080926163030-5ed1f-c2d375d8a8c2097456ffb3e09e55daacae2cc903.gz
2008-09-26 12:30:30 -04:00
Evan Prodromou
156207d58d try to make some static/non-static stuff work right
darcs-hash:20080926162347-5ed1f-ddb17266f5a60ee85db5fdfb9c8bd12311da3c73.gz
2008-09-26 12:23:47 -04:00
Evan Prodromou
ded5e3dd6c better handling of staticGet
darcs-hash:20080926161946-5ed1f-496b47c72a77fb26610af465af9d9e26c488d315.gz
2008-09-26 12:19:46 -04:00
Evan Prodromou
8da61dc1d3 path correct in require_once for memcached
darcs-hash:20080926161824-5ed1f-b4fb53e5ca65bb099aabbba6ea60a13496f669a2.gz
2008-09-26 12:18:24 -04:00
Evan Prodromou
011ea46022 rename cached object file
darcs-hash:20080926161652-5ed1f-45aee985c6755642d346b864926b2346900c4055.gz
2008-09-26 12:16:52 -04:00
Evan Prodromou
f6615f70e5 prepend Memcached_DataObject require with INSTALLDIR
darcs-hash:20080926161540-5ed1f-2e9dc6f2297c612208214a6d52f36ce0dd7aa4de.gz
2008-09-26 12:15:40 -04:00
Evan Prodromou
e2e6bbb298 caching layer for DB/DataObject
I added a new class, Memcached_DataObject, that will (optionally)
fetch data out of a memcached server if it's available. This only
works on 'staticGet'.

Methods that write to the database (insert, update, delete) will clear
and set the cache correctly, too.

darcs-hash:20080926160941-5ed1f-922de078b4c1941853ad014edf9a17fae486f8cf.gz
2008-09-26 12:09:41 -04:00
Evan Prodromou
0ee3d6ccb0 user -> this
darcs-hash:20080923181648-5ed1f-a30ef5c24b8b9e49e5c8ba8e023574bb7d9b1ef3.gz
2008-09-23 14:16:48 -04:00
Evan Prodromou
858e55f5b4 change how Foreign_link fetches, and fix mixup between user-ids and foreign-ids in twittersettings
darcs-hash:20080923054413-5ed1f-a317e07925101215e87d2db0c574d20c1cfac665.gz
2008-09-23 01:44:13 -04:00
Evan Prodromou
e24425d44e correct a couple of bugs
darcs-hash:20080922190937-5ed1f-9439cd9cff178323ac1445f33e2520260b4b267e.gz
2008-09-22 15:09:37 -04:00
Evan Prodromou
a4cca01451 save created date
darcs-hash:20080917191652-5ed1f-f066e906146146cfe0ffb80055ea15d71f491f3c.gz
2008-09-17 15:16:52 -04:00
Evan Prodromou
ea8fce0052 fix missing variable in save-new-message
darcs-hash:20080917190306-5ed1f-f2d339ce6d5c7c32940046012a0d4702be6eade2.gz
2008-09-17 15:03:06 -04:00
Evan Prodromou
e42de1ccc1 fancy urls for show message, new message
darcs-hash:20080917180244-5ed1f-06e2ac2d8f094eacd12b316794b0599b57d76596.gz
2008-09-17 14:02:44 -04:00
Evan Prodromou
130ba28886 newmessage and showmessage
darcs-hash:20080917174741-5ed1f-c090055487bab0df52d25ad6550d3850ef5f7661.gz
2008-09-17 13:47:41 -04:00
Evan Prodromou
809c4a9d31 rationalize with ciarang's pgsql changes
darcs-hash:20080916214134-84dde-ba11f44676d876cf0f29773c60fa95676ad07ebd.gz
2008-09-16 17:41:34 -04:00
CiaranG
ab68c61a12 PostgreSQL: Quote table name in manually formed query - fixes profile settings update
darcs-hash:20080915070256-f6e2c-344d1ca1ca158b9ab5f558804ad129c1ef9d6a7a.gz
2008-09-15 03:02:56 -04:00
CiaranG
26634ef0a0 Initial support for PostgreSQL
darcs-hash:20080909072224-f6e2c-881bd2e7fb032f336fecae9ca5ce527dd821d3dc.gz
2008-09-09 03:22:24 -04:00
Zach Copley
6eb84f0f03 Disallow 'api' nickname
darcs-hash:20080909000650-7b5ce-c7eb990db81620b83201c0e361af9dfcdd9c2b89.gz
2008-09-08 20:06:50 -04:00
Zach Copley
412eae10fe Twitter integration - Notices now broadcast (directly) to Twitter from linked accts.
darcs-hash:20080828192509-7b5ce-8387c67500c082eb5a0107c0f78d4cf5620825af.gz
2008-08-28 15:25:09 -04:00
Zach Copley
bf14709fe2 Twitter integration - support for new foreign_link table and prefs now save/update
darcs-hash:20080828072205-7b5ce-16510357343f1d9a3acc696f39a28a723005f3a4.gz
2008-08-28 03:22:05 -04:00
Zach Copley
3cf6cef9b9 Twitter integration - Foreign_user::getForeignUser() to retrieve
Foreign_user by multi-part key: user_id + service

darcs-hash:20080827005444-7b5ce-2b53a2c1a917539248b68f21f94e0f9f5fe810f2.gz
2008-08-26 20:54:44 -04:00
zach
661202be3e Twitter-integration - Twitter settings tab now saves Twitter credentials
darcs-hash:20080826225615-462f3-8d881eda7be43623e10b83e8d1e157f4096734cd.gz
2008-08-26 18:56:15 -04:00
Evan Prodromou
7416e50daa inbox and outbox for direct messages
Added an inbox and outbox for direct messages.

Factored common code to mailbox.php. Factored common code with
stream.php to personal.php.

darcs-hash:20080916195346-84dde-b5c846f713a970c41fd1b0671cb333e91f3cb920.gz
2008-09-16 15:53:46 -04:00
Evan Prodromou
d57b39e8a5 Database and classes for direct messages
darcs-hash:20080916185126-84dde-2983718fc2ab11874c839489290b8a827985274d.gz
2008-09-16 14:51:26 -04:00
Evan Prodromou
4476a4286f rationalize with repository version
darcs-hash:20080916174400-84dde-63781c5cd6a7c9a3dbc765dfa15084e3372effd5.gz
2008-09-16 13:44:00 -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
Evan Prodromou
ead192fa41 add a foreign_link table with prefs for the link
darcs-hash:20080827032423-84dde-90a4d5931c2292c9ec5febd0c90ed18f6ab93e90.gz
2008-08-26 23:24:23 -04:00
Evan Prodromou
79f4469db9 Invite -> Invitation
darcs-hash:20080827010515-84dde-f4dd776209a0aa4f6a7e9d6ac1de46d83ff54650.gz
2008-08-26 21:05:15 -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
3d48ae94e6 added a created timestamp to invitations
darcs-hash:20080826023116-84dde-7d80c624b2dcfa637f58509c1d5ff7eca371512c.gz
2008-08-25 22:31:16 -04:00
Evan Prodromou
ba0dd0a4c3 data classes for invitations
darcs-hash:20080823191015-84dde-05263d6e9a2535c726b98aacc5f3269f66fe22bd.gz
2008-08-23 15:10:15 -04:00
Evan Prodromou
a64330b77c blow subscriptions cache when the user deletes a notice
darcs-hash:20080920175339-84dde-e46d0e7b86e0752e8331cdfba26257b3ff9e601c.gz
2008-09-20 13:53:39 -04:00
Evan Prodromou
d53a4123f3 can actually take all the data in the window
darcs-hash:20080920174700-84dde-a00751e0eafd9adc4580924bb41c11b0649b7fe5.gz
2008-09-20 13:47:00 -04:00
Evan Prodromou
1a81057985 fixup SQL code
darcs-hash:20080915073412-84dde-3c9cfb1d2d4933dbaff002b30fffb9e7d3d5e1d7.gz
2008-09-15 03:34:12 -04:00
Evan Prodromou
a6974a6f84 fix cache deletion code
darcs-hash:20080915073215-84dde-34bdd1a40ce310bca5bbb6f11ed4df79c7915cb2.gz
2008-09-15 03:32:15 -04:00
Evan Prodromou
7334add156 compress window-getting to one function
darcs-hash:20080915071835-84dde-173e6afde44c3348c3314c638e2a67dfb333c011.gz
2008-09-15 03:18:35 -04:00
Evan Prodromou
1806469ba2 $INSTALLDIR -> INSTALLDIR
darcs-hash:20080915070413-84dde-5e942675dec105b297889a58ea770fb4b337307d.gz
2008-09-15 03:04:13 -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
Ori Avtalion
77a96747d7 Disallow 'tag' and 'tags' as usernames. Fixes ticket #584
darcs-hash:20080905114534-57fc3-feee793696ddf3d5bbb1ae7f326d9d88dc961e60.gz
2008-09-05 07:45:34 -04:00
Ori Avtalion
8f33885e41 Some Notice::saveNew cleanups.
* No need to check $source's value before inserting
* No need to update the notice if the $uri was known in advance

darcs-hash:20080902173804-57fc3-496ceaf8192694db43e62f7af1f57785a1a16a01.gz
2008-09-02 13:38: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
Evan Prodromou
ca1f639fd6 log transport when claiming a notice
darcs-hash:20080830054933-84dde-58cc7aa6947612cda9987d532d85d9dd81e32410.gz
2008-08-30 01:49:33 -04:00
Evan Prodromou
6b1f391306 $this->log to common_log in Queue_item
darcs-hash:20080828004503-84dde-c406172d750d0a5452d5cc62ecd7b27db381c575.gz
2008-08-27 20:45:03 -04:00
Evan Prodromou
35ed6f473c change queue_item to use a compound primary key
Breaking up to use multiple queue handlers means we need multiple
queue items for the same notice. So, change the queue_item table to
have a compound pkey, (notice_id,transport).

darcs-hash:20080827211239-84dde-db118799bfd43be62fb02380829c64813c9334f8.gz
2008-08-27 17:12:39 -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
b1ff7d7a2b fix error storing uris of remote notices
darcs-hash:20080826211108-84dde-b277bdb1476b9cec0c0d93fa8d565c4642ba16c8.gz
2008-08-26 17:11:08 -04:00
Evan Prodromou
08a3c5ac7f use better SQL date, fix security problem with OpenID logins
darcs-hash:20080825184104-84dde-5735c1791002a12c3417603dc85da31ea868f263.gz
2008-08-25 14:41:04 -04:00
Evan Prodromou
21e4fb864f change DataObject_Cast to use sql_now
darcs-hash:20080825183005-84dde-c1d24a057d9545cc6d1f0dc21c5af4ea7316d8e9.gz
2008-08-25 14:30:05 -04:00
Evan Prodromou
c2a2da6966 add database tables for foreign services
darcs-hash:20080819221214-84dde-15683b1e146b9e29064aa8ae04bc7daebfaf2e92.gz
2008-08-19 18:12:14 -04:00
Evan Prodromou
47d15bc662 first step towards adding favorites to the system
darcs-hash:20080813142637-84dde-9530d153eceb6bbedbb692755aa5c96d65d8e071.gz
2008-08-13 10:26:37 -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
7554f2561c move user registration to a single static method
darcs-hash:20080814002038-84dde-8505d4e083056b770db128129a95be639d8e7f0a.gz
2008-08-13 20:20:38 -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
9676315b2e extend length of source for notices
darcs-hash:20080731152731-84dde-dc6bf652c38ae9a52950e65d7cb310f870a70640.gz
2008-07-31 11:27:31 -04:00
Evan Prodromou
c21ed78fa7 save the source
darcs-hash:20080730025052-84dde-9669e6a7df50bf5762bd3e175ed1471bff9d446c.gz
2008-07-29 22:50:52 -04:00
Evan Prodromou
d79dc8344b refactor notice-adding code to one static method on Notice
darcs-hash:20080730022856-84dde-f19e4ff5d5ae2603b63b8aebd8f878ec90b3ce22.gz
2008-07-29 22:28:56 -04:00
Mike Cochrane
49f30e23a3 Resolve conflicts
darcs-hash:20080722205315-533db-7ebf783855b8f1b302c52ec431b4025ef0983c82.gz
2008-07-22 16:53:15 -04:00
mikec
a4fa34cecb Resolve conflicts after pull from evan
darcs-hash:20080721135637-edabd-cca33bc0a0936423b9fd2ffdf9413236123d680e.gz
2008-07-21 09:56:37 -04:00
Mike Cochrane
b1ea12de56 Changse to ini file that I always forget to record
darcs-hash:20080721123243-533db-bf3664c2cb9d2cd37c633e13ab918994c57d01a0.gz
2008-07-21 08:32:43 -04:00
mikec
334c652e80 Publish MicroIDs for email and mpp on profile and notice pages.
darcs-hash:20080721120036-edabd-838335c0e23c80a657d353955b25b52a9a8624b2.gz
2008-07-21 08:00:36 -04:00
Mike Cochrane
12e610a223 Regenerate class file for language column
darcs-hash:20080720100253-533db-bc2605d57e265cfa4e38866b977c81302d4fb1c5.gz
2008-07-20 06:02:53 -04:00
Mike Cochrane
02325570a6 Update for langauge column
darcs-hash:20080720095651-533db-fc0ab9f07e9d354c3b73a1f90bdc3224209651f2.gz
2008-07-20 05:56:51 -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
Mike Cochrane
224a3ad82c Missing ini settings for notice_tag table
darcs-hash:20080720080801-533db-ac529a873885e7142e6e0450479bf59aafb6c058.gz
2008-07-20 04:08:01 -04:00
Mike Cochrane
5d84485001 First cut at hastags support.
darcs-hash:20080720055702-533db-193ed842b0d0a952bef71a3c5287213ada0ef15c.gz
2008-07-20 01:57:02 -04:00
Evan Prodromou
471e4056f4 add notice sources (currently unused)
darcs-hash:20080722164639-84dde-19c6300516443862da016120cf9eed40e5972b6d.gz
2008-07-22 12:46:39 -04:00
Evan Prodromou
42ac47915b don't get a count from query
darcs-hash:20080722163116-84dde-3b17b13022b3d97483e911a99ebd23cc4b8da784.gz
2008-07-22 12:31:16 -04:00
Evan Prodromou
9515303b14 notices and counts
darcs-hash:20080722162332-84dde-75801a271f50789377aa7a3467223286c372ec6c.gz
2008-07-22 12:23:32 -04:00
Evan Prodromou
97b1552c9a another whitespace SQL error
darcs-hash:20080722161752-84dde-aaf5762ef3d376f0e8f335ff8f7811e3162d33fb.gz
2008-07-22 12:17:52 -04:00
Evan Prodromou
2f73f8a5e2 whitespace in SQL
darcs-hash:20080722161712-84dde-58d69d8861ad6be471ab2403cd5d23942c27eac6.gz
2008-07-22 12:17:12 -04:00
Evan Prodromou
81e6d50c53 blow off DB_DataObject joins, write SQL from scratch
darcs-hash:20080722161549-84dde-fedeed101bdef172f4a7aabf2278f1a2277a6d88.gz
2008-07-22 12:15:49 -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
Evan Prodromou
e1361cdf48 mark notices as local
darcs-hash:20080722141614-84dde-b80c6945fdb90a5f67acaba65a1e4c2b306b1f8e.gz
2008-07-22 10:16:14 -04:00
Evan Prodromou
98af7402c7 update keys for incomingemail
darcs-hash:20080721085641-84dde-9b29902977f78714188ba5fe8c37b4d603c3c63b.gz
2008-07-21 04:56:41 -04:00
Evan Prodromou
f538ab414b save changes to smsemail
darcs-hash:20080721044604-84dde-c3e920bd56992c4e6a77625767b4599bacc74434.gz
2008-07-21 00:46:04 -04:00
Evan Prodromou
0c0ac46f43 add flag for sms replies
darcs-hash:20080721040551-84dde-f6c76d806969ccaa772da31235baaf7d9b065c15.gz
2008-07-21 00:05:51 -04:00
Evan Prodromou
3345f54186 add sms email address to user
darcs-hash:20080721035919-84dde-e06f9094902522d2cd0ad71d65d565293f19db4a.gz
2008-07-20 23:59:19 -04:00
Evan Prodromou
009a8efaf1 $true not the same as true
darcs-hash:20080720233308-84dde-f9de49360dd366690bd6e3bb55cb5fe632dd7298.gz
2008-07-20 19:33:08 -04:00
Evan Prodromou
d294c91d82 add autosubscribe
darcs-hash:20080720201620-84dde-f782e01bdf7f267b3b02e20e851aa7b643ed8590.gz
2008-07-20 16:16:20 -04:00
Evan Prodromou
48ac5b9e85 add autosubscribe flag to users
darcs-hash:20080720200530-84dde-dade3117bdf510c1880d35f27bd9352995725175.gz
2008-07-20 16:05:30 -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
Evan Prodromou
53f59ca9d2 add a transport flag to queue items
darcs-hash:20080719140906-84dde-9fcac26ee544ad53091808256f70b1745ac27a70.gz
2008-07-19 10:09:06 -04:00
Evan Prodromou
9a3f73a672 mailer daemon start
darcs-hash:20080717132533-84dde-4ada5d4a103d92b9767726e723b26246205b9cbd.gz
2008-07-17 09:25:33 -04:00
Evan Prodromou
c1b0cdf909 add nonce links
darcs-hash:20080718041549-84dde-fbf9fe830b5f4be5cce5124522f923b83de3a582.gz
2008-07-18 00:15:49 -04:00
Evan Prodromou
6ad6e4aa50 hand-built links.ini
darcs-hash:20080718013444-84dde-7076bec8ccdf34ef5d31efd7bbbbfd29a1f3dab3.gz
2008-07-17 21:34:44 -04:00
Evan Prodromou
86428cbddb rebuild classes based on DB change
darcs-hash:20080715222026-84dde-6ceebbb94455aec41907896ab65294ce3f79492f.gz
2008-07-15 18:20:26 -04:00
Evan Prodromou
61487d4cd0 move email settings to its own tab
darcs-hash:20080715221826-84dde-8a3692f95199818c11dbb0be159d07f1ab10cf6a.gz
2008-07-15 18:18:26 -04:00
Evan Prodromou
499afd8c22 replies from people you're not subscribed to over Jabber
darcs-hash:20080715195513-84dde-454419c971015be385d9c4c35f7acbee419031f9.gz
2008-07-15 15:55:13 -04:00
Mike Cochrane
bdd0091e70 Sort notices by date then id so they are in the correct order when there are multiple in the same second
darcs-hash:20080713065009-533db-69d7f21d152552d7e994a0c7c7615b61a8ea592c.gz
2008-07-13 02:50:09 -04:00
Mike Cochrane
98cf96b3e4 Resolve conflict properly
darcs-hash:20080710045942-533db-209fce2e2e89dfc809c9b25e93fb428c585f29e4.gz
2008-07-10 00:59:42 -04:00
Mike Cochrane
7e38142d4a Resolve conflicts and convert _t( to _( where it was introduced again.
darcs-hash:20080710045126-533db-ffd9bcfe1295b3a376579ed7cd2278d5597b1884.gz
2008-07-10 00:51:26 -04:00
Mike Cochrane
4b656f47df Merge conflicts and kill a whole lot of trailing whitespace on lines.
darcs-hash:20080709224630-533db-b5399baef280133858dac9b89c2cd6a2aba9f861.gz
2008-07-09 18:46:30 -04:00
Evan Prodromou
335d5f2e89 add 'avatar' to blacklisted names
darcs-hash:20080711171113-84dde-56b61d305e207bdb7d1fa844356fbc41e5bd43b9.gz
2008-07-11 13:11:13 -04:00
Evan Prodromou
62747030ca add fancy urls for search
darcs-hash:20080709223144-84dde-10f7f9db7dc5ba200fdeea4d6c1f277e71c54c16.gz
2008-07-09 18:31:44 -04:00
Evan Prodromou
816262d488 rebuild DB_DataObject classes for new structure
darcs-hash:20080709200711-84dde-b6a9e403ab50ef5a6497a25a756ed63c373f0402.gz
2008-07-09 16:07:11 -04:00
Evan Prodromou
8c9d88e26f check for profile
darcs-hash:20080707062347-84dde-fb13c5548d962092877fc374cea3f81ec2cca43e.gz
2008-07-07 02:23:47 -04:00
Evan Prodromou
8d3ec9c920 twiddle a few bits to make replies work correctly
darcs-hash:20080707054358-84dde-916977a2af4f792e0dc9e02a9f5344ec60911319.gz
2008-07-07 01:43:58 -04:00
Evan Prodromou
7231c58e22 some twiddles in the db for replies, plus the class
darcs-hash:20080706223839-84dde-269eba758843e45265a08379356cdfd84701e2cd.gz
2008-07-06 18:38:39 -04:00
matthew.gregg
0b21ac3dd7 First pass at replies support http://laconi.ca/PITS/00080
Doesn't handle a reply to a user that has never updated.

darcs-hash:20080623030837-982e4-532ccd8899fd8be00575f8840da0defb44cd56f8.gz
2008-06-22 23:08:37 -04:00
Evan Prodromou
b1903700d1 fixes on bourdin for confirm claims
darcs-hash:20080706090309-5a68a-188f45e295e43933595dadfa0c2cfa71b6573386.gz
2008-07-06 05:03:09 -04:00
Evan Prodromou
13ac93481c add queueing variables to confirm_address
darcs-hash:20080706031234-84dde-42e06c969ef6e8a63c527c197d7f074f7346d223.gz
2008-07-05 23:12:34 -04:00
Evan Prodromou
e45a97a20f don't treat notice_id like a sequence
darcs-hash:20080704082418-84dde-5f314d3f0c72756f480599913a4aab6c0404dcc6.gz
2008-07-04 04:24:18 -04:00
Evan Prodromou
784299c257 add a queued notice item
darcs-hash:20080704040746-84dde-36803f820ea7c238613cf5728c59a18ff1eb442d.gz
2008-07-04 00:07:46 -04:00
Evan Prodromou
5df185a5ed add table for remember me codes
darcs-hash:20080624020205-34904-be536546e7058ed77a6d45be4f91ffe201b3448e.gz
2008-06-23 22:02:05 -04:00
Evan Prodromou
ae40dfe842 add imsettings to menu
darcs-hash:20080623223641-34904-2758e19c70026a0c169e99d86481d87b0b4bc79c.gz
2008-06-23 18:36:41 -04:00
Evan Prodromou
d758c11784 disallow nicknames on a blacklist
darcs-hash:20080622180437-34904-4b6313f6fd8845232031663c5c2df00dff725183.gz
2008-06-22 14:04:37 -04:00
Evan Prodromou
200124eca3 auto-increment primary key for SMS carrier
darcs-hash:20080622164013-34904-4119be65edb5fc09dcbe11edf17c3401f1d19a33.gz
2008-06-22 12:40:13 -04:00
Evan Prodromou
4fd1f6246d correctly use Confirm_address
darcs-hash:20080622161607-34904-d8e042b80fe6acd3cb6ad763216a0b1817752cac.gz
2008-06-22 12:16:07 -04:00
Evan Prodromou
b19c86bd00 change Confirm_email to Confirm_address
darcs-hash:20080622155028-34904-4861ffd6927b05c35614b1ce8c51eec73e0bc9ac.gz
2008-06-22 11:50:28 -04:00
Evan Prodromou
1cab6c7d50 strcmp for comparison
darcs-hash:20080622153220-34904-119cea6c5dbe20e33569287cf9632c07e9768b10.gz
2008-06-22 11:32:20 -04:00
Evan Prodromou
acf562b3dd use updateKeys() for updating the user
darcs-hash:20080622151611-34904-1d952df08b5247ab391bb76fd50d7b90498f0c96.gz
2008-06-22 11:16:11 -04:00
Evan Prodromou
2b258b1a9a use internal quoting code for manual query
darcs-hash:20080622150633-34904-2e26094807f989a62261f2247d0a53995eb5bac5.gz
2008-06-22 11:06:33 -04:00
Evan Prodromou
73921da0f3 add a method to update key fields in User
darcs-hash:20080622145644-34904-92549d9bb68251214c4dc370f6e2a56f516ceecb.gz
2008-06-22 10:56:44 -04:00
Evan Prodromou
bf0be3ddb7 confirm email addresses
darcs-hash:20080620051536-5ed1f-231e427832dd20c861eb7a6dc1171315e90f455b.gz
2008-06-20 01:15:36 -04:00
Evan Prodromou
4aedce6864 do some commits
darcs-hash:20080619033212-84dde-2f7227fe16c7015b03121424520ebd74d4b96762.gz
2008-06-18 23:32:12 -04:00
Evan Prodromou
5f0bf3d88e user_id in user_openid is not unique
darcs-hash:20080618110126-84dde-4dd97a6e08fb95b0f9860edda45ccaedb3958b20.gz
2008-06-18 07:01:26 -04:00
Evan Prodromou
252c4098c4 finish openid
Added some code to make finishing the OpenID login work.

Changed the OID storage so that there's a "canonical" URL and a
display URL. This is because of i-names, which is annoying.

If the login succeeds, we try to find a local user associated with the
canonical URL. If they don't exist, we let the user either create a
new account, or login to an existing account and connect to it.

A totally unrelated change is that the DB engine now uses InnoDB.

darcs-hash:20080618052638-84dde-909e51dbd5b9eadadf18cd010868baa18ea2349a.gz
2008-06-18 01:26:38 -04:00
Evan Prodromou
c02a01914a start openid rp integration
darcs-hash:20080617133501-84dde-adec156ac58b84cce41ae0e9bde58cf7637e6c42.gz
2008-06-17 09:35:01 -04:00
Evan Prodromou
024dc6c098 email notification on new subscriptions
darcs-hash:20080615030202-84dde-ebed7919c227ce280dc818f301e15001eb8b5926.gz
2008-06-14 23:02:02 -04:00
Evan Prodromou
2bc198432c hide warnings when unlinking an avatar file
darcs-hash:20080612185322-84dde-b14d4cbc90f3b5b04931e4b5d3c20f027abb609c.gz
2008-06-12 14:53:22 -04:00
Evan Prodromou
6af287f554 passing id to the avatar filename function
darcs-hash:20080605195500-84dde-307ed9c01b6efa0055908f408d3032ce7d7a9870.gz
2008-06-05 15:55:00 -04:00
Evan Prodromou
bd4ec5d147 setOriginal() is an instance method
darcs-hash:20080605195222-84dde-c9e00b0ef0f8fed4ea5d4c088d52e39589b6bb02.gz
2008-06-05 15:52:22 -04:00
Evan Prodromou
56021d9572 move avatar scaling and saving to Avatar and Profile
Extracted the code for setting a new original avatar to the Profile
class, and moved some of it to Avatar, too. This makes it easier to
have the same functionality whether an avatar is set using the profile
settings (for our users), or on a remote subscription. Necessitated
changing the filenaming function to just take an ID.

darcs-hash:20080605193708-84dde-a441cc0474951ce7f1a1da9310b5145c0b7c3070.gz
2008-06-05 15:37:08 -04:00
Evan Prodromou
9977591b78 server-side storage model
First pass at a server-side storage model. New tables for consumers,
tokens, and nonces, with associated classes. An OAuthDataStore class
interfaces with the OAuth.php library to enable server logic.

Some additional work to get pretty-OK random number generation into
the utilities library. Use /dev/urandom if available; else use
mt_rand().

darcs-hash:20080527200721-84dde-308c047af2ebc2c4d753c1e1e24af20fef862a7e.gz
2008-05-27 16:07:21 -04:00
Evan Prodromou
7979176e14 generate classes for db schema with URIs
darcs-hash:20080522184109-84dde-0d13fc6890f85613554f5dd64b1baa67bbcaa8f6.gz
2008-05-22 14:41:09 -04:00
Evan Prodromou
46b3f1c3a7 remove validation code
darcs-hash:20080521110253-84dde-e8d6f62225bb56f5e08b28b35d23ccfbe56984fd.gz
2008-05-21 07:02:53 -04:00
Evan Prodromou
41a149b74a fixup footer menu and fix syntax error in profile.php
darcs-hash:20080520210437-84dde-1a8472f5b5cdde042975d669b0fdca5d6984f330.gz
2008-05-20 17:04:37 -04:00
Evan Prodromou
e1f04061b9 ease up on the validation
darcs-hash:20080520210119-84dde-a9b74a933bd45b2e6b2f96a53a1be55caa0f7912.gz
2008-05-20 17:01:19 -04:00
Evan Prodromou
5137eb20d8 fix validation of url
darcs-hash:20080520192634-84dde-2394dbf8767ff886817a5f20f5c9064ea3a1bc79.gz
2008-05-20 15:26:34 -04:00
Evan Prodromou
52600ce0b0 trim whitespace
darcs-hash:20080520191412-84dde-a607dbe848279639630edd1ab4616d05cc2318d1.gz
2008-05-20 15:14:12 -04:00
Evan Prodromou
5d1a6f0fef add validation methods to classes
darcs-hash:20080520185756-84dde-290bc12cddfc1738a96385e95821d466eff11196.gz
2008-05-20 14:57:56 -04:00
Evan Prodromou
c87951f895 update avatar table
darcs-hash:20080519134057-84dde-d30a178de9e3e7d6ced21e9c395dfac545b3d343.gz
2008-05-19 09:40:57 -04:00
Evan Prodromou
95717c2b16 change how the user profile is fetched
darcs-hash:20080517192001-84dde-fa2b16b7aeacab52c7697e14182fc72d2022bfcc.gz
2008-05-17 15:20:01 -04:00
Evan Prodromou
3b14b7901c fixes to make it all lint
Ran everything through php -l, found out that it didn't compile.

So: fixed the am-I-running-in-Laconica check at the top of each file.
Some syntax fixes in shownotice, showstream, common.

darcs-hash:20080517154701-84dde-8d38da89c5b9cb3b40704adb04a4de880c204181.gz
2008-05-17 11:47:01 -04:00
Evan Prodromou
fac522f4d7 settings and avatars
Did considerable work on the settings section.

Redesigned the DB to allow avatars. Each avatar image has a size and
an URL. There can be multiple avatars per profile, just different sizes.

Added accessors in Profile for avatar. Show the avatar in lots of
places, where it makes sense. Constants for avatar sizes in common.php.

darcs-hash:20080515162844-84dde-fe0630366e247c02ca8ca9d1cc6b963cfce57a26.gz
2008-05-15 12:28:44 -04:00
Evan Prodromou
b6cfd2dffe license block for source code
Added GNU Affero GPL license block to source code.

Added name "LACONICA". I think it should work fine.

darcs-hash:20080514192648-84dde-a430dc438a4e3741c62ccf30ee7f85ecc968b159.gz
2008-05-14 15:26:48 -04:00
Evan Prodromou
0036795582 deny access to include files
darcs-hash:20080514190009-84dde-30f0f1b5955d71cd85563e12078ab02bf8645524.gz
2008-05-14 15:00:09 -04:00
Evan Prodromou
67a347bafb considerable coding
darcs-hash:20080514145436-84dde-d0994cb35d3fe8545d3f08abeec3cdfe7559c67d.gz
2008-05-14 10:54:36 -04:00
Evan Prodromou
f0a30cc89d read-only stuff
darcs-hash:20080509021604-84dde-f785fc09dd435fc12741b3a75184e2425721d03d.gz
2008-05-08 22:16:04 -04:00
Evan Prodromou
0fa97d6e2e add data objects
darcs-hash:20080507171542-84dde-232baccc10f015e8c0e80edf0ceea4aa5c85b4b7.gz
2008-05-07 13:15:42 -04:00
Evan Prodromou
c47de27c11 beginnings of PHP
darcs-hash:20080507164807-84dde-ef7d205a0fedca42064a337786d2f203cdcc5a45.gz
2008-05-07 12:48:07 -04:00