Commit Graph

685 Commits

Author SHA1 Message Date
Evan Prodromou
39804809dd distribute flag for Notice::saveNew() 2010-12-16 16:17:38 -05:00
Brion Vibber
bf20258f4b Merge branch '0.9.x' into 1.0.x 2010-12-15 11:59:31 -08:00
Evan Prodromou
94ff04e190 Don't cache user-specific information for Notice atom entries 2010-12-08 13:59:12 -05:00
Brion Vibber
9df856e667 Merge branch '0.9.x' into merge
Conflicts:
	README
	actions/hostmeta.php
	classes/File_redirection.php
	lib/common.php
	lib/designsettings.php
	lib/router.php
	lib/util.php
	lib/xmppmanager.php
	plugins/OStatus/OStatusPlugin.php
2010-12-07 10:50:05 -08:00
Evan Prodromou
1fb506c27d use codeKey() in activity caching 2010-12-06 17:28:22 -05:00
Evan Prodromou
8564fc51c5 cache generated activity info 2010-12-06 16:38:02 -05:00
Evan Prodromou
b28266b3d6 Convert Notice::asAtomEntry() to use Notice::asActivity() and Activity::asString()
We had two ways to generate an activity entry from a notice; one through
Notice::asAtomEntry() and one through Notice::asActivity() and
Activity::asString(). The code paths had already diverged somewhat. I
took the conditions that were in Notice::asAtomEntry() and made sure
they were replicated in the other two functions. Then, I rewrote
Notice::asAtomEntry() to use the other two functions instead.

This change passes the ActivityGenerationTests unit tests, but there
may be some other stuff that's not getting covered.
2010-12-05 16:15:05 -05:00
Brion Vibber
aa96c3c1d9 Fix for tickets #2917, #2262: user URL shortening options not being applied in non-web channels
common_shorten_links() can only access the web session's logged-in user, so never properly took user options into effect for posting via XMPP, API, mail, etc.

Adds an optional $user parameter on common_shorten_links(), and a $user->shortenLinks() as a clearer interface for that.
Tweaked some lower-level functions so $user gets passed down -- making the $notice_id param previously there for saving URLs at notice save time generalized a little.

Note also ticket #2919: there's a lot of duplicate code calling the shortening, checking the length, and reporting near-identical error messages. These should be consolidated to aid in code and translation maintenance.
2010-12-02 13:41:56 -08:00
Brion Vibber
197b56778a Add $config['attachments']['process_links'] to allow disabling processing of mentioned URL links for attachment info (oEmbed lookups) and dereferencing of redirects that we didn't have shortened ourselves.
This option may be useful for intranet sites that don't have direct access to the internet, as they may be unable to successfully fetch those resources.
2010-11-17 13:03:59 -08:00
Evan Prodromou
c1cee3b27f Merge branch 'atompub' into 0.9.x
Conflicts:
	actions/apistatusesshow.php
	actions/apitimelineuser.php
2010-11-15 11:57:19 -05:00
Siebrand Mazeland
6aeba0cb7c i18n/L10n updates. 2010-11-04 18:33:39 +01:00
Brion Vibber
4f63e3be7d Fix for ticket #2804: bad non-cache fallback code for dupe checks of prolific posters
The old code attempted to compare the value of the notice.created field against now() directly, which tends to explode in our current systems. now() comes up as the server/connection local timezone generally, while the created field is currently set as hardcoded UTC from the web servers. This would lead to breakage when we got a difference in seconds that's several hours off in either direction (depending on the local timezone). New code calculates a threshold by subtracting the number of seconds from the current UNIX timestamp and passing that in in correct format for a simple comparison. As a bonus, this should also be more efficient, as it should be able to follow the index on profile_id and created.
2010-11-03 17:25:29 -07:00
Evan Prodromou
e51ed96b89 add rel=self links to atom entries 2010-10-25 09:48:01 -04:00
Evan Prodromou
698818bd7e show rel=edit links in notices for authenticated users 2010-10-24 23:05:33 -04:00
Brion Vibber
8ff45823ba Merge branch '0.9.x' into 1.0.x 2010-10-05 11:40:49 -07:00
Brion Vibber
d6b3d7fb1a Fix unescaped dollar signs in double-quoted strings due to localization updates (%1$s etc) 2010-10-04 14:24:04 -07:00
Brion Vibber
59119482ca Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 1.0.x
Conflicts:
	actions/hostmeta.php
	actions/imsettings.php
	classes/User.php
	lib/adminpanelaction.php
	lib/channel.php
	lib/default.php
	lib/router.php
	lib/util.php
