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