Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement full CTCP spec #49

Open
SoniEx2 opened this issue May 1, 2016 · 5 comments
Open

Implement full CTCP spec #49

SoniEx2 opened this issue May 1, 2016 · 5 comments

Comments

@SoniEx2
Copy link

SoniEx2 commented May 1, 2016

You should implement the full CTCP spec, available here: http://www.irchelp.org/irchelp/rfc/ctcpspec.html

@aatxe
Copy link
Owner

aatxe commented May 2, 2016

I believe all of this except for DCC and ERRMSG are implemented. I suppose it's worth adding ERRMSG, but I don't see any reason to support DCC.

@SoniEx2
Copy link
Author

SoniEx2 commented May 2, 2016

What about inline CTCP and escape codes? Also I don't think anyone implements ERRMSG, so you shouldn't. Also any way to expose CTCPs to the user? (e.g. for this)

@freddyb
Copy link
Contributor

freddyb commented May 18, 2018

I'm interested in implementing DCC in the future (probably in the fall). I'll do some experiments, starting with some minor plumbing to support parsing DCC sends to the IRC client, so users of this care can write their own code to handle a download. As a next step, one could write something that allows downloading into a buffered slice or a file.

I'm quite interested in this feature, but if there are strong feelings against this, I'm happy to do this someplace else. Either way, I'd be thrilled to find some guidance to make it play nice in combination with this crate and be reusable for others.

Any thoughts?

@aatxe
Copy link
Owner

aatxe commented Jun 20, 2018

Hi @freddyb,

Sorry for not replying sooner! I think the most sensible way to implement DCC (and for that matter, also to implement the full CTCP spec as this issue is suggesting) is to provide an additional crate that you could hook into within message handling code. The reason for this is that the full CTCP spec requires you to be able to have multiple CTCP messages within ordinary IRC PRIVMSGs, and I don't want to make the typical use case of dealing with non-CTCP messages (i.e. the vast majority of them) ergonomically worse. For DCC, it especially makes sense because after a bit of IRC exchange, you move to a different protocol with a direct connection to the other partner.

I'm happy to offer advice and assistance when you attempt this though, even if it is as a separate crate! Please let me know when you're working on it! 😄

@freddyb
Copy link
Contributor

freddyb commented Jun 21, 2018 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants