I've got a few questions about the LJ client/server protocol, and why it doesn't seem to support a few useful operations. I'm writing a client at the request of my girlfriend (I've never had a livejournal of my own, though I enjoy programming things for people), who wants to be able to set all of her several-year-old journal's entries to private without having to change each one individually. She also knows several other LiveJournal users who would love to be able to do the same thing. Upon reading through this forum (or journal, whatever you want to call it), I found a post by someone who appeared to be writing a client meant to do the same thing - or, rather, he was modifying/improving an older client that did the same thing. The method he was using was to repeatedly call getevents with a selecttype of day, until all entries had been retrieved - then to update each one with editevent. An admin responded to this, saying not to use a selecttype of day, since it was more efficient to use syncitems (which is true), then going on to say that "so many things can go wrong when re-uploading someone's entire journal". I agree that many things can go wrong - the question, then, is why does the client/server protocol not allow you to edit properties of an entry without re-uploading the entire text? This seems like quite a logical thing to be able to do, but yet I can't see a way to do it. Better yet, why not allow entire groups of entries' properties to be edited at once?
The admins on this thread seem to stress that client programmers should not overburden the server with too many requests, or too much data. I don't wish to overburden the server - but how can I accomplish my task without doing so, when the LJ protocol will only let me update posts one at a time, and only by sending the entire text of the entry? This is something that could be easily solved by the addition of a new mode or two. Is there some reason that such a mode doesn't exist?