emacs-circe / circe

Circe, a Client for IRC in Emacs
GNU General Public License v3.0
393 stars 51 forks source link

Help on adding circe support to eev #355

Open edrx opened 5 years ago

edrx commented 5 years ago

Is it ok to ask for help here?

I am trying to add circe support to eev. Eev already has support for rcirc - tersely described here: http://angg.twu.net/eev-intros/find-rcirc-intro.html - and I've been using it successfully in workshops, but in some situations rcirc doesn't work because it doesn't have SASL authentication... I think that the best solution would be to add circe support to eev now, and then work with the rcirc maintainers over the next months to add SASL authentication to it.

I only need help to create the functions with the skeletons below. I spent the last hours reading circe.el, and I didn't see any elegant way of testing if we're already connected to Freenode and reusing the existing connection instead of creating a second one...

(defun ee-circe-connect-server (irc-network-or-server)
  "Connect to IRC-NETWORK-OR-SERVER, or reuse an existing connection.
Return the buffer name of the server buffer."
  )

(defun ee-circe-connect-channel (irc-network-or-server channel)
  "Connect to the channel CHANNEL in IRC-NETWORK-OR-SERVER.
Reuse an existing connection if possible. CHANNEL should be a
string like \"#emacs\" for a standard channel or like \"fsbot\"
for a query channel. This function returns the buffer name of the
channel buffer."
  )

Thanks in advance!... Eduardo Ochs http://angg.twu.net/#eev

wasamasa commented 1 year ago

rcirc does have SASL support these days, so I guess this can be closed.

Circe's notion of a connection is the server buffer, which is made current before using several functions. There isn't really an elegant solution to map a network/channel name to a buffer, therefore it's necessary to iterate over all buffers, skip those that don't have the expected major mode and query the rest for the expected network/channel name.