2010-10-04 12:54:36 -07:00
Brion Vibber
6e58a926e3 ForceGroup plugin: optionally force new users to join a particular group or set of groups on registration; and/or to force posts by members of particular groups to be posted into those groups even if not explicitly mentioned. The posting feature requires a couple quick hook additions in core. 2010-09-30 18:05:44 -07:00
Brion Vibber
55a080ea4e ForceGroup plugin: optionally force new users to join a particular group or set of groups on registration; and/or to force posts by members of particular groups to be posted into those groups even if not explicitly mentioned. The posting feature requires a couple quick hook additions in core. 2010-09-30 16:25:15 -07:00
Siebrand Mazeland
b03ece26eb * i18n/L10n and translator documentation updates.
* whitespace and indentation updates
2010-09-28 23:21:09 +02:00
Evan Prodromou
b5cfcba471 Merge branch '0.9.x' into activityexport
Conflicts:
	plugins/OStatus/OStatusPlugin.php
2010-09-22 10:45:34 -04:00
Evan Prodromou
556a2a8fd8 use Profile::getUri() to get a profile's URI 2010-09-21 06:21:47 -04:00
Brion Vibber
521daf5562 Ticket #2327: fixing block to remove the blocking user's subscription to the blockee if present; also cleaning up inbox delivery to apply the block checks more consistently, instead of just to group posts. 2010-09-20 16:00:25 -07:00
Evan Prodromou
9f4891568f bugs in function calls in Notice::asActivity 2010-09-13 16:27:02 -04:00
Evan Prodromou
d634f9cf17 Notice::asActivity 2010-09-13 11:44:20 -04:00
Evan Prodromou
4419e43f7f Merge branch '0.9.x' into 1.0.x
Conflicts:
	EVENTS.txt
	plugins/TwitterBridge/daemons/twitterstatusfetcher.php
	plugins/TwitterBridge/twitterbasicauthclient.php
2010-09-09 15:01:03 -04:00
Brion Vibber
7407754c27 Merge branch 'master' into testing 2010-09-08 11:47:44 -07:00
Evan Prodromou
a319b40c97 common_cache_key() -> Cache::key() 2010-09-06 10:07:43 -04:00
Evan Prodromou
e42d2124a3 common_keyize() -> Cache::keyize() 2010-09-06 10:03:51 -04:00
Evan Prodromou
8f81762d68 common_memcache() => Cache::instance() 2010-09-06 09:56:45 -04:00
Brion Vibber
0ef422593b Don't explode if we fail to load a listed attachment id in Notice::attachments() 2010-09-02 15:39:22 -07:00
Evan Prodromou
82b1d6daef Merge branch 'swat0' into 0.9.x 2010-09-02 16:58:55 -04:00
Evan Prodromou
a2de30b767 Notice::saveReplies() uses Profile::fromURI() to handle remote profiles too 2010-09-01 16:15:51 -04:00
Evan Prodromou
21bf50bad6 Merge branch 'noticetitle' into 0.9.x 2010-08-14 12:03:25 -07:00
Evan Prodromou
6d89aa0931 on deleting a notice 2010-08-14 11:54:20 -07:00
Brion Vibber
dcfc13cc08 Fix PHP notice spew when Notice::saveNew() called without passing any options; default empty vars weren't being set. 2010-08-12 15:18:50 -07:00
Brion Vibber
08fc6053ec Fix for regression with OStatus mention processing (duplicated new and old style lead to trying to save a reply entry twice). 2010-08-10 13:49:11 -07:00
Evan Prodromou
e2c90576c0 re-add mentioned link lost in last merge 2010-08-03 16:01:50 -07:00
Evan Prodromou
2ba36fc242 Merge branch 'activityhooks' into 0.9.x
Conflicts:
	classes/Notice.php
