FWIW, I think filter:topics.getUnreadTids
should still be fired even if no tids are returned.
The relevant block in src/topics/unread.js
:
const data = await getTids(params);
if (uid <= 0 || !data.tids || !data.tids.length) {
return data;
}
const result = await plugins.hooks.fire('filter:topics.getUnreadTids', {
uid: uid,
tids: data.tids,
counts: data.counts,
tidsByFilter: data.tidsByFilter,
cid: params.cid,
filter: params.filter,
query: params.query || {},
});
return result;
Could just remove || !data.tids || !data.tids.length
from the conditional and we'd be ok. The uid check just leaves out bots/spiders.