Commit Graph

442 Commits

Author SHA1 Message Date
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
Evan Prodromou 06b6a27d7d cached id streams can be empty, compare against false 2010-01-04 10:03:57 -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 52fbd10162 incorrectly used empty() instead of isset() for a variable that could be 0 2010-01-02 08:36:47 -10:00
Evan Prodromou 05e2b4d92d Merge branch 'master' into 0.9.x 2009-12-29 12:09:17 -08:00
Evan Prodromou 45c4078ca9 notices are immutable, use created date for updated 2009-12-28 17:51:04 -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
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 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 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
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 da30890988 add repeat_of column to notice class 2009-12-11 10:22:56 -05:00
Evan Prodromou 45408142e9 reorder notices when not using memcached 2009-12-08 21:02:54 -05:00
Evan Prodromou 72c82a2e29 Basic function to store forwards and redistribute 2009-12-08 16:30:33 -05: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 e85e47b509 Log database errors when saving notice_inbox entries 2009-11-27 14:20:57 -08:00
Zach Copley 638df94f88 Need to check the Profile rather than the User. 2009-11-17 08:48:16 -08: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
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
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 0ab17f382b * [Cc]an't -> [Cc]annot
* [Cc]ould't -> [Cc]ould not
2009-11-08 23:22:38 +01: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 005f85b5ea Removed reference to 'api' action which no longer exists since api refactor 2009-10-30 01:25:52 -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 7df082abb8 replace some boolean-evaluations with calls to empty() 2009-10-28 14:21:42 -04:00
Evan Prodromou 967de94665 update location while saving new profile 2009-10-23 11:47:00 -04:00
Evan Prodromou 2ed073f295 new data structures for location 2009-10-21 22:43:40 -04:00
Evan Prodromou 4f5badda94 remove inboxes option 2009-10-13 17:38:27 -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 0a57d1ccee change string return from Notice::saveNew to exceptions 2009-09-29 17:16:07 -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
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
Evan Prodromou 55972f59f6 remove Notice::gc() for now 2009-08-29 11:59:54 -07: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 34ce75c71d remove duplicate save of Notice and streamline attachment detection 2009-08-27 20:09:07 -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 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
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
Evan Prodromou df86aa7214 define LACONICA and accept LACONICA for backwards compatibility 2009-08-26 10:41:36 -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 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 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 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
Evan Prodromou a074cccb0e save an archive of deleted notices 2009-08-04 06:05: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 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
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
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
Brenda Wallace 788dd66dbe add quotes around table named "user" when quote_identifiers is true 2009-07-15 20:23:52 +12:00
Brenda Wallace 403bb38bcd used single quotes in SQL 2009-07-15 20:18:30 +12: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
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
Evan Prodromou cb019f7aad don't send unused variable for streams 2009-07-04 01:43:35 -04:00
Evan Prodromou e2f8b8d65d no limit on conversation stream 2009-07-03 10:40:23 -04:00
Evan Prodromou 4e6cd42757 conversation code changes 2009-06-30 11:50:16 -04:00
Evan Prodromou addfcc976a remove debugging code from Notice.php 2009-06-27 07:02:36 -07: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 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
Zach Copley 31325f0995 Stop Twitter gateway notices from leaking via user faves pages 2009-06-23 13:51:23 -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 3f54840b51 Only show twitter msgs in your own inbox 2009-06-18 11:45:48 -07: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
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
Evan Prodromou 90b2b3f9d1 names for Notice is_local states 2009-06-16 21:37:04 -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
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 e0bdaa787d Merge branch '0.7.x' into 0.8.x 2009-06-14 11:27:22 -07: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 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
Evan Prodromou 76ee1fd5da Removing inbox and memcached daemon handling 2009-05-30 04:40:47 -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
Evan Prodromou 3532cd0490 Only enqueue inbox-dependent transports after inboxes have been filled 2009-05-28 18:19:22 -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
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
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 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
Sarven Capadisli dcee7f2f62 Merge branch '0.7.x' into 0.8.x 2009-04-08 22:58:21 +00:00
CiaranG 85873b1f2b Merge branch 'master' of git://gitorious.org/laconica/br3nda into review/master 2009-04-08 22:11:58 +01:00
Evan Prodromou 8c073a34ce Merge branch '0.7.x' into 0.8.x 2009-03-23 15:55:07 -04:00
Evan Prodromou 3ef4f251ac One function for producing Atom entry for a Notice
Took the various places that we create an atom entry for a notice, and
jammed them together into one function of the notice class, and then
used that function. Also, added Atom threading extension and
categories for hashtags.
2009-03-22 16:58:38 -04:00
Evan Prodromou b3a0eea3b6 Merge branch '0.7.x' into 0.8.x
Conflicts:

	classes/Notice.php
	lib/action.php
	lib/router.php
	lib/twitter.php
