Commit Graph

161 Commits

Author SHA1 Message Date
Brion Vibber
f1b3d84b7d Fix some remote subscription regressions from f21f78364a
Ostatus_profile::ensureProfile() has been renamed to Ostatus_profile::ensureProfileURL()
2010-03-18 13:13:57 -07:00
Evan Prodromou
4761c07ad8 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-03-17 09:38:39 -05:00
Evan Prodromou
f21f78364a Change the workflow to get better discovery
Tried to re-structure the workflow of discovery to get more and richer
data and hints.
2010-03-16 11:25:18 -05:00
James Walker
99ca84e68e changing keypair to text to hold a full 1024bit keypair 2010-03-13 15:46:54 -05:00
James Walker
135c0c8a7f cleaning up key generation 2010-03-12 21:44:18 -05:00
James Walker
4e44cf906b converting key generation to new crypt library 2010-03-12 20:02:00 -05:00
James Walker
c5bb41176e converted toString to new crypt library 2010-03-12 19:42:48 -05:00
James Walker
23d44c7d59 converted sign, verify and fromString to new crypt lib 2010-03-12 19:34:45 -05:00
Brion Vibber
9e9ab23e1f Fixes for updating indices, charset/collation and engine type on plugin-created tables.
Under MySQL, new tables will be created as InnoDB with UTF-8 (utf8/utf8_bin) same as core tables.
Existing plugin tables will have table engine and default charset/collation updated, and string columns will have charset updated, at checkschema time.

Switched from 'DESCRIBE' to INFORMATION_SCHEMA for pulling column information in order to get charset. A second hit to INFORMATION_SCHEMA is also needed to get table properties.

Indices were only being created at table creation time, which ain't so hot. Now also adding/dropping indices when they change.

Fixed up some schema defs in OStatus plugin that were a bit flaky, causing extra alter tables to be run.

TODO: Generalize this infrastructure a bit more up to base schema & pg schema classes.
2010-03-12 13:16:32 -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
James Walker
7214db14fe wrong param order to strpos() 2010-03-09 01:24:21 -05:00
Brion Vibber
89e313e45b OStatus fix: send the feed's root element, not the DOM document, down to low-level feed processing as entry context on PuSH input. 2010-03-05 10:55:07 -08:00
Brion Vibber
14065ca350 OStatus: code cleanup on webfinger fallback path 2010-03-03 18:28:39 -08:00
Brion Vibber
a4d9171306 Fix up catching of webfinger setup fails 2010-03-03 18:23:28 -08:00
Brion Vibber
f3cea24304 Fix for hcard parsing: typo caused notice spew accessing unset array index 2010-03-03 09:36:26 -08: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
680ace1966 High-priority OStatus fixes:
* PuSHing out to multiple client services could fail; only first callback got reached
* Correction for re-sub request to a known sub
2010-03-01 18:46:34 -08:00
Brion Vibber
e30af99873 Merge branch 'work' into testing 2010-03-01 16:57:58 -08: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
45e8819c1b Fix a bunch of notice & warning-level messages that were breaking my inter-instance communications 2010-03-01 16:35:36 -08:00
James Walker
831eb0d2b6 renaming sha256 to prevent conflict 2010-02-26 18:27:13 -05:00
James Walker
ee7603b09f better return check in Magicsig::staticGet() 2010-02-26 17:53:27 -05:00
James Walker
6ee7660a58 should be sequenceKey (singular) 2010-02-26 16:51:50 -05:00
James Walker
0ecf435dc5 adding sequenceKeys() to magicsig 2010-02-26 16:50:00 -05:00
James Walker
f23a877cd8 Discovery::lookup now throws an exception 2010-02-26 15:39:58 -05: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
James Walker
ab8bb4d79e more cleanup 2010-02-26 04:07:58 -05:00
James Walker
7c8031dc4b Merge remote branch 'statusnet/testing' into testing
Conflicts:
	plugins/OStatus/lib/webfinger.php
2010-02-25 23:49:45 -05:00
James Walker
0afb09ad64 er. right. 2010-02-25 23:37:59 -05:00
Brion Vibber
02300ebfb0 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2010-02-25 19:52:19 -08:00
Brion Vibber
2528bb452b OStatus: clean up known-URL hinting during profile setup, saves some extra HTTP hits we were getting when mentioning Buzz feeds. 2010-02-25 19:50:59 -08:00
Zach Copley
cf61f36e6b Merge branch 'testing' of gitorious.org:statusnet/mainline into testing
* 'testing' of gitorious.org:statusnet/mainline:
  OStatus: pull best-sized avatar image (96x96 if found, otherwise largest, otherwise if none labeled takes the first)
  info about discovery in Ostatus_profile::ensureWebfinger()
  cache Web responses in Webfinger library
