A forum for discussing and organizing recreational softball and baseball games and leagues in the greater Halifax area.
Sending a private message without cc causes a 500 error
-
[@rikudou](https://community.nodebb.org/user/rikudou) As far as I understand things, a 'private message' in ActivityPub is Create / ChatMessage, not Create / Note. I think NodeBB wouldn't be the only software to complain if 'cc' is missing from either part of Create / Note (although it's not expected in either part of Create / ChatMessage).
-
[@freamon](https://community.nodebb.org/user/freamon) `Create(ChatMessage)` is not part of ActivityPub. From my light research online it is something added by a Pleroma extension and possibly supported by Lemmy. NodeBB will automatically slot received non-public notes as chat messages.
-
[@julian](https://community.nodebb.org/user/julian) Oh, right. Thanks. But yeah, it's what Lemmy (and PieFed) uses, so I just assumed it was part of AP, and never looked into it any further. I was thinking while typing this "I bet that means that chat messages from NodeBB to PieFed will fail", which I just tested, and sure enough they do (I'll make an Issue for it on PieFed's repo).
-
Ah, that's unfortunate. When NodeBB sends a chat message out, it is just a regular Note with the recipients directly addressed, with no `as:Public` pseudo-user. So as long as PieFed handles mentioned-only notes the activity should be processed...
-
[@julian](https://community.nodebb.org/user/julian) It currently doesn't. If someone is Mentioned, the assumption is that it was part of post / comment in a community, and it fails because it can't find the community. I know that, for Lemmy, if you Mention someone in a comment, and they don't have a copy of the community (or they do and there's no local subscribers to it), then it will reject it. I don't know what it does if there's no community at all (I'll figure out a way to test it, on a server I can control).
-
[@freamon](https://community.nodebb.org/user/freamon) Update: no, Lemmy doesn't understand them either. It rejects Create / Note without a community with the usual "did not match any variant of untagged enum AnnouncableActivities"
-
FYI the next Lemmy version will use `Create/Note` for private messages. You can test it on voyager.lemmy.ml https://github.com/LemmyNet/lemmy/pull/5221
-
FYI the next Lemmy version will use `Create/Note` for private messages. You can test it on voyager.lemmy.ml https://github.com/LemmyNet/lemmy/pull/5221[@nutomic@lemmy.ml](https://community.nodebb.org/user/nutomic%40lemmy.ml) thanks for the update! That's awesome to hear
-
[@julian](https://community.nodebb.org/user/julian) I've added support to PieFed to successfully receive Create / Note as a PM from NodeBB. From Nutomic's PR, it looks like you'll continue you get Create / ChatMessage from them, as also you will from PieFed. This currently fails, as I guess that it converts them into a Create / Note, but then complains of there being no 'cc'. It doesn't make sense for PMs to be 'carbon copied' to anyone, so I'll raise an Issue at your repo.
-
[@freamon](https://community.nodebb.org/user/freamon) thanks! Happy to look into handling `Create(ChatMessage)`... I think the error aside, NodeBB would drop it anyway since `ChatMessage` isn't an expected post type.
-
[@julian](https://community.nodebb.org/user/julian) Oh, I've just realised I read Nutomic's PR the wrong way around. After 2.0, you'll start getting Notes from them. If 'ChatMessage' processing isn't worth handling by NodeBB, I can change PieFed to send you Notes instead.
-
[@freamon](https://community.nodebb.org/user/freamon) As others have said, ChatMessage is non-standard. The Create/Note is not particularly great for private messages, but whatever. Anyway, cc is not a required field of Note nor Create, so any software that would complain has a bug.
-
[@rikudou](https://community.nodebb.org/user/rikudou) Yeah, sorry, I didn't mean to derail this thread. The GitHub issue was intended to only really be about the 'cc' problem, because it looks like PieFed will have to start sending Create/Note to non-Lemmy platforms anyway, but it'd easier if 'cc' doesn't have to be artificially included to keep NodeBB happy.
-
[@freamon](https://community.nodebb.org/user/freamon) [@rikudou](https://community.nodebb.org/user/rikudou) https://github.com/NodeBB/NodeBB/issues/13202
-
In a bit of code that is too clever for my own good, I collapse `to` and `cc` into a single deduplicated array with: `const recipients = new Set([...object.to, ...object.cc]);` Which of course assumes that both properties are iterable. That has now been changed to an even clever-er (and less readable): `const recipients = new Set([...(object.to || []), ...(object.cc || [])]);`
-
[@julian](https://community.nodebb.org/user/julian) Wouldn't `??` be better?
-
[@rikudou](https://community.nodebb.org/user/rikudou) maybe? Nullish coalescing sounds really cool, but I've avoided it for years because of browser compatibility. Node has had support forever (since v14, I've discovered), but I just don't know how to use it is all