Commit Graph

444 Commits

Author SHA1 Message Date
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
James Walker
caad5859b5 swapping pear error handling so Crypt_RSA can properly detect available
math libraries
2010-02-22 19:01:12 -05:00
Sarven Capadisli
3b823f8fbd Leaves the original URL alone and adds ? or & when it does the XHR. 2010-02-23 00:27:41 +01:00
Sarven Capadisli
8aa8e124cb Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-22 22:24:45 +01:00
Sarven Capadisli
3c00472999 Removed unnecessary assignment to SN.C.I.OStatusProfile. It can be
brought back in the future if the value is to be set directly from the
HTML script output.
2010-02-22 22:23:37 +01:00
Brion Vibber
06f155c02d OStatus: initial hookup of remote group membership (notice delivery not yet working quite right)
- added a temp config var to disable salmon magic signatures until they're working consistently
2010-02-22 12:13:57 -08:00
Sarven Capadisli
7e8c3ea418 Removed extra comma 2010-02-22 19:37:42 +01:00
Sarven Capadisli
a1549ebf87 Minor JSLinting 2010-02-22 19:36:03 +01:00
Sarven Capadisli
3ed3796135 Added licensing info and a note about migrating 2010-02-22 19:18:32 +01:00
Sarven Capadisli
85cb850cd5 Set and reuse a cookie with own profile value at a StatusNet instance 2010-02-22 19:13:30 +01:00
Brion Vibber
2b16532ffb OStatus: use 'profile' consistently as param on ostatussub and ostatusinit to help us stay sane. 2010-02-22 10:03:34 -08:00
Sarven Capadisli
c88507fe11 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-22 17:08:54 +01:00
Sarven Capadisli
3569493ba7 Added link to Subscriptions page to XHR get the ostatus sub form 2010-02-22 17:07:48 +01:00
Sarven Capadisli
e6ce04cbce Generalised Subscription XHR dialogbox 2010-02-22 17:05:43 +01:00
James Walker
2f65fa646a wiring in magicsig 2010-02-22 09:05:52 -05:00
James Walker
e0388cc1d3 adding magic sig stuff 2010-02-22 09:05:32 -05:00
James Walker
8fe097d7d1 Merge remote branch 'statusnet/testing' into testing 2010-02-22 09:03:42 -05:00
Evan Prodromou
75fdef2092 handle poco nicknames in Ostatus_profile 2010-02-22 07:57:44 -05:00
Sarven Capadisli
f54c9b70db Fixed error/warning message location in OStatus autorize subscription page 2010-02-22 11:53:34 +01:00
James Walker
7b2ea7aa22 Merge remote branch 'statusnet/testing' into testing 2010-02-22 01:40:03 -05:00
James Walker
effa4f5d1e adding extlib for Crypt_RSA 2010-02-22 01:39:00 -05:00
Brion Vibber
17ed30dffc OStatus: fix remote subscription when putting webfinger address in the little box 2010-02-22 06:00:13 +00:00
Evan Prodromou
891e002883 don't calculate replies for remote notices 2010-02-21 23:56:48 -05:00
Evan Prodromou
a9599d53c5 some info code for usersalmon.php 2010-02-21 23:39:52 -05:00
Evan Prodromou
e4c4f90c8a don't save Notices that already exist in Salmon 2010-02-21 23:32:20 -05:00
Evan Prodromou
48839a1fcf change erroneous common_sql_time() to common_sql_date() 2010-02-21 23:19:29 -05:00
Evan Prodromou
e39e6cdcc5 was using HTMLPurifier::purify() as a static method, which it is not 2010-02-21 23:16:42 -05:00
Evan Prodromou
aab7ce70dc Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-21 23:08:01 -05:00
Evan Prodromou
17c329ba89 add HTMLPurifier config 2010-02-21 23:07:46 -05:00
Brion Vibber
bd3051b85c Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2010-02-21 19:55:53 -08:00
Brion Vibber
5207783765 OStatus: record source profile & saving method in ostatus_source table; this allows us to distinguish posts that have come through an unverified group feed 2010-02-21 19:52:53 -08:00
Evan Prodromou
cc18f757a8 hook in OStatusPlugin to return Ostatus_profile URIs where applicable 2010-02-21 22:52:52 -05:00
Evan Prodromou
232b5efa7e Add error info for missing URI in attention 2010-02-21 22:44:58 -05:00
Evan Prodromou
13fb7bef78 reversed in_array() arguments in UsersalmonAction 2010-02-21 22:41:02 -05:00
Evan Prodromou
de522d7978 Wasn't putting in namespaces for reply salmons 2010-02-21 22:38:18 -05:00
Evan Prodromou
a0b64663be Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-21 22:35:04 -05:00
Evan Prodromou
bd21f48cee Notice::getReplies() returns array of profile IDs 2010-02-21 22:34:40 -05:00
Brion Vibber
892cd801d1 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2010-02-21 19:02:23 -08:00
Brion Vibber
ad10e6e8da OStatus: drop the remnants of feedsubsettings, replaced by ostatussub and no longer linked in UI 2010-02-21 19:01:32 -08:00
Evan Prodromou
79c76f1a87 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-21 21:57:32 -05:00
Evan Prodromou
be70dd3677 work harder to preserve info when creating new Ostatus_profile 2010-02-21 21:57:09 -05:00
Brion Vibber
d3996996e4 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2010-02-21 18:54:06 -08:00
Brion Vibber
78ca45c7a0 OStatus PuSH fixes:
- hub now defers subscription state updates until after verification, per spec
- hub now supports synchronous verification when requested (if async is not requested after)
- client now requests synchronous verification (it's a bit safer)
- cleanup on subscription logging/error responses
2010-02-21 18:51:15 -08:00
Evan Prodromou
273c0e0363 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-21 21:39:50 -05:00
Evan Prodromou
912814fb7f use some constants and do some extra output in webfinger output 2010-02-21 21:38:59 -05:00
Evan Prodromou
bd74f05a66 Do mention lookup for Webfinger accounts in OStatusPlugin 2010-02-21 21:38:16 -05:00
Evan Prodromou
bf23c35495 Add OStatus_profile::ensureWebfinger() 2010-02-21 21:37:12 -05:00
Evan Prodromou
fde64ddf26 make some of the Webfinger magic strings constants 2010-02-21 21:36:36 -05:00
Brion Vibber
aa0b2ce81a OStatus PuSH fixlets:
- set minimal error page output on PuSH callback
- allow hub to retry ($config['ostatus']['hub_retries']), simplify internal iface a bit. Retries are pushed to end of queue but otherwise not delayed yet; makes delivery more robust to one-off transitory errors but not yet against downtime.
2010-02-21 14:28:06 -08:00
Evan Prodromou
37179a91d5 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-21 17:00:19 -05:00
Evan Prodromou
1c22bf20f1 fixup activity serialization so salmon notifications work 2010-02-21 17:00:05 -05:00
Brion Vibber
5349aa420e OStatus feedsub fixlets:
- actually udpate feedsub.last_update when we get a new PuSH update in
- move incoming PuSH processing to a queue handler to minimize time spent before POST return, as recommended by PuSH spec. When queues are disabled this'll still be handled immediately.
2010-02-21 13:40:59 -08:00
Evan Prodromou
10f6c023f4 include namespaces in posted activities in notifyActivity() 2010-02-21 16:23:55 -05:00
Evan Prodromou
4209082677 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-21 14:18:16 -05:00
Evan Prodromou
ad3406a919 use Ostatus_profile::ensureActivityObjectProfile() in SalmonAction::ensureProfile() 2010-02-21 14:17:37 -05:00
Evan Prodromou
16a43b1154 slightly more robust remote profile creation 2010-02-21 14:14:45 -05:00
Brion Vibber
85528ccb1f Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-21 11:12:56 -08:00
Brion Vibber
588fe5d603 OStatus: debug aid - log the received Salmon post when it can't be parsed properly as an <atom:entry> 2010-02-21 10:48:48 -08:00
Evan Prodromou
de093537f6 correct actor for OStatusPlugin::onEndUnsubscribe() 2010-02-21 13:32:24 -05:00
Evan Prodromou
068d8f9220 correct call to time() in Ostatus_profile::notify() 2010-02-21 13:31:58 -05:00
Evan Prodromou
f83941a67b correct name check in ActivityObject::fromProfile() 2010-02-21 13:31:31 -05:00
Evan Prodromou
5aeed9e041 add activity:subject to atom feeds 2010-02-21 13:11:00 -05:00
Evan Prodromou
1a86bf9c65 try different ways to get a profile from a feed 2010-02-21 12:56:46 -05:00
Evan Prodromou
d372a352ec make avatar attribute explicit for ActivityObject 2010-02-21 12:55:40 -05:00
Evan Prodromou
09e2d181be remove unused profile code from salmonaction 2010-02-21 12:54:52 -05:00
Evan Prodromou
727773cdfa redirect ostatussub if not logged in 2010-02-21 11:24:04 -05:00
Evan Prodromou
df7c6b37c8 use notifyActivity() for notifications in OStatusPlugin 2010-02-21 10:53:32 -05:00
Evan Prodromou
4e90bd34e9 activity notification in Ostatus_profile 2010-02-21 10:53:11 -05:00
Evan Prodromou
ff2efd314f let activities generate their own XML 2010-02-21 10:50:51 -05:00
Evan Prodromou
9898bbdeb2 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Conflicts:
	plugins/OStatus/lib/activity.php
2010-02-21 09:19:27 -05:00
Evan Prodromou
7f471bde23 more tests for Activity parsing 2010-02-21 09:17:52 -05:00
Evan Prodromou
4a4c34de32 Save posted notices in usersalmon 2010-02-21 09:17:35 -05:00
Evan Prodromou
6169d8a877 saving notices in salmon actions 2010-02-21 09:16:27 -05:00
Evan Prodromou
229f9bd069 more complete content retrieval in ActivityObject::__construct() 2010-02-21 09:15:57 -05:00
Brion Vibber
5df61141d2 OStatus: fix regressions from merge 2010-02-20 18:25:40 -08:00
Evan Prodromou
6f1ccfc577 Subscription::start() should be enough, right? 2010-02-20 20:36:54 -05:00
Evan Prodromou
0c62c68675 do some double-checks on favor and disfavor handlers in OStatusPlugin 2010-02-20 20:34:29 -05:00
Evan Prodromou
5565216b42 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Conflicts:
	plugins/OStatus/OStatusPlugin.php
2010-02-20 20:27:04 -05:00
Evan Prodromou
96c6019638 Add support for favor and disfavor notification
Added support for favoring and disfavoring in OStatusPlugin.

Needed to represent the Notice as an activity:object, so added
some code for that in lib/activity.php.

Also, made some small changes to OStatusPlugin so it handled
having a non-default argument $object correctly.
2010-02-20 19:58:20 -05:00
Brion Vibber
145a19954f OStatus: Salmon favorite & unfavorite events now handled 2010-02-20 16:45:30 -08:00
Brion Vibber
9c2fe8492f OStatus: send favorite/unfavorite notifications to remote authors 2010-02-20 15:56:36 -08:00
Brion Vibber
ea9d6f21ec OStatus subscription page fixups; works but needs lots of UI loving!
- ostatussub via subscribe button now works again (changed to take profile instead of feed, patched up to the new discovery)
- added a quickie hack to allow putting your remote profile URI in place of webfinger acct through the remote-sub button (needs to be patched up to do proper discovery via XRDS or a link or something)
2010-02-20 12:57:47 -08:00
Brion Vibber
f891b135fb OStatus: fix regressions in plugin & usersalmon action. Sub/unsub notifications are working again. 2010-02-20 10:26:32 -08:00
Brion Vibber
97b01432e7 drop no-longer-used XML_Feed_Parser extlib package from OStatus plugin 2010-02-20 10:06:28 -08:00
Evan Prodromou
866b647062 add hooks for OStatus notification on subscribe/unsubscribe 2010-02-20 11:48:42 -05:00
Evan Prodromou
ab4ec095e8 adjust URI, URL, and location in Ostatus_profile::processPost 2010-02-20 11:38:05 -05:00
Evan Prodromou
ed45df045f Cool bug! Technically good PHP syntax 2010-02-20 11:17:54 -05:00
Evan Prodromou
2df3bbc80b Move some salmon processing to a superclass
Moved some salmon processing to a superclass so we could handle group
salmon posts, too.
2010-02-20 11:12:43 -05:00
Brion Vibber
50db2d5d69 OStatus: Salmon notifications now being generated moderately correctly. :) Needs to be an <entry> not a <feed>. 2010-02-19 17:01:38 -08:00
Brion Vibber
557df3d3f7 OStatus: sub/unsub notifications working again. Fixed up autodetection of feed info at profile setup time 2010-02-19 16:21:17 -08:00
Evan Prodromou
d69f6dff6a Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Conflicts:
	plugins/OStatus/actions/salmon.php
