jdev - 2026-03-08


  1. lovetox

    hm URI question

  2. lovetox

    xmpp.link generates this example uri

  3. lovetox

    https://xmpp.link/#example@server.com%3Fjoin

  4. lovetox

    but reading the fragment definition of https://datatracker.ietf.org/doc/html/rfc3986#section-3.5

  5. lovetox

    it specifically allows "?", so this is unnecessary to quote or?

  6. moparisthebest

    maybe, but that isn't "the" URL spec https://curl.se/docs/url-syntax.html

  7. singpolyma

    Indeed. It's the Uri spec. Which is what was said

  8. singpolyma

    I think ? Is allowed in fragments. I mean basically anything is really but probably whitespace and maybe other # are good to escape

  9. moparisthebest

    not that either as the curl link explains

  10. singpolyma

    however no harm in over escaping

  11. singpolyma

    ... the link you put literally agrees with me

  12. moparisthebest

    > The official "URL syntax" is primarily defined in these two different specifications: > > RFC 3986 (although URL is called "URI" in there) > The WHATWG URL Specification

  13. singpolyma

    Yup

  14. moparisthebest

    stupid semantic games don't interest me, my point is what RFC3986 says doesn't matter, only what real software people use in the wild does, and the curl page is the best resource I know on that

  15. singpolyma

    ... ok. Linking to a page and then choosing to ignore what is says is weird but I guess you were only trying to pick a fight anyway

  16. singpolyma

    the question was "can I put ? In a fragment" and the answer from both specs and that page is "yes"

  17. moparisthebest

    Who's picking a fight? The one who "well acksually URI not URL" I think :P

  18. singpolyma

    Someone asked a question and gave a reference and you jumped in with "actually look at this page it says not to use that spec" then linked to a page that says curl does use that spec and none of this is an answer to the question asked..m

  19. moparisthebest

    I didn't have the answer, I did have a link on where to find the answer

  20. singpolyma

    Which just turned out to link back to the reference already provided in the question. Cool

  21. lovetox

    Thanks 🙏

  22. moparisthebest

    > Which just turned out to link back to the reference already provided in the question. Cool nope, because you can't just use what RFC3986 says

  23. singpolyma

    Except you can and curl basically does according to that link. So you're still making some other argument not supported by your link

  24. moparisthebest

    not at all what the link says

  25. singpolyma

    it would be sensible for curl to support URLs instead but the link says they choose not to

  26. moparisthebest

    for this specific use with xmpp.link the only thing that matters is what browsers support

  27. moparisthebest

    I linked the best resource I had on it because the situation is a mess, that's all, you need to chill out with the aggression

  28. singpolyma

    Whatever. I didn't want a fight and I'm done being baited

  29. luca

    Is xmpp.link open source and open to contributions? Sounds like it could use the JS URL API to construct the URL without escaping unnecessarily

  30. moparisthebest

    luca: yep https://github.com/modernxmpp/easy-xmpp-invitation

  31. luca

    Thanks

  32. singpolyma

    Yes. And I'm sure it uses the JS API which is why that escape is there

  33. singpolyma

    Indeed. It appears to use encodeURIcomponent as expected

  34. luca

    Yeah and it's perfectly fine. Looks like it's done here https://github.com/modernxmpp/easy-xmpp-invitation/blob/73caa96dd4092634120905b1ae94be6fa54dbd58/scripts/main.js#L343 (with encodeURIComponent) But it could be done with the likes of new URL().hash. Which escapes characters like ` and spaces, but not ?

  35. singpolyma

    Hmm. True. At the expense of some old browser support.

  36. luca

    Good point. Then the current implementation is resonable

  37. luca

    Actually the website already uses fetch which came out after URL.hash in most browsers, so it probably doesn't matter

  38. singpolyma

    Hmm. Fetch with no polyfill? Maybe you're right

  39. Cynthia

    I realized that the hat XEP only allows setting the hue angle of the color of the hat

  40. Cynthia

    This means I can't go for a darker or brighter color, nor for colors on the grayscale either

  41. Cynthia

    This means I can't go for a darker or brighter color, nor for colors on the grayscale either (black/gray/white)

  42. Cynthia

    Why was it designed like this?

  43. theTedd

    Probably to match with XEP-0392 (Consistent Color Generation)

  44. Cynthia

    I think that's because it's easier to generate a hue angle from a nickname than a RGB

  45. Cynthia

    But ideally, we could just skip the whole HSLuv conversion step and let the user choose the RGB color directly in the hat

  46. Cynthia

    since we're not dealing with an algorithm

  47. jonas’

    Cynthia, the rationale for '392 was that both saturation and lightness should be controlled by the app, based on the theme.

  48. jonas’

    different lightness values apply for dark/bright themes.

  49. jonas’

    and different saturation values apply depending on the app's overall style.

  50. moparisthebest

    I don't want someone else picking my colors

  51. jonas’

    I don't know about hats, but similar rationales may have applied there.

  52. Cynthia

    > and different saturation values apply depending on the app's overall style. Well how do you ensure consistent colors if you're just given a hue angle to modify as a user

  53. Cynthia

    This sounds good for 392, but not really for hats

  54. jonas’

    again, I don't know about hats, I just wanted to point out that for '392, the rationale was not that a hue angle is easier to generate than RGB, but it was a deliberate thought process leading to only generating the hue value.

  55. Cynthia

    I see

  56. theTedd

    The colours are consistent given selected saturation and lightness values, but these could be different for different environments/user preferences - you'd want to use lighter colours for a darker background, but darker ones for a lighter background

  57. jonas’

    as someone frequently annoyed by people who send XHTML-IM with `color: black` to my white-on-black terminal client ... I endorse every protocol which takes control over the lightness value out of user's hands :-).

  58. Cynthia

    How do you ensure it doesn't come out too oversaturated or undersaturated

  59. theTedd

    Set saturation somewhere in the middle third

  60. Cynthia

    > as someone frequently annoyed by people who send XHTML-IM with `color: black` to my white-on-black terminal client ... I endorse every protocol which takes control over the lightness value out of user's hands :-). Well you could invert the background color if it detects the text is dark

  61. Cynthia

    or in graphical clients, gives the text a little outline

  62. Cynthia

    It might sound dumb :P

  63. theTedd

    What colour background for #808080 ?

  64. Cynthia

    White

  65. theTedd

    And #7F7F7F ?

  66. Cynthia

    Also white :P

  67. jonas’

    I'm pretty sure that #808080 on white violates some accessibility contrast rules...

  68. jonas’

    it does indeed.

  69. jonas’

    (but only by a hair)

  70. theTedd

    It's poor contrast either way, which is why humans are bad at choosing 'good' colours

  71. jonas’

    not by a hair, actually, it's 3.94:1 instead of the recommended minimum contrast ratio of 4.5:1.

  72. jonas’

    (unless bold or large text, that may go down to 3:1)

  73. jonas’

    (but that doesn't apply to chat content normally)

  74. jonas’

    (#808080 on black is ok tho)

  75. Cynthia

    Also on an unrelated topic, can a <body> in a message have multiple child elements in it?

  76. Cynthia

    like <body>Test <b>Test</b></body>

  77. jonas’

    not unless you're <body xmlns="http://www.w3.org/xhtml/1999">..</body>

  78. jonas’

    (the normal message body in the jabber:* namespaces only allows text content)

  79. Cynthia

    I thought XHTML is deprecated

  80. snit

    it is but people still use it and the answer's still true regardless isn't it

  81. theTedd

    But technically that's a different 'body' than the plain message body because it's in a different namespace

  82. jonas’

    indeed

  83. jonas’

    Cynthia, XHTML-IM is deprecated, but it should never have been.

  84. jonas’

    it should've been improved instead.

  85. Cynthia

    XSF just gives out deprecations to any XEP, don't they :P

  86. Cynthia

    What has XHTML-IM been deprecated in favor of?

  87. theTedd

    LEt's deprecate XEP-0045

  88. jonas’

    excellent question.

  89. jonas’

    Cynthia, it was a crazy time.

  90. jonas’

    the Markup Wars

  91. Cynthia

    I love how they deprecate a XEP, but don't say why

  92. Cynthia

    don't say what replaced it

  93. Cynthia

    it's just deprecated

  94. jonas’

    Cynthia, I can look it up, it's been years ago.

  95. snit

    > What has XHTML-IM been deprecated in favor of? 0393 and 0394 i think depending on personal preference

  96. jonas’

    both of which are bad in their own way.

  97. jonas’

    and I say that as the original author of '394

  98. snit

    0393 is annoying and i don't need or want full XHTML for IM so i quite like 0394 as a middle ground

  99. snit

    what's wrong with it though?

  100. Cynthia

    I can't make giant texts for one

  101. Cynthia

    smh

  102. theTedd

    XMPP will never be popular until you can write your message in 111111 point font

  103. snit

    wait i thought they meant like a lot of text i was so confused 😭

  104. Cynthia

    Oh no no

  105. Cynthia

    I can't write like a text so big, that most people will just be able to see a fraction of a glyph

  106. Cynthia

    I can't write like a text so big, that most people won't be able to see more than a fraction of a glyph

  107. Cynthia

    and that sucks

  108. snit

    truly a feature every IM needs

  109. Cynthia

    XMPP is falling off

  110. jonas’

    Cynthia, so https://logs.xmpp.org/council/2018-02-14#2018-02-14-dfb88ae585eaf6a7 has the discussion of the XMPP council

  111. jonas’

    which I am thankful to find ou I was not part of during that specific vote :D

  112. jonas’

    there's also lots of mailing list discussion around this

  113. jonas’

    but the archives seem to be (currently?) inaccessible

  114. jonas’

    I'm not too keen on digging deeper, but if there's genuine interest on the history, I might do some research and find a summary.

  115. Cynthia

    So uhh, how can we make custom emojis for one

  116. Cynthia

    Without the flexbility of an entire XHTML and CSS renderer

  117. jonas’

    Cynthia, bits-of-binary!

  118. jonas’

    supported by pidgin for example!

  119. Cynthia

    Yeah we know, bits of binary

  120. Cynthia

    But where would you put the bits of binary link in

  121. jonas’

    (and pidgin also uses it, for example, for rendered LaTeX equations, which is quite neat)

  122. jonas’

    custom emojis in the middle of a message? don't get greedy! ;-)

  123. snit

    > But where would you put the bits of binary link in markup element? i'd have to read BoB i don't actually know how it works

  124. Cynthia

    B-But.. discord :(

  125. snit

    > But where would you put the bits of binary link in 0394 markup element? i'd have to read BoB i don't actually know how it works

  126. Cynthia

    > markup element? i'd have to read BoB i don't actually know how it works Bits of binary is for storing little bits of binary files directly in XMPP

  127. Cynthia

    You give people a CID

  128. Cynthia

    and they query you with the CID, and you give them binary data in base64

  129. Cynthia

    It's not like a file upload (for large files)

  130. snit

    oh neat

  131. Cynthia

    the CID is a hash of the file itself, so the client can cache it for later

  132. snit

    yeah what if you had like a markup element where the original body text contains the closest approximate emoji(or just the shortcode) and the element just says "yo replace this emoji with this image instead" 🧌

  133. snit

    can't decide if that's stupid or not

  134. Cynthia

    I think discord does that with mentions

  135. Cynthia

    I mean they do, but i don't know if they do it with custom emojis

  136. Cynthia

    I mean they do, but i don't know if they do it too with custom emojis

  137. Cynthia

    https://github.com/AnIdiotsGuide/discordjs-bot-guide/blob/master/coding-guides/using-emojis.md#whats-an-emoji

  138. snit

    me when my markdown file is all html 😭

  139. Cynthia

    Okay so custom emojis are roughly the same thing, they're like <:my_special_emoji:309810398120912809>

  140. snit

    oh i do remember timestamps being typed like that too before they added an official way to write them

  141. Cynthia

    We could just borrow this design from Discord, and switch the ID with a BoB ID

  142. snit

    personally i prefer using the closest approximate emoji so it works better for clients without custom emoji support

  143. Cynthia

    like <:coolemote:cid:sha1+8f35fef110ffc5df08d579a50083ff9308fb6242@bob.xmpp.org>

  144. Cynthia

    > personally i prefer using the closest approximate emoji so it works better for clients without custom emoji support I just wonder if you can get away with encoding things in the <body> :P

  145. Cynthia

    I'm sure the XSF members have something to say about that

  146. theTedd

    The RFC has something to say about that

  147. Cynthia

    What does it say?

  148. theTedd

    "If you do this, we will find you, and we will hurt you!"

  149. Cynthia

    .... Let's do it anyway!

  150. snit

    > personally i prefer using the closest approximate emoji so it works better for clients without custom emoji support ``` <message from='me@example.com' to='you@example.com' type='chat'> <body>hehe 🧌</body> <markup xmlns='urn:xmpp:markup:0'> <emoji xmlns='urn:xmpp:emoji-markup:0' cid='cid:sha1+8f35fef110ffc5df08d579a50083ff9308fb6242@bob.xmpp.org' start='5' end='6' /> </markup> </message> ``` is i think what i'd want to do? or something like it at least, where the custom emoji is the funney meme troll face

  151. theTedd

    > What does it say? > The <body/> element MUST NOT contain mixed content (as defined in Section 3.2.2 of [XML]). — RFC 6121 §5.2.3

  152. snit

    pro tip just make a new body under a new namespace with can 🧌

  153. snit

    pro tip just make a new body under a new namespace which can 🧌

  154. theTedd

    Then clients can safely ignore it

  155. theTedd

    (whether they actually do, is a different question)

  156. snit

    out of curiosity who do you query for the custom emoji data with bob? can you query muc users themselves? i tried skimming 0045 for whether you can send iqs to muc users, but only saw that it may or may not be allowed in a muc; how often is it allowed vs not? should the query go to the muc itself?

  157. snit

    if any user can send any emote it'd be like matrix or discord nitro, while if the emojis come from the muc ig it'd be like discord without nitro 🤔

  158. theTedd

    OOB was made for 1:1, so you'd request directly from the sender; that could only work in a semi-/anon MUC if the MUC server forwards the request, but then they'd get hit by an avalanche of requests, so it would obviously be nicer if the MUC cached it the first time

  159. theTedd

    BoB was made for 1:1, so you'd request directly from the sender; that could only work in a semi-/anon MUC if the MUC server forwards the request, but then they'd get hit by an avalanche of requests, so it would obviously be nicer if the MUC cached it the first time

  160. snit

    icic, is it common for mucs to forward them though? i assume it'd be a pretty simple server plugin to write considering this XEP seems to already include all the relevant stuff about caching lol

  161. theTedd

    The server will forward certain payloads, according to what it supports - it doesn't just decide how it feels on that day

  162. theTedd

    So if there is support for this specific extension, that would provide the forwarding

  163. snit

    by common i meant more like how often will any arbitrary muc actually do it (not up to how the service feels)? like would either prosody or ejabberd restrict this by default, or would they _have_ to explicitly allow it?

  164. theTedd

    Only if there is support for that specific extension, which there can't be before it exists

  165. snit

    icic, i was hoping the muc would be fine with just forwarding it without knowing what it is, and letting the receiver decide whether they wanna deal with it or not 😔

  166. theTedd

    That would be equal to forwarding everything every time

  167. snit

    i guess its not as big a problem here if the muc should _really_ have support for caching anyways, but it makes yet another idea i had for mutual rooms kind of pointless as a default 😭

  168. snit

    > If the data to be shared is particularly small (e.g., less than 1k), then the sender MAY send it directly by including a <data/> element directly in a <message/>, <presence/>, or <iq/> stanza oh we can just do this who needs caching anyways 🧌

  169. snit

    not like any reasonable emote should ever be that large

  170. theTedd

    Animated images tend to be larger

  171. snit

    that is a good point i never use those so i forgor abt them

  172. Cynthia

    > BoB was made for 1:1, so you'd request directly from the sender; that could only work in a semi-/anon MUC if the MUC server forwards the request, but then they'd get hit by an avalanche of requests, so it would obviously be nicer if the MUC cached it the first time I mean the MUC should cache it

  173. Cynthia

    the ID of the BoB is a hash of the file, so it's easy to verify for end-users, and a middle-man to cache it without security concerns

  174. Cynthia

    > ``` > <message from='me@example.com' to='you@example.com' type='chat'> > <body>hehe 🧌</body> > <markup xmlns='urn:xmpp:markup:0'> > <emoji xmlns='urn:xmpp:emoji-markup:0' > cid='cid:sha1+8f35fef110ffc5df08d579a50083ff9308fb6242@bob.xmpp.org' > start='5' > end='6' /> > </markup> > </message> > ``` > is i think what i'd want to do? or something like it at least, where the custom emoji is the funney meme troll face Just stick to a text representation of the custom emoji, instead of a emoji

  175. Cynthia

    Otherwise what's the point :P

  176. theTedd

    <body>haha :a-parrot-shaking-its-head-side-to-side-dancing-while-rapidly-cycling-through-psychedelic-colours:</body>

  177. snit

    almost every emoji i know of can be roughly expressed in terms of an existing one, and its always super jarring when i see people send custom emojis now and i get to read :some-random-emoji: in the middle of their text; it'd be even more jarring to just see a random cid instead imo

  178. snit

    although i understand not all of them can be expressed and as a _fallback_ i wouldn't mind shortcodes

  179. snit

    technically this'd be a purely client-side thing so a ui when adding an emoji could just have like a required shortcode field and an optional alt emoji field, then messages would use the alt emoji if provided and the shortcode if not

  180. snit

    then the receiving client will hopefully be able to handle replacement of either one

  181. Cynthia

    > <body>haha :a-parrot-shaking-its-head-side-to-side-dancing-while-rapidly-cycling-through-psychedelic-colours:</body> <body>:birdparty: :birdparty: :birdparty: :birdparty: :birdparty: :birdparty: :birdparty: :birdparty: </body>

  182. Cynthia

    try to figure out what that emoji looks like :P

  183. theTedd

    Cake everywhere

  184. Cynthia

    > almost every emoji i know of can be roughly expressed in terms of an existing one, and its always super jarring when i see people send custom emojis now and i get to read :some-random-emoji: in the middle of their text; it'd be even more jarring to just see a random cid instead imo How do I know you're talking about a frankenstein looking thing (that what it looks like to me), or a trollface

  185. snit

    because either way i'm already using 🧌 as a substitute for a trollface emoji; its a close enough equivalent that i and a lot of people i know already use it 🧌

  186. snit

    and if you _really_ want to be sure, the markup element could include a `name` attribute containing the shortcode, which you could display when hovered or something idk

  187. snit

    nevermind that's stupid the entire point is this is for clients that don't support the markup element

  188. Cynthia

    > because either way i'm already using 🧌 as a substitute for a trollface emoji; its a close enough equivalent that i and a lot of people i know already use it 🧌 Well what about some random person who doesn't know that's supposed to be a trollface

  189. Cynthia

    and is thinking you're just talking about frankenstein :P

  190. Cynthia

    Honestly just say :trollface:

  191. Cynthia

    and have the makeup replace that with a BoB picture of a trollface

  192. snit

    this is still entirely a client decision so i'm just gonna trust that a user who sets an alt emoji in a client that lets them is confident enough that they'll be understood either way 🤷

  193. snit

    either way is fine i just think it'd be nice to let users of unsupporting clients have a nicer representation for custom emojis that can reasonably be represented in unicode too

  194. Cynthia

    So how do you amend XEP-0394 to include this?

  195. singpolyma

    > pro tip just make a new body under a new namespace which can 🧌 Luckily we have one. XHTML-IM

  196. Cynthia

    'Course you do :P

  197. sunglocto

    >> pro tip just make a new body under a new namespace which can 🧌 > > Luckily we have one. XHTML-IM Which is deprecated

  198. Cynthia

    And also hard to implement and sanitize

  199. Cynthia

    You need to implement a XHTML+CSS renderer

  200. Cynthia

    I get it's only CSS 1.0, but there's a lot you need to go through for stylized messages

  201. singpolyma

    >>> pro tip just make a new body under a new namespace which can 🧌 >> >> Luckily we have one. XHTML-IM > > Which is deprecated Who the fuck cares? Replies and reactions are experimental too. It's just a word

  202. singpolyma

    > You need to implement a XHTML+CSS renderer No CSS. And html support is usually built into UI toolkit

  203. sunglocto

    never expected a response like that from you of all people, but yes you could say that if people want to implement it then there's no problem

  204. Cynthia

    > Who the fuck cares? Replies and reactions are experimental too. It's just a word based based

  205. Cynthia

    who cares about what XSF thinks

  206. singpolyma

    I honestly would consider a deprecated xep *more* legitimate for use than an experimental one

  207. singpolyma

    because deprecated means it was accepted before that

  208. Cynthia

    > No CSS. And html support is usually built into UI toolkit Really? Because the XHTML XEP is filled with CSS stuff

  209. singpolyma

    experimental is just whatever random thing

  210. Cynthia

    CSS 1.0 at least

  211. Cynthia

    Also sometimes you don't have HTML support (maybe because of your UI tookit)

  212. singpolyma

    If you want to support some CSS you can. I support text colour. But you certainly don't need to

  213. Cynthia

    So writing a HTML renderer yourself would be a massive pain in the ass

  214. singpolyma

    Ill admit the html thing built in on iOS sucks so I made my own in an hour

  215. singpolyma

    supporting the 5 tags that matter

  216. singpolyma

    if I needed a lot more I might go back to the built in one

  217. Cynthia

    Well good thing the HTML in XHTML is old as fuck

  218. Cynthia

    If it's modern HTML5, you'd be really screwed

  219. singpolyma

    good thing html hasn't changed in a way that would matter to us since I was born

  220. sunglocto

    > Well good thing the HTML in XHTML is old as fuck i think that's fine because realistically you shouldn't be having gigantic interactive things in your messages

  221. singpolyma

    HTML5 is the same thing. I don't understand why people think it's new and scary. It's still b/strong/I/em/IMG/a

  222. sunglocto

    to be honest, the only actual use of XHTML-IM i've seen in regular use is someone sending a gigantic "FUCK YOU" in red letters

  223. Cynthia

    I'd like servers to bring back privacy lists at least

  224. Cynthia

    It got deprecated in favor of some subset of it that sucks ass

  225. Cynthia

    It's just a blocklist of domains and JIDs now

  226. sunglocto

    Cynthia: do you mean Blocking Command?

  227. singpolyma

    it was almost never fully implemented but nothing stops you from doing so now

  228. Cynthia

    > Cynthia: do you mean Blocking Command? Yes, the "successor" to Privacy lists

  229. singpolyma

    I like the old archiving xep too but we're stuck with mam unless I want to go implement it

  230. Cynthia

    > it was almost never fully implemented but nothing stops you from doing so now I just wanna block strangers from PMing me or sending subscription requests

  231. singpolyma

    So mod_block_strangers?

  232. Cynthia

    Now that the privacy lists module for Prosody has been completely broken in latest versions of Prosody, there isn't much I can now

  233. Cynthia

    Now that the privacy lists module for Prosody has been completely broken in latest versions of Prosody, there isn't much I can do now

  234. singpolyma

    could fix it

  235. sunglocto

    Kontribute!

  236. Cynthia

    > So mod_block_strangers? Try to convince a public server admin to add that

  237. Cynthia

    Especially since it applies to EVERY stanza received

  238. Cynthia

    Not just people who want this

  239. sunglocto

    >> it was almost never fully implemented but nothing stops you from doing so now > I just wanna block strangers from PMing me or sending subscription requests what if the other user has the same module

  240. sunglocto

    how do either of you send a subscription request

  241. singpolyma

    Well make it optional not every user. Or don't use so called "public" server

  242. Cynthia

    > Well make it optional not every user. Or don't use so called "public" server You need to modify mod_block_strangers

  243. Cynthia

    > Well make it optional not every user. Or don't use so called "public" server You need to modify mod_block_strangers to do that

  244. singpolyma

    > how do either of you send a subscription request Can't. It's a problem with mod antispam too

  245. singpolyma

    >> Well make it optional not every user. Or don't use so called "public" server > You need to modify mod_block_strangers to do that Indeed.

  246. Cynthia

    Also mod_block_strangers breaks MAM

  247. Cynthia

    Even if you wanted to use it for yourself

  248. snit

    > So how do you amend XEP-0394 to include this? https://git.isekai.rocks/snit/protoxeps/tree/emoji-markup.xml like this? 0394 explicitly makes allowance for further specifications to extend it

  249. snit

    note that this is a VERY rough draft and just my personal preference lol

  250. snit

    i should really look at how the existing clients do this though

  251. Cynthia

    this is pretty gud

  252. Cynthia

    but you should add in a note for animated emojis

  253. Cynthia

    Clients SHOULD expect to handle animated emojis, if the file can hold it (GIFs, Animated PNGs, etc.)

  254. snit

    ah good point ty :D

  255. snit

    out of curiosity do you have any specific intention with "expect to handle", or could that include just ignoring the markup element altogether if an animated emoji is sent?

  256. Cynthia

    > out of curiosity do you have any specific intention with "expect to handle", or could that include just ignoring the markup element altogether if an animated emoji is sent? Show the first frame at least

  257. Cynthia

    Like for example, if you give a PNG parser that can't handle APNGs an animated PNG, they just display the first frame

  258. snit

    this makes sense

  259. snit

    i guess the idea of ignoring the element makes sense as like a general "if the filetype is unsupported" statement rather than specifically for animated ones

  260. Cynthia

    > i guess the idea of ignoring the element makes sense as like a general "if the filetype is unsupported" statement rather than specifically for animated ones Also the client is allowed to slow down the playback of an animated emoji

  261. Cynthia

    Anti-epilepsy and stuff

  262. snit

    smart smart

  263. snit

    pushed those changes

  264. snit

    also feel free to take this and do whatever you want with it :) i like writing these but idk how many i'll actually want to submit and actually be responsible for 🧌

  265. Cynthia

    or maybe reduce the constrast of the GIF? (since seizures are primarily caused by super rapid constrast changes, idk i'm not epileptic)

  266. Cynthia

    > also feel free to take this and do whatever you want with it :) > i like writing these but idk how many i'll actually want to submit and actually be responsible for 🧌 too bad I can't submit it for you :P

  267. snit

    > or maybe reduce the constrast of the GIF? (since seizures are primarily caused by super rapid constrast changes, idk i'm not epileptic) maybe a more vague "implementations MAY post-process the file for color-deficiency, epilepsy, or other accessibility reasons" 🤔

  268. Cynthia

    yes :P

  269. Cynthia

    that's much better

  270. snit

    but then again providing specific examples of post-processing would probably help too

  271. snit

    > too bad I can't submit it for you :P "can't"?

  272. Cynthia

    i'm a moth! anything I make is uncopyrightable

  273. snit

    that's so real

  274. snit

    i usually put everything i make in public domain but i'm not sure if that works with the XSF

  275. Cynthia

    you need to transfer your copyright over to them

  276. snit

    yeah but can you do that still with public domain stuff? i figure not at least

  277. Cynthia

    also that's not a pondering emoji >:(

  278. Cynthia

    that's a little red dot you drew in GIMP

  279. snit

    actually its just the example stuff in the original bob xep 🧌

  280. snit

    like i said, VERY rought draft hehe

  281. Cynthia

    fair

  282. singpolyma

    > Also mod_block_strangers breaks MAM what? how?

  283. Cynthia

    > what? how? https://issues.prosody.im/1410

  284. singpolyma

    hah. that's a fun bug. though I don't see how the mod privacy lists could be any different? unless it just happens to not have the bug

  285. Cynthia

    mod_privacy_lists is worse after modern versions of Prosody

  286. Cynthia

    it completely blocks groupchats

  287. singpolyma

    right. makes sense. that's what I'd sort of expect it to do naively. so bugs all around

  288. Cynthia

    I think Prosody API behavior changes lead to that

  289. moparisthebest

    you can't even do anything else without tracking joins

  290. moparisthebest

    unless you want spammers to be able to trivially bypass it

  291. Cynthia

    > you can't even do anything else without tracking joins what are you talking about

  292. singpolyma

    well you could allow group chat type. But that's insufficient for this mam can and probably other things. And tracking joins is easy

  293. singpolyma

    well you could allow group chat type. But that's insufficient for this mam case and probably other things. And tracking joins is easy

  294. Cynthia

    is moparis talking about groupchat blocking?

  295. singpolyma

    No about your block strangers case

  296. Cynthia

    oh

  297. Cynthia

    still doesn't make sense, what are joins

  298. Cynthia

    subscription acceptances?

  299. singpolyma

    MUC joins. The thing you were talking about

  300. Cynthia

    ohhhh

  301. singpolyma

    though even track joins would break mam if the app does it before join. Hmm

  302. singpolyma

    this is why I block strangers at the client level. Doing it on the server is complicated heh

  303. Cynthia

    whitelist MUCs on your bookmark?

  304. singpolyma

    blocking only to bare jid might get pretty much there actually

  305. Cynthia

    yes

  306. Cynthia

    you don't have to track joins

  307. Cynthia

    just stick to the user's MUC bookmarks

  308. Cynthia

    and whitelist those

  309. singpolyma

    what if they join and don't bookmark?

  310. Cynthia

    uhhhhh

  311. Cynthia

    > this is why I block strangers at the client level. Doing it on the server is complicated heh let me ask you a question

  312. Cynthia

    if a spammer fakes their message as a groupchat message to get through the filter

  313. Cynthia

    will the client actually take it?

  314. moparisthebest

    yes, that's what I was saying

  315. Cynthia

    like will it check "oh we're not in this room, so let's just ignore it"

  316. moparisthebest

    I don't think clients should but all the ones I tested did

  317. Cynthia

    what the absolute FUCK

  318. Cynthia

    that is so fucking dumb

  319. Cynthia

    fine, we'll track joins in a session store

  320. Cynthia

    and also MAM requests (taking the ID of the stanza)

  321. Cynthia

    and also MAM requests (taking the ID of the stanza and query)

  322. Cynthia

    > I don't think clients should but all the ones I tested did why do clients do the most dumbest shit

  323. Cynthia

    like i know Conversations still blindly accepts invites without even prompting the user

  324. moparisthebest

    also there's no way to tell if a message is a MUC PM or a 1:1

  325. lol

    >> I don't think clients should but all the ones I tested did > why do clients do the most dumbest shit Lack of battle testing

  326. Cynthia

    you think spammers have already done a decent amount of battle testing

  327. lol

    You would think so yeah but not enough spammers

  328. Cynthia

    not enough? heh no, there's one too many

  329. lovetox

    Gajim certainly does drop a type=groupchat message from a not joined MUC

  330. Cynthia

    i'm working on my own Prosody module that does stranger blocks and stuff, and if clients are really this dumb, then it'll take much more code than it would to actually make it

  331. Cynthia

    i'm not gonna hold a crappy client's hand too much, but i dont' have much of a choice if most of them are really this bad

  332. lovetox

    maybe tone it down a little bit, why would it matter if a client accepts a type=groupchat message?

  333. lovetox

    why would the spammer do this, and not simply send instead a type=chat

  334. Cynthia

    to get through filters

  335. Cynthia

    ideally we would be able to let through any groupchat messages because well, ideally clients can filter out messages from rooms they're not in

  336. moparisthebest

    I reported some MUC PM bugs privately to conversations & dino, conversations fixed immediately, still nothing months later from dino I should just send morph the scripts lol

  337. lol

    Lmao

  338. Cynthia

    > I reported some MUC PM bugs privately to conversations & dino, conversations fixed immediately, still nothing months later from dino I should just send morph the scripts lol maybe you should :P

  339. lovetox

    > ideally we would be able to let through any groupchat messages because well, ideally clients can filter out messages from rooms they're not in they can filter out these messages, so why do you care?

  340. Cynthia

    > they can filter out these messages, so why do you care? they can.. but if moparisthebest is right, most of them don't

  341. snit

    > You would think so yeah but not enough spammers hire the spammers on matrix 🧌

  342. lovetox

    > they can.. but if moparisthebest is right, most of them don't then there is maybe a reason or its the clients problem, nothing you need to fix on the server

  343. Cynthia

    alright, fair

  344. Cynthia

    i won't filter groupchat messages then

  345. Cynthia

    if a dogshit client ends up not filtering it themselves, that's their problem

  346. Cynthia

    and i highly encourage spammers to exercise clients this way

  347. Cynthia

    sorry

  348. moparisthebest

    try all the different type=normal etc that muc forwards and arguably shouldn't

  349. moparisthebest

    best one was jingle calling via muc PM, it looks like the muc is calling you and you can't tell what nick it was

  350. Cynthia

    this should be a server

  351. Cynthia

    like badxmpp

  352. moparisthebest

    I have code to publish for all these and more

  353. Cynthia

    Honestly make it into a public server

  354. moparisthebest

    I always do this, make poc, report, forget about it while waiting far too long for fixes lol

  355. Cynthia

    it would be much easier if it was like badxmpp, a server you could connect to with the client

  356. Cynthia

    and see how it would fare

  357. Cynthia

    call it a client stresstesting suite or something

  358. Cynthia

    that would get much more attention than some client devs

  359. Cynthia

    that would get much more attention than just reporting to some client devs

  360. snit

    i'd love more things i can just throw an implementation at to stress test it both for like spec compliance and also just against possibly malicious entities

  361. moparisthebest

    could rework to just attack anyone who joins a muc

  362. Cynthia

    yes, that would be amzaing

  363. Cynthia

    yes, that would be amazing

  364. Cynthia

    for really any future client devs

  365. Cynthia

    or client devs.. right now

  366. moparisthebest

    That's a good idea I'll add it to the todo pile

  367. Cynthia

    so anyway, i'm gonna write my module in a naive way

  368. Cynthia

    i'm not gonna fucking do vulnerability mitigations for clients

  369. singpolyma

    I think if you allow through only stuff to fulljid you're pretty safe anyway for this use case

  370. singpolyma

    the MUC pm workaround won't work for mucs you aren't even in etc

  371. singpolyma

    most of my personal spam filters allow through everything to fulljid