-
daidoji
Hi, I'm trying to play around with modifying ejabberd with new xmpp commands with more functionality and I was wondering what the "easiest" client would be to use to do that? I've tried using conversejs and strophe directly but are there any other options?
-
daidoji
Like say I wanted to display mod_time on a website.
-
daidoji
https://github.com/processone/ejabberd/blob/master/src/mod_time.erl
-
Zash
Probably depends mostly on what (languages etc) you're most familiar with already.
-
daidoji
hmm, I'm a data scientist by trade. I thought these javascript clients would be easiest since I've done work in that language and haven't done much Gui work
-
daidoji
to be honest, I'd just be happy with a client that had some walkthroughs instead of slogging through the mud on my own
-
daidoji
like I just wondered what other people do? Are there like XMPP tools I don't know about or utilities to make this easier? Or do people just adjust their servers/clients and then fire up wireshark or something?
-
Zash
It depends. Personally I'm pretty likely to try to solve whatever by writing Prosody modules or whatever in Lua, since that's what I'm most familiar with.
-
daidoji
word
-
Zash
As for JS and Strophe.js, I still have this book on a shelf somewhere: http://professionalxmpp.com/
-
daidoji
yeah I saw that. Did you think it was good?
-
Zash
I think so. Was some time ago I read it last tho.
-
daidoji
word, well I'll order it and see then.
-
Zash
Hm, https://strophe.im/strophejs/#documentation--tutorials looks like a short list
-
daidoji
yeah I saw those
-
daidoji
but they were a bit opaque :p
-
daidoji
at least for my skillset. However, I'll dive back into those for now I guess
-
daidoji
I'm just at the don't know what I don't know part of my journey here with XMPP
-
Zash
And it looks like the links have broken :(
-
daidoji
some of them, they're still in the github repo
-
daidoji
another weird thing about that project is I had to fiddle with the makefile to get it to build
-
daidoji
they rely on naturaldocs which is some kind of .Net tool for doing documentation
-
daidoji
Wasn't a quick way to get it working on linux
-
Zash
Nothing I've heard about
-
lovetox
daidoji, am i understanding you correctly, you want for example to modify the server moudle mod_time
-
lovetox
and just need a client to test your modifications?
-
Matt
hello anyone online?
-
Martin
Yep
-
Matt
i have a question about strophe lol
-
Matt
someone is already mentioned it above
-
Matt
im trying to connect to an xmpp server using strophe and i get the xml out put and strophe shows that my user name is password is correct but for some reason its not connecting.
-
Martin
No idea about strophe but maybe someone else knows it.
-
Matt
same thing with xmpp.js
-
lksjdflksjdf
Is there a server that has code for XEP-0436 (MUC presence versioning) yet? I couldn't find anything but perhaps there's branch or module I overlooked
-
flow
lksjdflksjdf, given that it's co-authored by matthew, I'd look into the prosody trunk
-
daidoji
lovetox well I wanted to add some capabilities to a muc room
-
daidoji
and I thought hte best way to do that is add some IQ stanzas and some other things
-
daidoji
but then I need to modify the client on one side and the server on the other and there aren't really good tutorials or walkthroughs on how to do that
-
Zash
daidoji: Have you gotten enough of strophe.js working to send an iq stanza?
-
Zash
Once connected, it'd be something like: `connection.sendIQ($iq({type:"get",id:connection.getUniqueId()}).c("time",{xmlns:"urn:xmpp:time"}), (r) => console.log(new Date(r.firstChild.getElementsByTagName("utc")[0].textContent)))`
-
Zash
In Prosody, that's responded to by https://hg.prosody.im/trunk/file/tip/plugins/mod_time.lua
-
MattJ
lksjdflksjdf: in not aware of any implementation yet
-
lksjdflksjdf
ok thanks for the info
-
lksjdflksjdf
I'm wondering something about the XEP though ... A user goes offline and online again - are we back to the same version? What if the user switches clients, is that still the same version?
-
daidoji
Zash yeah I figured that out just last night after I got off
-
lovetox
Gajim has a XML Console
-
lovetox
where you can simply put in the xml you want, and it sends it for you
-
lovetox
also you can see what you get back from the server, if thats what you want
-
daidoji
lovetox oh wow that's awesome. Thanks
-
MattJ
lksjdflksjdf: it could be the same version if the state of the room is exactly the same
-
MattJ
That's all the XEP needs to specify
-
Zash
Same could apply to roster versioning
-
MattJ
Yes
-
lksjdflksjdf
I understand that you want to leave the details up to implementations π€οΈ I'm just more interested in the details of muc versioning (implementations) than the details of roster versioning, because there tend to be much more changes there. Like, if I leave a 300-person MUC at night and rejoin it the morning after. If 280 of those 300 people are the same and I only get 20 presences, that'd be nice. But if I still get 300 presences because everyone rejoined or is online with different resources, I'm not too excited about the feature anymore.
-
moparisthebest
lksjdflksjdf, if a person named 'bob' is there right now and tommorow you don't even know if it's the same person or not
-
MattJ
lksjdflksjdf: if you rejoin 8 hours later I don't think it's terrible if you have to refetch
-
lksjdflksjdf
moparisthebest, you mean if it _wasn't_ a different version after bob rejoined, I wouldn't know if it's the same person? Technically you could, with occupant ids. But without occupant ids that's true.
-
Zash
While there'll be more stuff going on with presence, it's probably still worth it to look at roster versioning and how that's implemented, since it's basically the same model.
-
Zash
You have stuff, that may change, and you have some token that identifies a specific version of it. You show the server the token and you get something that's supposed to sync your state with the servers.
-
lksjdflksjdf
> if you rejoin 8 hours later I don't think it's terrible if you have to refetch aw π but it takes time and bandwidth. Sure it's not "terrible" but I was hoping it could be partially eliminated
-
MattJ
I'm not saying it can't
-
MattJ
But I think that's stretching the goals
-
Zash
With roster versioning, if sending the delta would be larger than just sending the roster ... then just send the roster!
-
Zash
Or if you don't have enough deltas. Or if you don't actually keep deltas at all, in which case it's just a ETag-ish thing.
-
testhello
hi guys it's my first time using xmpp
-
testhello
say something if it's working
-
lksjdflksjdf
Zash, what's an "ETag"?
-
Zash
testhello, "something"
-
lksjdflksjdf
testhello, it's working π
-
testhello
woah
-
Zash
lksjdflksjdf, HTTP cache thing.
-
testhello
dude this is like the original QQ or wechat
-
lksjdflksjdf
you mean your client looks like it was from 15 years ago? π
-
Zash
One of the nice things is that if you don't like the client, there are others you can use.
-
testhello
I head Tencent originally ripped off of something I guess this is the one huh...
-
lovetox
jonasβ, was there any progress on the avatar from muclumbus front?