Starting with tag: [TAG 0.2 Evan Prodromou **20080522172623] [tags and XRDS Evan Prodromou **20080522183421 Starting the process of remote subscriptions. First, add the capacity to mint tags. May in the future want to allow some kind of UUID or URL for unique URIs. New config options for tag authority and date, and a function for minting tags. Store URIs in the DB. If the admin changes his/her tag config, this shouldn't change the URIs in the DB. Unless they really want to make that happen. Generate an XRDS document with the appropriate URLs for microblogging. Also, redefined some stuff in openmicroblogging.txt. And moved the file. ] [typo in common_mint_tag Evan Prodromou **20080522184027] [generate classes for db schema with URIs Evan Prodromou **20080522184109] [use notice URIs in RSS feeds Evan Prodromou **20080522184434] [add tags on creation of notices and users Evan Prodromou **20080522185500] [use notice URI in channel items list Evan Prodromou **20080522191028] [fix notice generation in rss channels Evan Prodromou **20080522191436] [oauth discovery and all new actions Evan Prodromou **20080526112700 Updated the spec to include OAuth discovery. Added new actions for all the OMB URLs. ] [update for new version of OMB protocol Evan Prodromou **20080526130328 After finding OAuth Discovery, I rewrote the OMB spec to support it better. This version of the XRDS generator supports OAuth Discovery more completely. ] [fixups for xrds Evan Prodromou **20080526131551 Corrected the definition of showService to show all the parameters. Fixed the localID part so it uses $user->uri; getUri() was throwing an error. ] [fix typo in xrds Evan Prodromou **20080526131953 I'd spelled "ENDPOINT" as "ENDPONT" in the code. whoops! ] [move OMB and OAUTH defs to their own lib file Evan Prodromou **20080526151332] [client side of distributed subscription almost complete Evan Prodromou **20080527114219] [server-side storage model Evan Prodromou **20080527200721 First pass at a server-side storage model. New tables for consumers, tokens, and nonces, with associated classes. An OAuthDataStore class interfaces with the OAuth.php library to enable server logic. Some additional work to get pretty-OK random number generation into the utilities library. Use /dev/urandom if available; else use mt_rand(). ] [remove bogus validation code Evan Prodromou **20080528134804] [add timestamp to avatar filenames to prevent overlap Evan Prodromou **20080528140321] [fix submit button for avatar Evan Prodromou **20080528141432] [fix source link Evan Prodromou **20080528141555] [better timestamped avatar filenames Evan Prodromou **20080528143030] [don't scale avatar if original already matches size Evan Prodromou **20080528144202] [registration requires accepting the license Evan Prodromou **20080528164222] [move license label to _after_ the checkbox Evan Prodromou **20080528170438] [get rid of the license label, since it mucks everything else up. Evan Prodromou **20080528170556] [show error messages in registration form Evan Prodromou **20080528170752] [fix cc license url Evan Prodromou **20080528171012] [float text of license stuff right, to make a more pleasing license block Evan Prodromou **20080528171232] [try to float license image left again Evan Prodromou **20080528171434] [try to float license text right Evan Prodromou **20080528171543] [fixed widths Evan Prodromou **20080528171626] [add span around license link Evan Prodromou **20080528171758] [add greenBg for license Evan Prodromou **20080528171944] [whole footer has greenBg Evan Prodromou **20080528172041] [undo that Evan Prodromou **20080528172149] [paginate on showstream Evan Prodromou **20080528173129] [forgot commas! Evan Prodromou **20080528173231] [better page numbers Evan Prodromou **20080528173417] [add pagination to all and public Evan Prodromou **20080528173917] [update TODOs and try to reformat notices Evan Prodromou **20080528174247] [change to use correct width classes Evan Prodromou **20080528174412] [take out spans Evan Prodromou **20080528174621] [take out avatar floatleft Evan Prodromou **20080528174807] [take out content rendering, seems to do something strange Evan Prodromou **20080528174924] [add doc action Evan Prodromou **20080528182707] [error in file_exists() Evan Prodromou **20080528183022] [stub of about Evan Prodromou **20080528183709] [add more docs Evan Prodromou **20080528185637] [source document Evan Prodromou **20080528193121] [dump args to browser for debugging Evan Prodromou **20080529151317] [fix checking boolean parameters Evan Prodromou **20080529151602] [even better boolean handling Evan Prodromou **20080529152304] [mark some TODOs done Evan Prodromou **20080529163508] [use common_render_content Evan Prodromou **20080529164139] [reformat showstream Evan Prodromou **20080529164411] [@ messages Evan Prodromou **20080529170801] [loosen restrictions on names for atlinks Evan Prodromou **20080529171604] [fixup atlink generator a bit Evan Prodromou **20080529171853] [dummy atlinkin Evan Prodromou **20080529172107] [more debugging crap Evan Prodromou **20080529172205] [remove debug string Evan Prodromou **20080529172258] [don't check for notice in rendering content; just render it! Evan Prodromou **20080529172549] [better regular expression for atlinks Evan Prodromou **20080529173234] [special chars for raw links in atlinks Evan Prodromou **20080529173400] [fix render in showstream Evan Prodromou **20080529173527] [keep the ampersand in atlinks Evan Prodromou **20080529173635] [linkify URLs Evan Prodromou **20080529181244] [remove url regex Evan Prodromou **20080529181321] [use q's for regex delimiter Evan Prodromou **20080529181549] [bad regex again Evan Prodromou **20080529181623] [one more try on the preg delimiter Evan Prodromou **20080529181942] [remove URL check again Evan Prodromou **20080529182026] [more regex fun Evan Prodromou **20080529182725] [ar Evan Prodromou **20080529182754] [linkify URLs Evan Prodromou **20080529190702] [move linkifying so URL links come first Evan Prodromou **20080529190743] [change number of subscriptions per row Evan Prodromou **20080529192112] [don't render content in RSS feeds Evan Prodromou **20080529192510] [interim commit after pull from server Evan Prodromou **20080530142324] [common function for turning a relative path into a full URL Evan Prodromou **20080530162429] [remotesubscribe form Evan Prodromou **20080530174310] [fix path for requiring oauthstore Evan Prodromou **20080530174616] [check that services are null in yadis check Evan Prodromou **20080530175055] [show footer for remotesubscribe form Evan Prodromou **20080530175235] [add a print_r for the yadis doc returned Evan Prodromou **20080530175436] [correct content-type on XRDS document Evan Prodromou **20080530181029] [check to see if XRDS discovery failed Evan Prodromou **20080530181103] [add debug logging and do some from the remotesubscribe page Evan Prodromou **20080530182230] [add X-XRDS-Location header Evan Prodromou **20080530183528] [typo in checking for YADIS failure Evan Prodromou **20080530184105] [better debug messages Evan Prodromou **20080530184712] [debug message for when services returns null Evan Prodromou **20080530184925] [no pid in syslog Evan Prodromou **20080530185015] [check xrds object Evan Prodromou **20080530185343] [parse the XRDS results Evan Prodromou **20080530190446 Apparently you have to parse the XRDS results from the discovery result object. Who knew? ] [start handling fancy URLs Evan Prodromou **20080530212555] [set proper row sizes Evan Prodromou **20080601020132] [better handling of XRDS files Evan Prodromou **20080602174249 Our generated XRDS files contain 3 XRD elements: one for OAuth, one for OMB, and one to point to the other two. Auth_Yadis only gives us the last one, so we have to use it to find the other two, and then extract service URLs from them. Kind of fragile code, probably won't hold up under complicated topologies, and won't work at all if the XRDs are in another XRDS container. I tried to use XRDS filtering to get the top-priority version of XRDs, services, and URIs, but Laconica's output doesn't use any of that stuff and I don't particularly want to test it. ] [move service-matching callbacks to library Evan Prodromou **20080602175725] [use omb_service_filter() rather than omb_match_service() Evan Prodromou **20080602175936] [fix dynamically-created code Evan Prodromou **20080602180108] [add some debugging stuff for problems with remote subscribe Evan Prodromou **20080602181254] [services() returns an array Evan Prodromou **20080602181759] [trim whitespace Evan Prodromou **20080602181857] [make a nodes variable to pass nodes by reference Evan Prodromou **20080602182153] [fix assignment of omb stuff Evan Prodromou **20080602183314] [debug info Evan Prodromou **20080602183911] [minor corrections for OMB discovery Evan Prodromou **20080602185137] [typo in LocalID generation in xrds Evan Prodromou **20080602185452] [fix URLs for OMB endpoints Evan Prodromou **20080602185618] [add a namespace when checking for LocalID element Evan Prodromou **20080602190357] [get content of element rather than raw element Evan Prodromou **20080602191039] [add some debugging output to request token request Evan Prodromou **20080602192018] [fixup caching problem with server variable Evan Prodromou **20080602192242] [correct name of data store class Evan Prodromou **20080602192526] [fixup classes Evan Prodromou **20080602192820] [correct server error output Evan Prodromou **20080602193851] [add the hmac sha1 signature method to server Evan Prodromou **20080602194333] [change names, update Evan Prodromou **20080602195138] [fix consumer fetching, nonce making Evan Prodromou **20080602200645] [get rid of callback nonce Evan Prodromou **20080602201707] [debugging code for userauthorization Evan Prodromou **20080602203142] [more debug code Evan Prodromou **20080602203802] [trying to find out why auth request is going to requesttoken Evan Prodromou **20080602205534] [move debugging code for checking URIs of XRD Evan Prodromou **20080602205921] [more debugging, don't reuse variable Evan Prodromou **20080603104859] [typo in use of omb_service_uri() Evan Prodromou **20080603110749] [restructure filters on services Evan Prodromou **20080603111750] [one more stab at type matching, plus debug message Evan Prodromou **20080603113626] [fix service discovery (I think) Evan Prodromou **20080603114317] [clear out lots of debugging code, add require to userauthorization Evan Prodromou **20080603115218] [remove call to private get-version() method Evan Prodromou **20080603115839] [full interface for userauthorization Evan Prodromou **20080604185131] [fix passing request around Evan Prodromou **20080604191206] [add some debugging code Evan Prodromou **20080604201123] [automatically prepend filename to debug output Evan Prodromou **20080605024035] [move filename stuff to debug function Evan Prodromou **20080605024717] [move stoica schema to laconica Evan Prodromou **20080605024807] [correct order of params in get_token Evan Prodromou **20080605025152] [clear request doesn't need an argument Evan Prodromou **20080605025611] [don't validate listenee URI Evan Prodromou **20080605033911 Validation of the listenee URI was failing for tag: URIs. So, abandoned validation for now. Maybe in the future I'll add it back in, with a second check for a valid tag URI if it doesn't work. ] [decided to validate tag uris rather than not validating any uris Evan Prodromou **20080605040153] [bad validation of callback URL Evan Prodromou **20080605040358] [a Evan Prodromou **20080605183419] [new TODOs Evan Prodromou **20080605190614] [move avatar scaling and saving to Avatar and Profile Evan Prodromou **20080605193708 Extracted the code for setting a new original avatar to the Profile class, and moved some of it to Avatar, too. This makes it easier to have the same functionality whether an avatar is set using the profile settings (for our users), or on a remote subscription. Necessitated changing the filenaming function to just take an ID. ] [setOriginal() is an instance method Evan Prodromou **20080605195222] [passing id to the avatar filename function Evan Prodromou **20080605195500] [show error correctly in login Evan Prodromou **20080605200759] [debugging info on finished remote subscribe Evan Prodromou **20080606040946] [listenee is nickname, not URI Evan Prodromou **20080606043405] [fix args in returnto Evan Prodromou **20080606051331] [don't clone arrays! Evan Prodromou **20080606051823] [use $_GET, not $args Evan Prodromou **20080606052117] [handle errors in authorizing and saving remote profile Evan Prodromou **20080606052631] [debug info for authorizing token Evan Prodromou **20080606053321] [seem to be storing tokens with null consumer keys Evan Prodromou **20080606053914] [mixed up OAuthConsumer and Consumer classes Evan Prodromou **20080606054549] [checks for user and sub in validate and better error check in remote save Evan Prodromou **20080606055439] [remember to sign access token request with request token Evan Prodromou **20080606060000] [mixed up token keys and OAuthToken objects Evan Prodromou **20080606060601] [debugging output for new_access_token Evan Prodromou **20080606061556] [debugging stuff in accesstoken action Evan Prodromou **20080606062235] [debugging request for access token Evan Prodromou **20080606062958] [store URL rather than service in $omb for bounce back Evan Prodromou **20080606063721] [forgot to require libs in accesstoken Evan Prodromou **20080606064011] [stash URLs for return and check all values for profiles Evan Prodromou **20080606065027] [call postnotice when there's a remote subscription Evan Prodromou **20080606160437] [move notice-posting stuff from util.php to omb.php Evan Prodromou **20080606162226] [push yadis requirement into omb.php Evan Prodromou **20080606162659] [debugging messages in broadcast remote Evan Prodromou **20080606171450] [trim whitespace and more debugging for posting messages Evan Prodromou **20080606172239] [dump sub and rp Evan Prodromou **20080606172638] [fix name of join-adding method Evan Prodromou **20080606173804] [quit trying to use fancy join and just loop Evan Prodromou **20080606174822] [removing some noisy debug notices Evan Prodromou **20080606175254] [bad signature because variable name was wrong Evan Prodromou **20080606180035] [was using $notice->uri instead of $notice_uri Evan Prodromou **20080606180330] [start doing some fancy URLs Evan Prodromou **20080606182044] [use mod_rewrite to have prettier urls Evan Prodromou **20080606195136] [fancy URLs Evan Prodromou **20080606200151] [add cc:license to RSS streams Evan Prodromou **20080608201917] [forgot config in channel Evan Prodromou **20080608201957] [use rdf:resource for license urls Evan Prodromou **20080608203314] [export FOAF Evan Prodromou **20080610121132] [incorrectly used , instead of => in a surprising number of places Evan Prodromou **20080610121936] [more specific fetchers Evan Prodromou **20080610122707] [undo fancy URLs for omb endpoints Evan Prodromou **20080610123002 The OAuth library uses the $_GET and $_POST arrays for checking signatures on requests. So, we need to make sure that the client sees the same request parameters as the server (or callback). These don't have to be particularly readable URLs, anyways, since they're mostly "behind the scenes". ] [ticking off a TODO Evan Prodromou **20080610142221] [make presentation of remote subscribe nicer Evan Prodromou **20080610143709] [add link for FOAF autodiscovery Evan Prodromou **20080610144420] [close parens in showstream Evan Prodromou **20080610144606] [fix getting subscribers Evan Prodromou **20080610145520] [add another TODO Evan Prodromou **20080610150113]