2010-02-25 18:57:12 -08:00
Zach Copley
d8d8d59a03 - Updates to use new activity object factories
- Prune obsolete feed creation method
2010-02-25 18:55:11 -08:00
Brion Vibber
2fa953da22 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2010-02-25 18:52:26 -08:00
Brion Vibber
2feb09f434 OStatus: pull best-sized avatar image (96x96 if found, otherwise largest, otherwise if none labeled takes the first) 2010-02-25 18:51:44 -08:00
Evan Prodromou
e197208a4a info about discovery in Ostatus_profile::ensureWebfinger() 2010-02-25 21:07:52 -05:00
Evan Prodromou
c693365ae7 cache results of webfinger lookups 2010-02-25 20:29:52 -05:00
Evan Prodromou
1cae324555 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-25 19:59:01 -05:00
Evan Prodromou
894b221e8a Parse an hcard for hints, if available 2010-02-25 19:58:51 -05:00
Zach Copley
82cac2be59 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing
* 'testing' of gitorious.org:statusnet/mainline:
  OStatus: if no <link> available and no profileurl hint passed in, use object id if it's an HTTP(S) URL. Fixes profile link for Google accounts.
  Tweak common_url_to_nickname to take the last path component; fixes pulling nicks from Google profile pages (path is "/profile/<nickname>")
  Fix bug on subscribe/unsubscribe in profile lists. Bogus call to nonexisting profile->getProfile() was masked by DB_DataObject
2010-02-25 16:07:32 -08:00
Zach Copley
7922edb5b6 Add lots of fun avatars to our Atom output 2010-02-25 16:06:49 -08:00
Brion Vibber
45435a7c03 OStatus: if no <link> available and no profileurl hint passed in, use object id if it's an HTTP(S) URL. Fixes profile link for Google accounts. 2010-02-26 00:01:22 +00:00
James Walker
5ae64a7adb moving references to Webfinger to Discovery 2010-02-25 17:34:56 -05:00
Brion Vibber
b5b5184c88 OStatus: fix remote groups to work with new user_groups/local_groups split.
- fix <activity:subject> generation so we get the profile info (what's available so far)
- use id instead of nickname for group join/leave forms so we can join/leave remote groups
  while the rest of the groups UI remains limited to local groups
  (plugins are responsible for making sure remote notifications and permission checks are done)
- fix remote notification when joining group through OStatus's remote subscribe form
2010-02-25 13:02:08 -08:00
Brion Vibber
79c0d52daa OStatus: save categories from the Atom entry as hashtags. 2010-02-25 11:26:33 -08:00
Evan Prodromou
374c488cf1 return attachement from saveHTMLFile() 2010-02-24 22:26:40 -05:00
Evan Prodromou
b08a527139 content_* to common_* 2010-02-24 22:22:42 -05:00
Evan Prodromou
942521ef30 if OStatus post is too long, show the summary and save it as an HTML attachment 2010-02-24 22:02:43 -05:00
Zach Copley
10884dcd49 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing
* 'testing' of gitorious.org:statusnet/mainline:
  Merge StatusNet core localization updates from 0.9.x branch
  Fix update_po_templates.php to support the plural and context variants of _m() in plugins
  Drop HTMLPurifier; we don't need its extra capabilities and we're already using htmLawed which is lighter-weight.
  OStatus: handle update-profile Salmon pings
  Revert "Updated jQuery Form Plugin from v2.17 to v2.36"
  OStatus: disable HTMLPurify cache unless we've configured a writable path for it.
2010-02-24 16:52:16 -08:00
Zach Copley
543ff40ef6 Populate more profile information when doing a remote subscribe 2010-02-24 16:51:24 -08:00
Brion Vibber
e18e659ca3 Drop HTMLPurifier; we don't need its extra capabilities and we're already using htmLawed which is lighter-weight. 2010-02-24 23:39:40 +00:00
Brion Vibber
93507a1927 OStatus: handle update-profile Salmon pings 2010-02-24 23:28:01 +00:00
Brion Vibber
ec4899e617 OStatus: disable HTMLPurify cache unless we've configured a writable path for it.
Updated plugin README with available config options.
Cleanup for a bad element fallback lookup in Activity
2010-02-24 22:16:17 +00: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
269d567d94 use Subscription::start() for remote subscribes 2010-02-24 15:20:06 -05:00
Brion Vibber
07214f1370 OStatus: save updated profile bits when they come in over the wire; fix up nicknames 2010-02-24 19:06:10 +00: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
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
1fe031844c er typo 2010-02-22 23:44:33 -05:00
James Walker
17b8020d25 clean up error logging 2010-02-22 23:30:31 -05:00
James Walker
f4b34d67c5 generate keypairs for users, and put them in the XRD for discovery 2010-02-22 23:30:31 -05:00
James Walker
74f5c1e169 db_objectified magic sig - for persistence of local keypairs 2010-02-22 23:30:31 -05:00
James Walker
cb32b676fa moving magicsig.php to classes - to add storage 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
Evan Prodromou
75fdef2092 handle poco nicknames in Ostatus_profile 2010-02-22 07:57:44 -05: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
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
bf23c35495 Add OStatus_profile::ensureWebfinger() 2010-02-21 21:37:12 -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
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
16a43b1154 slightly more robust remote profile creation 2010-02-21 14:14:45 -05:00
Evan Prodromou
068d8f9220 correct call to time() in Ostatus_profile::notify() 2010-02-21 13:31:58 -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
4e90bd34e9 activity notification in Ostatus_profile 2010-02-21 10:53:11 -05:00
Brion Vibber
5df61141d2 OStatus: fix regressions from merge 2010-02-20 18:25:40 -08: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
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
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
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
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
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
5a357d5399 change find() to staticGet() to use cache 2010-02-16 09:58:33 -05:00