Commit Graph

265 Commits

Author SHA1 Message Date
Evan Prodromou
d9b959fc64 move code for making activities from OStatus plugin to Subscription and Fave classes 2010-09-13 11:44:20 -04:00
Craig Andrews
8d54809c35 move xrd and hostmeta out of the OStatus plugin and into core
add event for setting up hostmeta, and use them in the OStatus plugin
2010-09-07 13:45:52 -04:00
Siebrand Mazeland
1bfbe9badf * i18n/L10n updates and FIXMEs added
* whitespace fixes
2010-09-03 01:35:04 +02:00
Evan Prodromou
82b1d6daef Merge branch 'swat0' into 0.9.x 2010-09-02 16:58:55 -04:00
Evan Prodromou
3baff9aa98 Handle profile-from-uri hook to return ostatus profile if there's a match 2010-09-01 16:16:38 -04:00
Evan Prodromou
8ebb858964 remove noop function from OStatusPlugin 2010-09-01 14:21:24 -04:00
Brion Vibber
9a53be4669 Initial support for third-party fallback hub such as Superfeedr for feed subscriptions.
If set up, this hub will be used to subscribe to feeds that don't specify a hub of their own.
Assumes that the fallback hub will, in fact, handle polling and updates for any feed we throw at it!
Authentication may be specified for the fallback hub.

Example:

  $config['feedsub']['fallback_hub'] = 'https://superfeedr.com/hubbub';
  $config['feedsub']['hub_user'] = 'abcd';
  $config['feedsub']['hub_pass'] = 'ckcmdkmckdmkcdk';

Also:
* Fix for WordPress-RSS-via-Superfeedr-Atom; if we have <author> info but no ID from a native ActivityStreams actor, don't freak out in the low-level processing code that checks for identity matches.
* enhanced messages for low-level FeedSub exceptions if they make it to outside display
2010-08-10 12:57:40 -07:00
Brion Vibber
7e55fc0044 OStatus/FeedSub: tweaked PuSH feed garbage collection so other plugins can declare usage of a low-level feed or an OStatus profile besides profile subscriptions & group memberships.
SubMirror: redid add-mirror frontend to accept a feed URL, then pass that on to OStatus, instead of pulling from your subscriptions.
Profile: tweaked subscriberCount() so it doesn't subtract 1 for foreign profiles who aren't subscribed to themselves; instead excludes the self-subscription in the count query.
Memcached_DataObject: tweak to avoid extra error spew in the DB error raising