2010-08-03 16:01:18 -07:00
Evan Prodromou
cc71f1ae82 output Atom dates in UTC 2010-08-03 15:55:40 -07:00
Evan Prodromou
f83171824f correctly show <source> for atom feeds 2010-08-03 15:50:21 -07:00
Evan Prodromou
f12cafb275 correct output for EndActivityInReplyTo event 2010-08-02 17:56:44 -07:00
Evan Prodromou
fe2b4fdf1c add some activity hooks 2010-08-02 17:16:04 -07:00
James Walker
e603632f13 add support for Salmon's new "mentioned" rel value 2010-08-02 14:06:14 -04:00
Siebrand Mazeland
8f8588026b Fixes for messages after review by Brion. 2010-07-30 19:25:55 +02:00
Zach Copley
fb2e00eacc Merge branch 'master' into 0.9.x
Conflicts:
	classes/Notice.php
2010-07-29 20:44:11 +00:00
Zach Copley
4e8e77f6b0 Return HTTP 403 instead of 400 when silenced users try to post via API 2010-07-29 18:47:28 +00:00
Siebrand Mazeland
f241cdcbb3 * mark two untranslatable server exceptions as translatable
* number parameters when multiple are user in a message
* update translator documentation
2010-07-29 11:34:58 +02:00
Zach Copley
25e963769c Revert "Revert "Change the cache window on notices from 61 to 200, the max number""
This reverts commit a65b3f171c.
2010-07-21 12:29:47 -07:00
Zach Copley
a65b3f171c Revert "Change the cache window on notices from 61 to 200, the max number"
This reverts commit d51820adc5.
2010-07-19 17:38:11 -07:00
Zach Copley
d51820adc5 Change the cache window on notices from 61 to 200, the max number
of notices available at one time through the API. Note: this will
require a memcache restart.
2010-07-19 13:47:42 -07:00
Evan Prodromou
dfd65a4290 push exception on missing profile down to Notice::getProfile() 2010-07-13 10:51:25 -04:00
Brion Vibber
696e4ba393 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	plugins/OpenID/openidserver.php (cleaned up mismatched comment)
2010-06-26 10:17:36 -04:00
Brion Vibber
d9e56e15cc Merge branch 'master' into testing 2010-06-26 10:16:27 -04:00
Zach Copley
1eec7f779f - Add profile_info tag to Atom author
- Normalize xmlns:statusnet links in the API
2010-06-22 16:28:06 -07:00
Zach Copley
105c1a22d6 Include source client's related URL (if any) in source attribution for
Atom notice feeds
2010-06-17 23:08:40 +00:00
Brion Vibber
7f3b3620af Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-06-11 12:05:53 -07:00
Brion Vibber
5a96b9e805 Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-06-07 10:34:00 -07:00
Brion Vibber
d88b208edc Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	plugins/OpenID/openid.php
2010-06-07 10:19:40 -07:00
Brion Vibber
5f4c6ec626 Skip enqueueing to outgoing bridges on incoming remote messages. Twitter, Facebook, RSSCloud, and OStatus checks were enqueued on these when they'd never do anything but churn the queue servers.
Notice::isLocal() can replace a number of manual checks for $notice->is_local being LOCAL_PUBLIC or LOCAL_NONPUBLIC.
2010-06-03 16:58:45 -07:00
Zach Copley
1a44d4272f Add repeated attr to Atom notices_info element 2010-06-03 22:24:55 +00:00
Craig Andrews
6317f7d92b Assigning my copyrights to the Free Software Foundation 2010-05-27 18:27:33 -04:00
Brion Vibber
696aeea113 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	lib/language.php
	plugins/OpenID/finishaddopenid.php