2009-03-12 11:56:23 -04:00
Brenda Wallace ea5e7ed2ff When deleting a notice, null the reply_to fields that point to notice 2009-03-12 15:21:55 +13:00
CiaranG c08e4d904e PostgreSQL - a few more query compatibility issues (submitted by oxygene) 2009-03-11 23:46:23 +00:00
CiaranG b9194e7923 Correction to recently added dupe-checking feature - was using wrong config value 2009-03-11 09:12:39 +00:00
Adrian Lang bea3fca189 Fix bug in dupe checking on notice post when there is no notice in cache. 2009-03-07 17:45:29 -08:00
Evan Prodromou 986a322231 Limit duplicate notices in a particular time period (default 60s)
We disallow posting a notice with duplicate content more than once a
minute.

Conflicts:

	config.php.sample
2009-03-07 09:43:50 -08:00
Evan Prodromou 13c183e2f4 Merge branch '0.7.x' into 0.8.x 2009-03-06 16:17:58 -08:00
CiaranG 3fd877c4ce Use single quotes for data literals on inserts to notice_index, so it works on pgsql as well as mysql 2009-03-03 21:32:47 +00:00
Evan Prodromou baf5afb263 save conversation id when saving a notice 2009-02-26 13:45:43 -08:00
Evan Prodromou d1f46d8552 add conversation to notice class 2009-02-26 13:37:00 -08:00
Evan Prodromou 419960fd19 wrong name for attn function 2009-02-16 18:45:59 -05:00
Evan Prodromou 175c4665cc send mail when @-replies are received 2009-02-16 18:26:15 -05:00
Evan Prodromou ca90d790aa Automatically add a tag for every group messages
If you post to a group !foo, it's automatically listed as being tagged
"foo". This is to keep users from having to do !foo #foo in all their
messages.
2009-02-16 18:02:31 -05:00
Evan Prodromou da2348fbbe Optionally ignore some notice sources for public page
We optionally ignore some notice sources from the public page.
Typically these are automatic notice sources like twitterfeed that
don't usually represent the community on the site very well.
2009-02-14 21:55:25 -05:00
Evan Prodromou 4ad5d55ecf Add events for filtering and logging new notices 2009-02-13 10:52:26 -05:00
Ciaran Gultnieks 53274a6d93 PostgreSQL - code changes to avoid problems where user table is referenced in ad-hoc queries 2009-01-30 01:12:58 +00:00
Adrian Lang a80a536e41 Fix canonical tags in notice and in URLs 2009-01-26 15:03:38 +01:00
Evan Prodromou 0d34cd24ab Update notice deletion
Changed the errors in notice deletion so it now works. Also,
consistently delete records from related tables that refer
to the notice.
2009-01-24 19:38:40 +01:00
Evan Prodromou a7c85bebd5 Merge branch 'master' of /var/www/mublog
Conflicts:

	actions/api.php
	actions/deletenotice.php
	actions/recoverpassword.php
	actions/remotesubscribe.php
	actions/tag.php
	actions/tagrss.php
	actions/twitapiaccount.php
	actions/twitapiusers.php
	classes/Notice.php
	classes/User.php
	lib/common.php
	lib/language.php
	lib/subs.php
	lib/twitterapi.php
	lib/util.php
	scripts/inbox_users.php
	scripts/update_translations.php

