Today I had a story that appeared in 2 blurblogs. When I read it in a blurblog, it got marked as read in that blurblog, but it didn't get marked as read in the other. Now, the other blurblog says it has 1 unread story, but the story list doesn't have any.
Yeah, it's a known issue. I'm attempting to fix it today, but we'll see. Thing is, I am handling the case correctly by marking all other blurblogs sharing that story and the original site itself, if you're subscribed to it, as dirty (dirty = needs unread recount). But the problem is then letting the client know which subscriptions need to be recounted.
Although, thinking about it that way gives me an idea. My plan was to use socket.io and the real-time platform to tell the client that those other blurblogs should be recounted (something I do right now when a blurblog publishes a new story). But that only works when everybody who subscribes to that blurblog gets the message. There is no easy way to only tell you, a single subscriber of that blurblog, to update.
However, I could very easily tell the client in the response to the mark_story_as_read call that there are other sites that now need their unread counts updated. Let me look into that. It might be a far cleaner solution.
Here's the code that correctly identifies other blurblogs sharing the same story, and then updates them. It just then needs to tell the client that these sites/blurblogs need their unread counts updated.