2010-05-27 14:57:32 -07:00
Zach Copley
80d1e86a7c Add repeat info to statusnet:notice_info Atom element 2010-05-26 00:39:44 +00:00
Brion Vibber
f7add6f25f Handle funky notice deletion cases more gracefully: if we already have a deleted_notice entry, don't freak out when we try to save it again on the second try. 2010-05-24 07:47:15 -07:00
Zach Copley
114df39822 Need to always emit statusnet:notice_info so it's available in profile feeds 2010-05-18 15:17:05 -07:00
Zach Copley
5ea019c41a Remove errant double HTML entity encoding in API source attribution 2010-05-18 15:16:23 -07:00
Zach Copley
68634f0496 Add source link attr to statusnet:notice_info element in Atom output for notices 2010-05-18 15:15:41 -07:00
Zach Copley
c78f67aa73 Refactor and centralize notice source link calculation 2010-05-18 15:15:27 -07:00
Zach Copley
d9fddff539 Add xmlns:statusnet and statusnet:notice_info element to Atom entries for notices 2010-05-18 15:15:14 -07:00
Zach Copley
df034f0a1e Need to always emit statusnet:notice_info so it's available in profile feeds 2010-05-12 15:08:01 -07:00
Zach Copley
869bc32d0d Remove errant double HTML entity encoding in API source attribution 2010-05-06 21:48:12 +00:00
Zach Copley
292ea33dbd Add source link attr to statusnet:notice_info element in Atom output for notices 2010-05-06 21:48:11 +00:00
Zach Copley
22fde00def Refactor and centralize notice source link calculation 2010-05-06 21:48:11 +00:00
Zach Copley
b547079b28 Add xmlns:statusnet and statusnet:notice_info element to Atom entries for notices 2010-05-06 21:48:11 +00:00
Brion Vibber
2260d6ec7c Merge branch 'testing' into 0.9.x
Conflicts:
	index.php
