Brion Vibber
dc71833ce6
Add doc comments on saveHTMLFile; drop the extra <div> wrapping the contents to make it easier to extract without getting extra markup.
2010-03-17 15:49:10 -07:00
Brion Vibber
a9c731798e
Tweak to OStatus long message cropping: use original source notice URL for the link in the text version, don't shorten the link for the HTML so we can append params to it in JS.
2010-03-17 14:16:43 -07:00
Brion Vibber
3a72c70b7e
When too-long messages come in via OStatus, mark the attachment link up as a "more" link in the HTML output, marked with class="attachment more" so JS code can fold it out smartly. Text output will still include the raw link.
2010-03-17 12:34:35 -07:00
Brion Vibber
67f2f01c5e
Merge branch 'testing' into 0.9.x
2010-03-17 12:15:40 -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
Brion Vibber
2b684f6954
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x
2010-03-15 14:39:14 -07:00
Brion Vibber
dfac4bfd09
Fix feed discovery: html:link@rel can contain multiple values; saw rel="updates alternate" in the wild at http://tantek.com/ which broke old discovery code.
2010-03-15 20:26:42 +00:00
Brion Vibber
c9232d8f26
Ticket #2242 : fix reading of inline XHTML content in Atom feeds for OStatus input.
...
Lookup of the <div> needed to check for the XHTML namespace.
2010-03-15 20:21:55 +00:00
Brion Vibber
c89e1865f7
Merge branch 'testing' into 0.9.x
2010-03-15 12:45:38 -07:00
James Walker
7aa49b5e87
use canonical user url in xrd
2010-03-15 15:17:31 -04:00
James Walker
85cf90cf0f
Performing & allowing host-meta discovery by http url (in addition to webfinger acct)
2010-03-13 18:35:00 -05:00
James Walker
99ca84e68e
changing keypair to text to hold a full 1024bit keypair
2010-03-13 15:46:54 -05:00
Brion Vibber
56402597dd
Throw a quick button label into ostatus .po file for french to test with
2010-03-13 12:19:07 -08:00
James Walker
9111c5c6fe
allow profile_url to be used in ostatus:attention
2010-03-13 14:36:51 -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
520faaf67d
updating phpseclib to latest cvs - fixes a bunch of key generation issues
2010-03-12 20:01:34 -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
James Walker
41d2ff662c
Adding Crypt library from http://phpseclib.sourceforge.net/
2010-03-12 19:34:24 -05:00
James Walker
114f046691
removing deprecated PEAR Crypt_RSA
2010-03-12 18:50:00 -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
Sarven Capadisli
4c320872d9
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x
2010-03-11 16:39:07 -05:00
James Walker
512e511053
fix invalid separator in magic-public-key XRD and matching parsing.
2010-03-11 14:49:12 -05:00
James Walker
06612e35e4
remove hard-coded me:env check in magicenvelope
2010-03-11 14:49:12 -05:00
James Walker
89582e7226
base64_encode/decode -> base64_url_encode/decode
2010-03-11 14:49:12 -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
32532c7c42
Merge branch 'commands' into testing
2010-03-09 13:05:51 -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
6c4ade4251
Merge branch 'testing' into 0.9.x
2010-03-09 11:27:53 -08:00
Brion Vibber
58192ad687
OStatus: fix exception thrown on HTTP error during feed discovery
2010-03-09 10:56:33 -08:00
James Walker
7214db14fe
wrong param order to strpos()
2010-03-09 01:24:21 -05:00
Brion Vibber
42463e160d
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x
2010-03-08 13:37:45 -08: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
2f41e93339
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x
2010-03-04 14:44:38 -08:00
Sarven Capadisli
a4ec64ff45
Slight right alignment for remote button in minilists
2010-03-04 13:43:28 -05:00
Brion Vibber
7bd0b8e17e
Pull latest .po files from 0.9.x to testing
2010-03-04 10:20:10 -08:00
Brion Vibber
f969d6349c
Merge branch 'testing' into 0.9.x
...
Conflicts:
db/08to09.sql
2010-03-04 10:16:59 -08:00
Brion Vibber
8f1762cb95
OStatus: fix for remote group join via non-logged-in 'join' button.
...
Bad lookup was sending us to the first group instead of the selected group.
2010-03-04 09:24:47 -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
ddc4a7d2ff
Catch a previously uncaught exception and add some additional debug logs for signature verification
2010-03-04 01:46:34 -05:00
James Walker
9cbeac5695
Merge remote branch 'statusnet/testing' into testing
2010-03-04 01:31:19 -05:00
James Walker
849f5783c4
update xrd -> userxrd
2010-03-04 01:30:15 -05:00
Sarven Capadisli
b97ac60209
Changed text for authorizing/confirming remote profile
2010-03-03 23:47:27 -05:00
Sarven Capadisli
f54fa6b10b
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-03-03 23:36:05 -05:00
Sarven Capadisli
38503096d9
Puts All groups and Remote sub button in the mini list on the same line
2010-03-03 23:34:48 -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
Sarven Capadisli
239750aa00
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-03-03 22:58:28 -05:00
Sarven Capadisli
de687d00c0
Updated OStatus subscription error messages to be more user friendly.
...
Hopefully.
2010-03-03 22:56:50 -05:00
Brion Vibber
24835c1164
OStatus: catchable exception instead of fatal when parsing valid XML that isn't a valid XRD doc
2010-03-03 18:31:35 -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
Sarven Capadisli
6a5a629afa
Updated label and note text for user and group remote subscribe forms
2010-03-03 20:08:55 -05:00
Brion Vibber
9fadf8da11
Put all required field setup into AtomUserNoticeFeed and AtomGroupNoticeFeed, consolidating some code. (RSS feeds pulling title, logo etc from the Atom data structure so we don't dupe it.)
...
OStatus now calling the feed classes directly instead of faking a call into the API, should be less flakey.
2010-03-03 16:33:20 -08:00
Sarven Capadisli
b3969be85a
Updated remote subscribe button style in aside
2010-03-03 17:48:00 -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
d3c1888256
Generalized style for remote subscription button
2010-03-03 15:31:16 -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
7d7847295a
Using position relative only for the remote subscription in section
2010-03-03 13:17:00 -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
f3cea24304
Fix for hcard parsing: typo caused notice spew accessing unset array index
2010-03-03 09:36:26 -08: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
Brion Vibber
ffa1931c9d
Avoid warning/notice spew in XRD parser. Not all DOM nodes are elements.
2010-03-03 09:31:14 -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
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
ddf3614c84
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x
2010-03-02 13:38:10 -08:00
Sarven Capadisli
1550d1004d
Don't need to float the anchor
2010-03-02 15:24:07 -05: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
Sarven Capadisli
5abff91041
Generalized style for entity remote subscription action
2010-03-02 12:34:35 -05:00
Sarven Capadisli
623faf9f2d
Just a label change. Since the user already went ahead with
...
subscribing, in this step we are just confirming the profile.
2010-03-02 09:57:28 -05: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
Evan Prodromou
0512151eab
more output in updateostatus.php
2010-03-01 18:19:20 -05:00
Evan Prodromou
d77248343f
fix path for updateostatus.php
2010-03-01 18:03:17 -05:00
Evan Prodromou
3ff3abb247
Script to convert OMB subscriptions to OStatus subscriptions
2010-03-01 18:03:17 -05:00
Brion Vibber
3c4ead4996
Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
...
Conflicts:
db/08to09.sql
locale/statusnet.po
scripts/update_po_templates.php
2010-03-01 14:59:26 -08:00
Brion Vibber
00f724d0e6
Localization tweak: include doc comments marked as 'TRANS' in .po file output; these should now get automatically pulled through to the TranslateWiki interface as translator help hints.
2010-03-01 14:10:13 -08:00
Evan Prodromou
f00e8bbf47
Merge branch 'testing' into 0.9.x
2010-02-27 17:07:57 -05: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
1cf08c7ad7
MagicEnvelope::parse shouldn't be called statically
2010-02-26 17:09:50 -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
c82cee1876
removing some extraneous debug logging
2010-02-26 16:26:04 -05:00
James Walker
e4c462570f
move salmon posting to send application/magic-envelope+xml per http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer-salmon-00.html#RPF
2010-02-26 15:39:58 -05:00
James Walker
f23a877cd8
Discovery::lookup now throws an exception
2010-02-26 15:39:58 -05: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
3a7eef1074
only put public keys in XRD
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
ab8bb4d79e
more cleanup
2010-02-26 04:07:58 -05:00
James Walker
d1256b547f
bad merge.. cleaning up missing webfinger bits
2010-02-26 03:43:35 -05:00
James Walker
22062b665e
remove webfinger.php
2010-02-26 03:28:29 -05:00
James Walker
84d0c865c4
salmon actually fetching remote keypairs
2010-02-26 03:25:51 -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
855692141d
use a real keypair from discovery
2010-02-25 23:38:25 -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
a43598c31e
cache Web responses in Webfinger library
2010-02-25 21:07:24 -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
Evan Prodromou
cc0670791e
use new hcard method for webfinger
2010-02-25 19:58:18 -05:00
Evan Prodromou
36f02f459b
add hkit for hCard parsing
2010-02-25 19:11:39 -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
Evan Prodromou
4aa82f75ed
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-02-25 18:45:32 -05:00
Evan Prodromou
6578e0e1af
use new dedicated hcard method for Webfinger profile
2010-02-25 18:45:08 -05:00
James Walker
08413428a7
typo
2010-02-25 17:52:56 -05:00
James Walker
93f4f07c12
moving webfinger action to xrdaction
2010-02-25 17:52:18 -05:00
James Walker
5ae64a7adb
moving references to Webfinger to Discovery
2010-02-25 17:34:56 -05:00
James Walker
bd90ef9f66
replace webfinger usage in hostmeta.php
2010-02-25 17:26:10 -05:00
James Walker
b2dabe6a48
removing the webfinger lib
2010-02-25 17:12:46 -05:00
James Walker
3d0ba3efc8
adding a new, more generic "discovery" class that does LRDD disco
...
(rather than webfinger specific)
2010-02-25 17:09:54 -05:00
James Walker
5cb6e54bed
call-time pass by reference
2010-02-25 17:09:54 -05:00
James Walker
e62e49ed3b
adding some exception handling for magicenv parsing
2010-02-25 17:09:54 -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
75cf4d4312
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-02-24 22:03:01 -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
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
b798faf9ea
OStatus: abort processing of this PuSH in item if we got an exception, rather than letting it be re-run.
2010-02-25 02:43:20 +00: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