Merged development trunk into laconica head. woohoo!
2009-01-23 08:58:31 +01:00
Evan Prodromou e2869fcf0a Move NoticeWrapper to a generalized ArrayWrapper class
We need to use array wrappers for other kinds of queries, so
I generalized the NoticeWrapper and tested it in the Notice class.
2009-01-22 18:48:52 +01:00
Evan Prodromou 2f043b74e7 Move common_save_replies to Notice class 2009-01-22 01:53:27 -05:00
Evan Prodromou 17fc0b7880 Add the right inbox source for group notices 2009-01-21 22:40:42 -05:00
Evan Prodromou fca1ccc351 First pass at delivery of group messages
A first pass at the delivery of group messages.
2009-01-21 21:53:02 -05:00
Evan Prodromou 4873277b58 Wrap notice-saving code in a transaction 2009-01-20 08:19:32 -05:00
Evan Prodromou 3285e0979d Move add to notice inboxes before cache clearing in hopes they will be
updated
2009-01-19 22:21:16 -05:00
Evan Prodromou c65bc1731f more places where required since param skipped for Notice::getStreamDirect
darcs-hash:20081211195259-5ed1f-c52136c07bdad5521184bd1990313030a8e1e831.gz
2008-12-11 14:52:59 -05:00
Evan Prodromou 0f70d496c9 missing argument
darcs-hash:20081211171353-84dde-31b2858e361f62e13ca8ca8784b1aac4209ef04c.gz
2008-12-11 12:13:53 -05:00
Evan Prodromou e85835d0d3 resolve whitespace changes in Notice.php
darcs-hash:20081211163150-5ed1f-10ff4c4863145909c1d541e39dc4bf69d945cfd7.gz
2008-12-11 11:31:50 -05:00
Evan Prodromou 7ad2f2a371 TRUE
More PEAR coding standards global changes. Here, I've changed all
instances of TRUE to true and FALSE to false.

darcs-hash:20081223194428-84dde-cb1a1e6f679acd68e864545c4d4dd8752d6a6257.gz
2008-12-23 14:44:28 -05:00
Evan Prodromou 04ef1ba8ee change function headers to K&R style
Another huge change, for PEAR code standards compliance. Function
headers have to be in K&R style (opening brace on its own line),
instead of having the opening brace on the same line as the function
and parameters. So, a little perl magic found all the function
definitions and move the opening brace to the next line (properly
indented... usually).

darcs-hash:20081223193323-84dde-a28e36ecc66672c783c2842d12fc11043c13ab28.gz
2008-12-23 14:33:23 -05:00
Evan Prodromou eb2f9c98ac replace NULL with null
Another global search-and-replace update. Here, I've replaced the PHP
keyword 'NULL' with its lowercase version. This is another PEAR code
standards change.

darcs-hash:20081223192129-84dde-4a0182e0ec16a01ad88745ad3e08f7cb501aee0b.gz
2008-12-23 14:21:29 -05:00
Evan Prodromou edbc0c665c replace all tabs with four spaces
The PEAR coding standards decree: no tabs, but indent by four spaces.
I've done a global search-and-replace on all tabs, replacing them by
four spaces. This is a huge change, but it will go a long way to
getting us towards phpcs-compliance. And that means better code
readability, and that means more participation.

darcs-hash:20081223191907-84dde-21e8efe210e6d5d54e935a22d0cee5c7bbfc007d.gz
2008-12-23 14:19:07 -05:00
Zach Copley 92ea88fd60 trac540 - Add 'since' param to Twitter-compatible API calls
darcs-hash:20081209055345-7b5ce-e48fd4c87963b8ae15859fd03d2f1f86a16f3a2b.gz
2008-12-09 00:53:45 -05:00
millette 51dda41211 delete user and all traces from the db.
darcs-hash:20081203164942-099f7-ea511948139c9c18b1c8b7de018aa4f0ee5ff624.gz
2008-12-03 11:49:42 -05:00
millette ce08833303 shorten urls for posts > 140 chars only, from anywhere. Only show long urls in title attributes for links we shortened ourselves.
darcs-hash:20081128210114-099f7-4e4cde0a983c2ac6d41efb59b46cb7dbf45dc7a6.gz
2008-11-28 16:01:14 -05:00
Evan Prodromou 7745917305 don't check edit throttle if throttle not enabled
darcs-hash:20081210194335-84dde-a74fe65acfa707eae5499cdf47850d353562ccb8.gz
2008-12-10 14:43:35 -05:00
Zach Copley 1e4e6eee32 Ban certain users from posting by nickname and/or ID
darcs-hash:20081210191337-7b5ce-f9a083596b3f5627405c9e233c1994d8338f5731.gz
2008-12-10 14:13:37 -05:00
millette 8b15411865 make sure passed profile_id is valid in Notice::saveNew
darcs-hash:20081210181123-099f7-b13ae11d136512655fc5ba4bb314c80256244593.gz
2008-12-10 13:11:23 -05:00
Evan Prodromou a143b64666 edit throttling
darcs-hash:20081210174722-84dde-4c79d7f73230d008195bd19738bc9a6017b940e9.gz
2008-12-10 12:47:22 -05:00
Evan Prodromou 0bcfb2e698 change is_local flag for blacklisted users
Changed the flag on notices that says whether the notice is local, so
that it's -1 for local-but-blacklisted. This should keep blacklisted
users off the public timeline.