2010-04-29 15:14:51 -07:00
Brion Vibber
dd7b95c2cf Merge branch 'master' into testing 2010-04-23 14:26:57 -07:00
Brion Vibber
7bdea95ccb Fix to make blowing of replies stream cache more consistent when receiving replies. (Was being done at mail notify time instead of at save time for local replies; now moved to reply save time internally so it can't get forgotten) 2010-04-23 06:55:46 -07:00
Brion Vibber
df41287226 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-04-20 13:52:58 +02:00
Brion Vibber
61098faf5d Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-04-20 13:52:18 +02:00
Brion Vibber
c48caa85e1 Fix email notifications for @-replies that come via OStatus.
* Moved notification sending from Notice::saveReplies to distrib queue handler, so it'll pull from the reply set we've saved regardless of how we got it.
* Set up gettext infrastructure for command-line scripts; gets localization mail notifications etc working from background queues.
* Adjusted locale switching: common_switch_locale() works at runtime for bg scripts, forces a message catalog update
2010-04-20 13:49:29 +02:00
Brion Vibber
f789928942 Merge branch 'testing' into 0.9.x 2010-04-14 11:15:48 +02:00
Brion Vibber
3da50c19df Merge branch 'master' into testing 2010-04-14 11:15:21 +02:00
Brion Vibber
a21a172639 Fix for "#foo !foo" in same notice failing during save, causing failout before distribution. Move saveGroups after saveTags when saving notices; groups may save additional tags, so need to be moved after so the check for duplicates actually works. 2010-04-14 11:11:02 +02:00
Brion Vibber
d445b977fc move comment to correct place 2010-04-14 11:09:54 +02:00
Siebrand Mazeland
af06c554a0 * DB -> Database in message
* some translator documentation added
2010-04-11 01:08:51 +02:00
Brion Vibber
6fb60fb57f Fix for conversation check in @-reply notification email; i18n cleanup on mail messages: fixed some bad gettext usage, added trans doc comments. 2010-04-09 12:02:11 -07:00
Brion Vibber
d00942cce1 Fix for conversation check in @-reply notification email; i18n cleanup on mail messages: fixed some bad gettext usage, added trans doc comments. 2010-04-09 11:56:27 -07:00
Brion Vibber
9cb0dab270 Run block checks on remote OStatus replies 2010-04-09 10:48:18 -07:00
Brion Vibber
80bd77ced3 Run block checks on remote OStatus replies 2010-04-09 10:46:18 -07:00
Brion Vibber
13d59e0c76 fixup_deletions.php script to look for notices posted by now-deleted profiles and remove them. 2010-03-23 17:24:01 -07:00
Brion Vibber
cb471e0c96 Blow more timeline caches on notice delete. Fixes paging on public and profile timelines after deleting something from the first page. 2010-03-15 14:19:22 -07:00
Zach Copley
78f0d6bbd2 Scrub all atom output with common_xml_safe_str() 2010-03-12 01:12:30 +00:00
Zach Copley
7cdcb89dc9 Add id and updated elements to atom source 2010-03-12 00:36:26 +00:00
Zach Copley
f210cadfec Revert "Revert "Show <activity:subject> and no activity actors for user feed""
This reverts commit e2578cfad6.
2010-03-03 20:58:34 -08:00
Brion Vibber
3bb42d1170 Use poster's subscribed groups to disambiguate group linking when a remote group and a local group exist with the same name. (If you're a member of two groups with the same name though, there's not a defined winner.) 2010-03-03 19:00:02 +00:00
Brion Vibber
79ffebb51b OStatus: save file records for enclosures
Also stripping id from foreign HTML messages (could interfere with UI) and disabled failing attachment popup for a.attachment links that don't have a proper id, so you can click through instead of getting an error.

Issues:
* any other links aren't marked and saved
* inconsistent behavior between local and remote attachments (local displays in lightbox, remote doesn't)
* if the enclosure'd object isn't referenced in the content, you won't be offered a link to it in our UI
2010-03-02 16:36:08 -08:00
Brion Vibber
72460091dd Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-02 12:21:48 -08:00
Brion Vibber
6b134ae4c7 Dropped deprecated timestamp-based 'since' parameter for all API methods. When it sneaks in it can cause some very slow queries due to mismatches with the indexing.
Twitter removed 'since' support some time ago, and we've already removed it from the public timeline, so it shouldn't be missed.
2010-03-02 11:54:02 -08:00
Evan Prodromou
e2578cfad6 Revert "Show <activity:subject> and no activity actors for user feed"
This reverts commit c25fc8a4b5.
2010-03-02 03:40:43 -05:00
Evan Prodromou
40ac724797 don't duplicate title in summary in Atom output per RFC4287 4.2.13 2010-03-02 03:13:05 -05:00
Evan Prodromou
c25fc8a4b5 Show <activity:subject> and no activity actors for user feed
We only need one author for user feeds: the user themselves. So, show
the user as the activity:subject, and don't repeat the same
activity:actor for every notice unnecessarily.
2010-03-02 02:54:52 -05:00
Evan Prodromou
04c4facba9 fix call of common_find_mentions() in Notice::saveReplies() 2010-02-27 16:30:38 -05:00
Evan Prodromou
4d9daf2149 Use notice for context when deciding who @nickname refers to
In a federated system, "@nickname" is insufficient to uniquely
identify a user. However, it's a very convenient idiom. We need to
guess from context who 'nickname' refers to.

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

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

Doing this kind of context sleuthing means we have to render the
content very late in the notice-saving process.
2010-02-27 16:06:46 -05:00
Evan Prodromou
a5cfda8505 blow cache on known replies 2010-02-26 17:47:39 -05:00
Zach Copley
7922edb5b6 Add lots of fun avatars to our Atom output 2010-02-25 16:06:49 -08:00
Brion Vibber
79c0d52daa OStatus: save categories from the Atom entry as hashtags. 2010-02-25 11:26:33 -08:00
Zach Copley
89dc6dee01 Add PoCo namespace to optional ns output in Notice::asAtomEntry() 2010-02-22 17:56:43 -08:00
Zach Copley
cbf6ebae01 Merge branch 'rationalize-activity' into testing
* rationalize-activity:
  Move ActivityObject and related stuff to core
  Add PoCo bits, avatar link, geo point, etc. to person activity obj output
2010-02-22 17:12:33 -08:00
Zach Copley
6a711c6cdc Move ActivityObject and related stuff to core 2010-02-22 17:10:50 -08:00
Brion Vibber
d410df0406 OStatus group delivery initial implementation.
- added rel="ostatus:attention" links for group delivery
- added events for plugins to override group profile/permalink pages
- pulled Notice::saveGroups up to save-time so we can override;
  it's relatively cheap and gives us a clean list of target
  groups for distrib time even with customized delivery.
- fixed notice::getGroups to return group objects as expected
- added some doc on new parameters to Notice::saveNew
 - 'groups' list of group IDs to push to in place of parsing
- messages that come in via PuSH and contain local group targets
  are delivered to local group members
- messages that come in via PuSH and contain remote group targets
  are delivered to local members of the remote group

Todo:
- handle group posts that only come through Salmon
- handle conflicts in case something comes in both through Salmon and PuSH
- better source verification
- need a cleaner interface to look up groups by URI
- need a way to handle remote groups with conflicting names
2010-02-23 00:44:45 +00:00
Evan Prodromou
891e002883 don't calculate replies for remote notices 2010-02-21 23:56:48 -05:00
Evan Prodromou
ab3db8c899 Combine code that finds mentions into one place and add hook points
Combined the code that finds mentions of other profiles into one place.

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

common_linkify_mentions() links mentions.

common_linkify_mention() links a mention.

Notice::saveReplies() now uses common_find_mentions() instead of
trying to parse everything again.
2010-02-21 16:20:30 -05:00
Evan Prodromou
e9d22138ef permalink on a note represented by rel=alternate 2010-02-21 09:23:51 -05:00
Evan Prodromou
9498a16480 Notice::saveNew() accepts url and rendered options 2010-02-21 09:17:00 -05:00
Brion Vibber
9c2fe8492f OStatus: send favorite/unfavorite notifications to remote authors 2010-02-20 15:56:36 -08:00
Evan Prodromou
3d665f82d1 add type='text/html' to alternate link in Notice Atom 2010-02-18 22:13:47 -05:00
Evan Prodromou
c2ba764535 always distribute to inbox of author immediately 2010-02-18 07:11:20 -05:00
Zach Copley
198c046c89 - Set the root of a new local conversation to a new conversation.id
- Output conversation URIs from conversation.uri
2010-02-17 01:12:13 -08:00
Zach Copley
c892726c80 Take remote profiles into account when looking up canonical profile URIs 2010-02-16 16:22:58 -08:00
Brion Vibber
d6f1df8b76 fix for Atom notice output: correct check against conversation & current id 2010-02-12 15:30:23 -08:00
Zach Copley
525358fa10 Fix retarded spelling mistake 2010-02-11 17:08:50 -08:00
Zach Copley
3beddffc39 ostatus:attention links in Notice Atom output 2010-02-11 16:29:27 -08:00
Zach Copley
e2c0f59414 Some upgrades to Atom output for OStatus 2010-02-11 13:56:05 -08:00
Brion Vibber
8449256817 OStatus partial support for group subscriptions:
* detection of group feeds is currently a nasty hack based on presence of '/groups/' in URL -- should use some property on the feed?
* listing for the remote group is kinda cruddy; needs to be named more cleanly
* still need to establish per-author profiles (easier once we have the updated Atom code in)
* group delivery probably not right yet
* saving of group messages still triggering some weird behavior

Added support for since_id and max_id on group timeline feeds as a free extra. Enjoy!
2010-02-09 18:32:52 -08:00
Brion Vibber
384387c9b0 OStatus cleanup...
* Treat linkless feed posts as status updates; drop the "New post:" prefix and quotes on them.
* Use stable user IDs for atom/rss2 feed links instead of unstable nicknames
* Pull Atom feed preferentially when subscribing -- can now put the remote user's profile page straight into the feed subscription form and get to the right place.
* Clean up naming for push endpoints
2010-02-08 14:58:12 -08:00
Evan Prodromou
dbeb388ade clear cache for Profile::hasRepeated() at Notice::insert() time 2010-02-03 12:31:25 -05:00
Evan Prodromou
fec8066bf7 error clearing tags for profiles from memcached 2010-01-30 14:37:39 -05:00
Evan Prodromou
d13d73c563 Last-chance distribution if enqueueing fails 2010-01-28 16:53:37 -08:00
Brion Vibber
fbd52111e1 fix notice -- drop unused return value of variable that isn't initialized :) thx @ g0 for the catch 2010-01-27 19:58:33 -08:00
Brion Vibber
3abfb454a3 Adds an emergency switch so we can run inbox distribution at save time (bypassing 'distrib' queue)
Set $config['queue']['inboxes'] = false to do so
2010-01-27 18:39:17 -08:00
Evan Prodromou
e26a843caf Offload inbox updates to a queue handler to speed up posting online
Moved much of the writing that happens when posting a notice to a new
queuehandler, distribqueuehandler. This updates tags, groups, replies
and inboxes at queue time (or at Web time, if queues are disabled).

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

Squashed commit of the following:

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

    slightly better handling of blowing tag memory cache

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

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

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

    change handle_notice() to handle() in distributqueuehandler

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

    error with queuemanager

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

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

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

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

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

    move broadcasting and distributing to new queuehandler

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

    Move distribution of notices to new distribute queue handler
2010-01-25 18:08:21 -05:00
Brion Vibber
d35faa04c1 Fix for background recalculation of groups; needs to get Group objects not IDs; also don't list any groups for repeats to match saveGroups behavior
todo: merge calculation portion with saveGroups so they don't get out of sync
2010-01-15 13:06:21 -08:00
Evan Prodromou
d032fc038a make sure whoGets() doesn't write anything 2010-01-13 12:37:01 -08:00
Evan Prodromou
43ff542189 Don't save reply info for repeats 2010-01-13 01:13:06 -08:00
Evan Prodromou
8bfa7fdeaf repeats don't get posted to groups 2010-01-13 00:47:12 -08:00
Evan Prodromou
5397249e50 remove vestiges of Notice_inbox from cache clearing code in Notice 2010-01-13 00:45:12 -08:00
Evan Prodromou
3d579fc580 memoize Notice::whoGets() 2010-01-13 00:16:54 -08:00
Evan Prodromou
fb0d837ddc remove transaction for Notice save; causes deadlocks 2010-01-12 23:41:33 -08:00
Evan Prodromou
96e51dad4b whoGets() method for Notice 2010-01-09 13:55:54 -08:00
Evan Prodromou
f2a403589c Use inbox instead of notice_inbox 2010-01-09 10:02:07 -08:00
Ciaran Gultnieks
deeaafe712 Fixes to bugs where non-local messages were being wrong put in the public timeline and public xmpp feed 2010-01-07 20:59:31 +00:00
Brion Vibber
8af7ba0226 Fix for overlong RT trimming: don't trim if textlimit is 0 (unlimited) 2010-01-05 16:16:25 -08:00
Brion Vibber
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