2010-02-19 16:55:24 -05:00
Evan Prodromou
b0327506a4 some more salmon stuff 2010-02-19 16:37:07 -05:00
Brion Vibber
a1a3ab1c58 OStatus: hooked up follow/unfollow events on Salmon endpoint to create/destroy remote subscriber relationships 2010-02-19 12:08:07 -08:00
Brion Vibber
114eb310ca OStatus: fix up Salmon endpoint detection/saving, timestamp fixes. 2010-02-19 10:29:06 -08:00
Evan Prodromou
48edade751 add ActivityContext class and test it 2010-02-18 22:18:14 -05:00
Brion Vibber
0dac13d197 OStatus refactoring to clean up profile vs feed and fix up subscription issues.
PuSH subscription maintenance broken back out to FeedSub, letting Ostatus_profile deal with the profile level (user or group, with unique id URI)
2010-02-18 16:50:53 -08:00
Brion Vibber
22ff358ba8 OStatus sub/unsub updates:
- fix for PuSH unsub verification
- send Salmon notification on unsub
2010-02-18 18:20:48 +00:00
Evan Prodromou
b6e5d4ecc3 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-18 06:36:47 -05:00
Evan Prodromou
80ef3946d0 more work on salmon 2010-02-18 06:36:32 -05:00
Brion Vibber
5a6cbb248f Merge branch 'testing' into 0.9.x 2010-02-17 10:14:08 -08:00
Craig Andrews
46e9aa13aa htmloutputter->script() special cases src's that begin with plugin/ or local/ so that plugins don't need to include common_path() in every call to $action->script()
Adjust plugins to not call common_path() when it's not necessary
Fix minify plugin
2010-02-17 12:03:14 -05:00
Brion Vibber
e51e96d724 OStatus: override source link with the source domain and link to original message 2010-02-17 02:16:03 +00:00
Brion Vibber
454d0b5738 OStatus: moving parts of profile processing to Activity from feedmunger. Pausing before refactoring DB schema a bit to clean up feed vs person vs group info 2010-02-17 01:49:49 +00:00
Brion Vibber
4a139d1cc8 OStatus: migrated notice parsing to use Activity helper classes; on the way to killing FeedMunger 2010-02-16 23:31:11 +00:00
Brion Vibber
014a32e6b8 OStatus: check only direct children in ActivityUtil::child; fixes pulling actor's info when we wanted post info 2010-02-16 23:04:39 +00:00
Brion Vibber
440ab90391 OStatus: fix up some recent regressions in subscription setup; fix state checks and verification token, and avatar save on setup. Needs updates for new atom code next... 2010-02-16 22:03:24 +00:00
Brion Vibber
a116cde1a4 OStatus: fix for low-level remote subscribe 2010-02-16 20:11:48 +00:00
Evan Prodromou
201110ffaa restructure Activity classes to push more DOM stuff to ActivityUtils 2010-02-16 12:49:54 -05:00
Evan Prodromou
813451c9f9 add a couple of FIXME comments 2010-02-16 10:18:23 -05:00
Evan Prodromou
5a357d5399 change find() to staticGet() to use cache 2010-02-16 09:58:33 -05:00
Evan Prodromou
73e2264c6a test parsing a default atom feed for activities 2010-02-14 13:19:32 -05:00
Evan Prodromou
f78cf31303 update activity and salmon for previous commit 2010-02-14 12:12:47 -05:00
Evan Prodromou
cea7d8018a Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-14 12:09:07 -05:00
Evan Prodromou
62f5c04ad2 More complete activity parsing
Began the process of actually digging up activity information
from an Atom entry. Added a test script to make sure parsing
is working right.
2010-02-14 12:08:09 -05:00
Sarven Capadisli
171bf3093a Dialogbox for OStatus remote subscription 2010-02-13 20:28:05 +01:00
Sarven Capadisli
1cb94e0be6 Added dialogbox styles for OStatus subscribe form 2010-02-13 19:07:21 +01:00
Sarven Capadisli
4d050f96f3 Added XHR channel for OStatus Subscribe button 2010-02-13 18:49:14 +01:00
Sarven Capadisli
f30af7047b Updated feed subscription form markup 2010-02-13 18:46:10 +01:00
Sarven Capadisli
24394269fa Updated OStatus form markup 2010-02-13 18:44:41 +01:00
Sarven Capadisli
f6e766d5ac Using the new remote subscription event and updated subscribe label 2010-02-13 18:42:00 +01:00
Zach Copley
f3a82e787c Add OStatus PuSH hub and Salmon links back into user and group feeds 2010-02-12 19:02:27 -08:00
Brion Vibber
b39047d95b OStatus: prep work for sending notifications on sub/unsub/join/leave/favorite/unfavorite via Salmon; needs to be completed and hooked up once feed gen is fixed. 2010-02-12 18:54:48 +00:00
Evan Prodromou
320532560f flesh out salmon endpoint 2010-02-12 00:43:16 -05:00
Evan Prodromou
5f94efc454 stub for activities 2010-02-12 00:42:42 -05:00
Brion Vibber
bc46621af2 OStatus sub setup code cleanup and partial group fixes (needs more work after the Atom updates are done) 2010-02-12 01:11:46 +00:00
Brion Vibber
8e6b52e899 OStatus: renamed feedinfo table to ostatus_profile -- will cover remote ostatus people and groups whether a subscription's active or not (maintains identity over unsub/resub, and between subscribers and subscribees) 2010-02-12 00:22:16 +00:00
Brion Vibber
e08657d56c OStatus: correct parsing of georss:point for max interop (commas allowed, whitespace not strictly defined) 2010-02-11 22:42:36 +00:00
Brion Vibber
1773d12a24 OStatus: save Salmon postback URI in feed subscription info, if provided. Will need it for sub/unsub postbacks and other notifications. 2010-02-11 20:12:48 +00:00
Brion Vibber
21bfbc43ad OStatus: fix salmon link on Atom feeds; add a url spec for group feeds as well (endpoint needs impl) 2010-02-11 20:02:17 +00:00
Brion Vibber
20714d1f35 OStatus fix: include feed profile at notice text processing time, fixes replies 2010-02-11 19:44:03 +00:00
Brion Vibber
71151b2583 OStatus: garbage collect unused PuSH subscriptions when the last local subscriber unsubs 2010-02-11 00:09:20 +00:00
Brion Vibber
4ae760cb62 OStatus PuSH fixes:
* HMAC now calculated correctly - confirmed interop with Google's public hub
* Can optionally use an external PuSH hub, set URL in $config['ostatus']['hub']
  (may have issues in replication environment, and will ping the hub for every
  update rather than just those with subscribers) Internal hub will still function
  when this is set, but won't be advertised. Warning: setting this, then turning
  it off later will break subscriptions as that hub will no longer receive pings.
