aslj: (Default)
aslj ([personal profile] aslj) wrote in [site community profile] dw_dev2009-10-20 03:28 pm
Entry tags:

XML-RPC interface issue

(Of the official journals, this looked like the most appropriate place to post this.)

Dreamwidth's XML-RPC interface is returning some results that I would call broken. On both 'login' and 'getfriendgroups' calls, it returns empty lists rather than a list of custom access filter groups (which is what I would expect) or some combination of those and custom reading filter groups (which I would think is inappropriate given that clients are intended for posting and not for reading). The end result is that custom-group entry security is unusable (no groups from which to choose) in any client that implements the XML-RPC protocol as specified in the LiveJournal docs.
kareila: "PERL!" (perl)

[personal profile] kareila 2009-10-20 08:41 pm (UTC)(link)
I don't believe [staff profile] mark has any intention to make DW access groups backwards compatible with LJ's XML-RPC protocol, per his comment here.
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2009-10-20 08:51 pm (UTC)(link)
Yeah, it won't be backwards compatible. We will provide all of the available data through appropriate methods (we don't yet; but as soon as it's needed and someone kicks us enough we will!) but we won't be supporting the exact same methods in the same way as LJ does.

We will try to support it well enough... and we MIGHT end up making ver=1 backwards compatible and make ver=2 have all of the Dreamwidth features, but nobody has really taken point on the discussion to lead the project.
exor674: Computer Science is my girlfriend (Default)

[personal profile] exor674 2009-10-21 04:20 am (UTC)(link)
But the questions is which collection of groups should 'friendgroups' return?
exor674: Computer Science is my girlfriend (Default)

[personal profile] exor674 2009-10-21 06:57 am (UTC)(link)
What about checkfriends?

Someone passes the access group mask to that, expecting that to work just like on LJ -- and it just won't work as expected.
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2009-10-21 06:02 am (UTC)(link)
I really think #1 is a bad idea -- I used to be a client developer (I wrote LochJournal), and I know that if LJ were to suddenly start spitting out 64 bit groups there'd be some bad problems with most clients. Not to mention, my client did some other things with those friend groups like give the users URLs to go filter their friends page. All of those features would just be broken and the client developer would have to special case Dreamwidth anyway.

When I was working on the client, I had to special case some sites anyway. DeadJournal was always on old code, sites would come and go, it's sort of the name of the game... if you build a client application, you sort of have to deal with changes that come down the pipe no matter who they come from. Well, I did, as I wanted to try please as many of my users as possible. Can't always do that, but eh.

Philosophically, LJ has traditionally forged its own path. That was fine back in 1999 when nobody else was really doing these things on the Internet, but nowadays there are actual standards for blogs and clients. The Atom standard, mainly, and I would rather put the time and effort into supporting that than go back and try to retrofit or jury rig these special modes that LJ based sites support that nobody else does.

I want Dreamwidth to move in that direction: to support the standards that other sites like WordPress, Blogger, and TypePad are using. If we can be compatible with those clients, we'll be in a much better position than trying to be compatible only with our little microcosm.

None of which is really going to make things better for you this very minute, of course.

Brainstorming, though...

What if the login mode returned a tuple 'dwmode=1'? Then, you could know that there are no friendgroups and that this site (whether it is us or someone using our code) is using the Dreamwidth protocol.

Further, if that's acceptable, would you be willing to implement a second call out to 'gettrustgroups' or some method that is actually specific to what we do? It should be pretty simple for your client to do, just a different method, same looking results.

If you're willing to implement and support this in your client, I'll go hack it up right now and have it out next code push. I can't promise it will be pretty code on my end, but it will work. ;)
kareila: "PERL!" (perl)

[personal profile] kareila 2009-10-20 09:11 pm (UTC)(link)
Not using the exact same protocol that LJ does, no. But there will be better support for those clients down the line, as [staff profile] mark outlined above.

I think in order for it to happen in a timely manner, we would need a client developer with a keen interest in getting things rolling to work with [staff profile] mark and/or other backend developers to design and implement an updated protocol.
denny: (Uncommon Sense)

[personal profile] denny 2009-10-22 05:01 pm (UTC)(link)
Posting stroppy-sounding comments probably won't change that.

The LJ 'friends' concept and the DW 'trust' and 'access' concepts aren't the same. Trying to use the protocol as if they are in some circumstances would be foolish. The solution is to implement new methods, not mis-use the old ones.

I think it might be more accurate at this point to say that you're not willing to extend your LJ client to also support DW - and that's a perfectly reasonable decision for you to make.