Work in progress: tweaking feedsub garbage collection so we can count other uses
2010-08-06 11:49:52 -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
f83171824f correctly show <source> for atom feeds 2010-08-03 15:50:21 -07:00
James Walker
517c7483d1 move to rel="salmon" (per latest spec) 2010-08-02 13:24:38 -04:00
Brion Vibber
41e9dba729 OStatus plugin: Rolling batch queueing for PuSH output to >50 subscribing sites. Keeps latency down for other things enqueued while we work... 2010-06-07 10:03:43 -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
6187266205 - OStatusPlugin should return true if it doesn't need to handle source
attribution
- Remove stray break statement from NoticeList
2010-05-18 15:16:03 -07:00
James Walker
275002d88a allow hyphens in subdomains for webfinger addresses 2010-05-14 16:43:41 -04:00
Evan Prodromou
75b2bf2a4e Do ostatus queue first
We do the OStatus queue first, so if we're sending a notice to the
same server twice (e.g., with OMB), our richer and more featureful
notice comes in first.
2010-03-26 08:45:23 -04:00
Brion Vibber
5d3bce49b8 OStatus profile setup cleanup
* drop OStatusPlugin::localProfileFromUrl(), we can just look up on user.uri
* clean up a few edge cases that returned null through Ostatus_profile::ensure* code paths, now throws clear exception when we can't find a feed from the given profile url
* add some doc comments on the ensure* methods
2010-03-21 15:18:37 -07:00
Evan Prodromou
2ccd5187cc change profile URL ensure method for OStatus 2010-03-18 15:21:26 -05:00
Brion Vibber
c6f09306b1 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-10 17:04:51 -08:00
Brion Vibber
66518df435 OStatus: reject attempts to create a remote profile for a local user or group.
Some stray shadow entries were ending up getting created, which would steal group posts from remote users.
Run plugins/OStatus/scripts/fixup-shadow.php for each site to remove any existing ones.
2010-03-10 17:00:05 -08:00
Brion Vibber
8bf1b54abd Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-09 13:07:52 -08:00
Brion Vibber
80a17387bf Command input processing now has centralized places for looking up notice, user/profile, and group arguments.
OStatus plugin overrides these to allow using webfinger (user@example.com), profile URL (http://example.com/user) and bare profile URL (example.com/user) as arguments.
2010-03-09 13:03:32 -08:00
Brion Vibber
f969d6349c Merge branch 'testing' into 0.9.x
Conflicts:
	db/08to09.sql
2010-03-04 10:16:59 -08:00
James Walker
45f11d9637 adding plugin version to OStatus 2010-03-04 12:02:44 -05:00
Brion Vibber
b218aee94e Merge commit 'origin/testing' into 0.9.x
Conflicts:
	lib/action.php
	lib/adminpanelaction.php
2010-03-04 06:07:28 -08:00
James Walker
849f5783c4 update xrd -> userxrd 2010-03-04 01:30:15 -05:00
James Walker
1c8399fde1 refactor xrd to allow for ownerxrd - xrd document for the site owner.
introduced $config['webfinger']['owner'] for a custom xrd subject
2010-03-03 23:20:30 -05:00
Brion Vibber
628338265c OStatus: fix up remote join button on group profiles 2010-03-03 14:06:05 -08:00
Brion Vibber
4bad176088 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-03-03 13:41:00 -08:00
Brion Vibber
a42d1116db Separate the UI paths for ostatussub and ostatusgroup. They'll redirect to each other transparently if they find you've put a remote entity of the other type. 2010-03-03 13:40:26 -08:00
Sarven Capadisli
219e15ac64 Returning true instead for group remote subscription. If not logged
in, it gives the chance to use the logged in join/leave instead.
2010-03-03 16:26:02 -05:00
Sarven Capadisli
3c55edde39 Showing the remote subscribe button on the user groups page 2010-03-03 15:30:43 -05:00
Evan Prodromou
ccd0db1e0a add remote subscribe button for not-logged-in users looking a profile list with local users in it 2010-03-03 14:32:03 -05:00
Sarven Capadisli
023b9bb00f Renamed subscribe button from New to Remote since it only does remote
subscriptions at the moment.
2010-03-03 13:30:14 -05:00
Sarven Capadisli
2c9887bce5 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-03-03 12:57:03 -05:00
Sarven Capadisli
c8bdf3cacb Added group subscription button to groups mini list 2010-03-03 12:56:19 -05:00
Brion Vibber
9801c60bea Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-03-03 09:33:38 -08:00
Brion Vibber
1e63fda669 Clean up OStatus mentions finding; separate regexes keeps the code paths a bit clearer. Also switched to hitting HTTP profile first; as the common case it'll be faster. 2010-03-03 09:32:25 -08:00
Sarven Capadisli
11750e832f Added remote join action for group profile 2010-03-03 12:02:10 -05:00
Sarven Capadisli
ea10805e3f Moved the remote subscription button to subscription mini list 2010-03-03 11:22:21 -05:00
Sarven Capadisli
1a4652b1ad Changed label text for remote subscription to something similar. Given
that this button will be used within context of subscriptions, 'New'
works along with the '+' icon.
2010-03-03 10:32:54 -05:00
Brion Vibber
ddf3614c84 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-02 13:38:10 -08:00
Sarven Capadisli
e3c2b8e0b5 Refactored remote subscribe action in OStatus 2010-03-02 12:41:18 -05:00
Sarven Capadisli
88c33bbb57 Showing remote subscription button on the personal timeline 2010-03-02 12:35:27 -05:00
Brion Vibber
493b5479c1 OStatus: support @example.com/path/to/profile mentions as well as @profile@example.com (latter requires webfinger, former doesn't)
Plus misc warnings/notices cleanup in the submission path.
2010-03-01 16:43:36 -08:00
Brion Vibber
9b366547d7 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-26 12:33:50 -08:00
James Walker
223ebc765c move signing to take a local actor profile and use local keys 2010-02-26 14:22:49 -05:00
James Walker
bbb0a7d5bc updating to use latest salmon NS definitions 2010-02-26 14:22:49 -05:00
Brion Vibber
8dfc8f1635 Merge branch 'testing' into 0.9.x 2010-02-26 09:35:28 -08:00
James Walker
84d0c865c4 salmon actually fetching remote keypairs 2010-02-26 03:25:51 -05:00
James Walker
93f4f07c12 moving webfinger action to xrdaction 2010-02-25 17:52:18 -05:00
James Walker
5cb6e54bed call-time pass by reference 2010-02-25 17:09:54 -05:00
Brion Vibber
58e232a10a OStatus: when finding webfinger @-replies, override a local profile match if found at the same location (eg @someguy vs @someguy@example.org)
Fixes inconsistent application of webfinger @-mentions in OStatus; once a local profile is set up the local name would often match first and ended up overriding in output.
2010-02-25 02:56:56 +00:00
Brion Vibber
59be4b8cae Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-24 15:47:51 -08:00
Brion Vibber
0c7844734e Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-24 20:38:38 +00:00
Brion Vibber
c36bdc1ba5 - break OMB profile update pings to a background queue
- add event hooks to profile update pings
- send Salmon pings with custom update-profile event to OStatus subscribees and groups (subscribers will see it on your next post)
- fix OStatus queues with overlong transport names, should work on DB queues now
- Ostatus_profile::notifyActivity() and ::notifyDeferred() now can take XML, Notice, or Activity for convenience
2010-02-24 20:36:36 +00:00
Evan Prodromou
daea988786 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-24 15:00:52 -05:00
Brion Vibber
2e58802cc9 OStatus: fix group delivery, send reply/group Salmon pings from background. 2010-02-24 02:20:31 +00:00
Brion Vibber
584b87cfe5 OStatus: consolidate the low-level notice save code between Salmon and PuSH input paths. Validation etc remains at higher levels. 2010-02-24 01:09:52 +00:00
Brion Vibber
d6ad733247 OStatus: fixes for link/id and text extraction gets import of Buzz feeds working. 2010-02-23 21:47:14 +00:00
Evan Prodromou
f5ec7c2707 some logging for OStatusPlugin::onStartFindMentions() 2010-02-23 16:13:24 -05:00
Evan Prodromou
b09304a6c4 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Conflicts:
	plugins/OStatus/OStatusPlugin.php
2010-02-23 16:02:27 -05:00
Evan Prodromou
a0c255e231 move mention detection before default in OStatusPlugin 2010-02-23 15:59:10 -05:00
Brion Vibber
90d34b26c6 OStatus: do PuSH subscription setup from subscribe/join event hooks, so resubscribing directly from a profile/group list works correctly if there aren't active subscriptions at the moment. 2010-02-23 20:44:27 +00:00
James Walker
f4b34d67c5 generate keypairs for users, and put them in the XRD for discovery 2010-02-22 23:30:31 -05: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
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
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
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
Evan Prodromou
a9599d53c5 some info code for usersalmon.php 2010-02-21 23:39:52 -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
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
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
bd74f05a66 Do mention lookup for Webfinger accounts in OStatusPlugin 2010-02-21 21:38:16 -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
Brion Vibber
85528ccb1f Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-21 11:12:56 -08:00
Evan Prodromou
de093537f6 correct actor for OStatusPlugin::onEndUnsubscribe() 2010-02-21 13:32:24 -05:00
Evan Prodromou
5aeed9e041 add activity:subject to atom feeds 2010-02-21 13:11:00 -05:00
Evan Prodromou
df7c6b37c8 use notifyActivity() for notifications in OStatusPlugin 2010-02-21 10:53:32 -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
9c2fe8492f OStatus: send favorite/unfavorite notifications to remote authors 2010-02-20 15:56:36 -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
Evan Prodromou
866b647062 add hooks for OStatus notification on subscribe/unsubscribe 2010-02-20 11:48:42 -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
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
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
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
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
Evan Prodromou
813451c9f9 add a couple of FIXME comments 2010-02-16 10:18:23 -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
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
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
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
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
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
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