At one point in time, private message xml ticker output all messages contained within your Message Inbox, including archived messages. Quote from What XML generators are currently available on PerlMonks?:

private message xml ticker
Returns all /msgs for owning user (currently both archived and unarchived /msgs are returned, but this should be changed). Currently no parameters. Requires a login and does not generate XML for Anonymous Monk.

So it seems as though taking out archived messages was a planned event and that the documentation on xml tickers was not updated to reflect the changes made (grr!). And now, my question is whether there is an unknown or hidden xml ticker somewhere that provides access to archived nodes. If so, please someone point me to it. If there isn't, may I suggest a parameter to the existing private message ticker that makes the output include the archived messages? Just make it so that an appended ";archived=1" to the URI results in output of the archived messages.

And to distinguish between archived and non-archived messages, just use the 'state' attribute on the 'message' tag that was being used back when the archived messages were included (that attribute is still there to this day, but it always shows 'active' now).

Really, I don't see why access to archived messages was removed as if it were a bug. So please let me have my ";archived=1" method so I don't have to create some ugly web-scraping/parsing code to pull them out of Message Inbox.

Replies are listed 'Best First'.
Re: Archived messages through xml ticker
by Aristotle (Chancellor) on Nov 26, 2003 at 10:36 UTC

      Database load.

      In particular, there were people with hundreds of archived messages fetching the entire list every few seconds in order check if there were any new ones (that is the way all of the external chat clients that support displaying private messages work).

      The ticker would first need to have a parameter added that says what the last message you saw was so that it would only show new messages and all common external clients updated to use that parameter.

      However, archiving and unarchiving of messages are completely under the control of the user so there is no reason that external clients need to poll for changes to archived messages. So even supporting XML access to archived messages is a low priority.

      Rather than wait for archived messages to be available via an XML ticker, you might want to write an external client that you use to archive messages and get the XML before you do so.

                      - tye

        Do you believe that requiring a parameter passed to the xml ticker (such as the ";archived=1" I suggested) would be abused in such a way that people would still try fetching the entire list? Requiring that parameter would make so that current external clients wouldn't be grabbing them without knowing (such as framechat) should work well, as long as once the option were introduced it isn't abused.

        As for users fetching 100+ archived messages, shouldn't there be a limit on the number of archived messages? I seriously doubt anyone here really needs to be capable of holding so many private messages for future reference. Surely if anyone has such a high number, it's because they archive every single messages they receive, which is just not necessary. Or maybe they are someone popular who gets a /msg every 30 seconds here. Either way, should some limit on how many messages may exist in your message inbox be applied?

        Another solution might be to only return the 10-15 recently archived messages. Where every time you hit the server for archived messages, you're just going to get the same 10-15. That way, to get at the others, you'd have to delete those first 10-15 messages (whether you're storing them in the external client first is naturally up to you or the client software). Then, the next hit to the server would produce the next 10-15 most recent archived. This sounds like a viable solution to me.