darcs-hash:20081202184258-5ed1f-cd87ea5c528ea0c90cb31eeb59d4d1ba4f85e9ad.gz
2008-12-02 13:42:58 -05:00
Evan Prodromou 577b54c2af blow last caches on notice delete
We do some extra caching of streams, at ';last'. If a notice is
deleted, we need to blow those caches, too. So, this deletes them.

darcs-hash:20081124003240-84dde-aa4561e5e68b0ccc0598ac86294ea54f9be5775a.gz
2008-11-23 19:32:40 -05:00
Evan Prodromou 64101cc579 whitespace cleanup
darcs-hash:20081122124235-84dde-680b2d2c8caff26d40dec4fe8e926a61668c47a0.gz
2008-11-22 07:42:35 -05:00
Evan Prodromou 3a82ff2860 double-cache to get newer items
darcs-hash:20081122124151-84dde-3e942c9ab172444bd28afb84a452b8bfb5e3574a.gz
2008-11-22 07:41:51 -05:00
Evan Prodromou a730ad708c notice inbox only when not already exists
darcs-hash:20081121184132-84dde-39d090e8bf82d10f3aa3a55ada3f4170c01e11d1.gz
2008-11-21 13:41:32 -05:00
Evan Prodromou 35407614bb hide certain users from the public stream
On identi.ca, certain users (http://identi.ca/derricklo) publish 5-10
automated notices every half hour or hour. This can flood the public
stream, making it unreadable for casual readers.

We don't want to prevent anyone from using the site for personal use.
However, if their personal use clouds up the public space, we can
gently remove them from that public space without interfering with
their personal activity.

So: this change prevents selected people's notices from appearing in
the public stream. It's hand-configured by an administrator, and
probably doesn't scale beyond 10-20 blacklisted users. It's a stopgap
measure.

darcs-hash:20081120183722-84dde-8a8401fbcbb6abb60a8b36de249323586ea0b22c.gz
2008-11-20 13:37:22 -05:00
Evan Prodromou 6b6c966369 don't write notice to inbox if user isn't inboxed yet
darcs-hash:20081114074211-84dde-77dbee17b2eb5848a0aa012c6ebe352135f5e7c1.gz
2008-11-14 02:42:11 -05:00
Evan Prodromou 74786b951c add created to notice update
darcs-hash:20081112185117-5ed1f-3b2373620581d123182dc951c528276541f4ab68.gz
2008-11-12 13:51:17 -05:00
Evan Prodromou 3987de1064 created timestamp on notice_inbox
darcs-hash:20081112172517-5ed1f-4e8534d7898e2134edf4c0a28417b4a5274617d4.gz
2008-11-12 12:25:17 -05:00
zach 8deac7248e Twitter-compatible API - since_id and before_id were polluting the cache and generating bad SQL
(Also cleaned out some extra whitespace.)

darcs-hash:20081104053359-462f3-2f6619bb942aa34b38dd82cb427878f83d4c332c.gz
2008-11-04 00:33:59 -05:00
Evan Prodromou 5f05134110 blow inboxes
darcs-hash:20081023203505-5ed1f-9fda1f30a6eb271966b7eaf42968103761b33b22.gz
2008-10-23 16:35:05 -04:00
Evan Prodromou 74291968c4 save notice to inbox on saveNew
darcs-hash:20081022205621-5ed1f-4103d4db9713f4e6e65647f71cc788cbee56a240.gz
2008-10-22 16:56:21 -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 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 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 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 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 82084ab74c move memcache connections to util.php
darcs-hash:20080926200102-5ed1f-debbc18981424d7724277ac82e5fbfd5e797090e.gz
2008-09-26 16:01:02 -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 8da61dc1d3 path correct in require_once for memcached
darcs-hash:20080926161824-5ed1f-b4fb53e5ca65bb099aabbba6ea60a13496f669a2.gz
2008-09-26 12:18:24 -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 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 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 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 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 b1ff7d7a2b fix error storing uris of remote notices
darcs-hash:20080826211108-84dde-b277bdb1476b9cec0c0d93fa8d565c4642ba16c8.gz
2008-08-26 17:11:08 -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
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 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 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 e1361cdf48 mark notices as local
darcs-hash:20080722141614-84dde-b80c6945fdb90a5f67acaba65a1e4c2b306b1f8e.gz
2008-07-22 10:16:14 -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 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 816262d488 rebuild DB_DataObject classes for new structure
darcs-hash:20080709200711-84dde-b6a9e403ab50ef5a6497a25a756ed63c373f0402.gz
2008-07-09 16:07:11 -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 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 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 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