2010-02-10 22:58:39 +00:00
Brion Vibber
162868afdb OStatus update: now using standard save/delivery for incoming ostatus messages -- they get reflected to realtime and everything! woooo
Group delivery may still need some munging
2010-02-10 21:18:53 +00:00
Brion Vibber
7752612ef6 fix hubdistrib 2010-02-10 20:47:42 +00:00
Brion Vibber
045797331c fix up hub queueing to work w/ stomp queues 2010-02-10 12:27:41 -08:00
Brion Vibber
f37063cd63 Filename case fix 2010-02-10 10:18:47 -08:00
James Walker
f4ebac5036 removing the webfinger hack for Notice::asAtomEntry since salmon can use a profile URL 2010-02-09 21:50:51 -05:00
James Walker
46f90f7b08 moving salmon endpoint under 'main/' 2010-02-09 21:43:37 -05: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
James Walker
c2475f8853 in progress Salmon responses 2010-02-09 15:37:37 -05:00
James Walker
841981a381 discovery piece - hand merged :P 2010-02-09 01:37:45 -05:00
Brion Vibber
b9b0f0410a Pull GeoRSS locations over OStatus feeds 2010-02-08 15:46:38 -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
Brion Vibber
dc09453a77 First steps on converting FeedSub into the pub/sub basis for OStatus communications:
* renamed FeedSub plugin to OStatus
* now setting avatar on subscriptions
* general fixes for subscription
* integrated PuSH hub to handle only user timelines on canonical ID url; sends updates directly
* set $config['feedsub']['nohub'] = true to test w/ foreign feeds that don't have hubs (won't actually receive updates though)
* a few bits of code documentation
* HMAC support for verified distributions (safest if sub setup is on HTTPS)

And a couple core changes:
* minimizing HTML output for exceptions in API requests to aid in debugging
* fix for rel=self link in apitimelineuser when id given

This does not not yet include any of the individual subscription management (Salmon notifications for sub/unsub, etc) nor a nice UI for user subscriptions.
Needs some further cleanup to treat posts as status updates instead of link references.
2010-02-08 11:15:29 -08:00