Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
#######
#
# E-scripts on IRC.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/irc.e>
#           or at <http://angg.twu.net/e/irc.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




# «.dancer»			(to "dancer")
# «.rcirc-localhost»		(to "rcirc-localhost")
# «.irc-protocol»		(to "irc-protocol")
# «.identd»			(to "identd")
# «.tkirc»			(to "tkirc")
# «.zenirc»			(to "zenirc")
# «.xchat»			(to "xchat")
# «.registering»		(to "registering")
# «.cgiirc»			(to "cgiirc")
# «.cgiirc-twu»			(to "cgiirc-twu")
# «.cgiirc-disconnects»		(to "cgiirc-disconnects")
# «.rcirc-print»		(to "rcirc-print")
# «.ii-and-sic»			(to "ii-and-sic")
# «.ngircd»  			(to "ngircd")
# «.registering-a-channel»	(to "registering-a-channel")
# «.operator»			(to "operator")
# «.ircds»			(to "ircds")





#####
#
# the dancer irc server
# 2004oct09
#
#####

# «dancer»  (to ".dancer")

# (find-status   "dancer-ircd")
# (find-vldifile "dancer-ircd.list")
# (find-udfile   "dancer-ircd/")
# (find-status   "dancer-ircd-doc")
# (find-vldifile "dancer-ircd-doc.list")
# (find-udfile   "dancer-ircd-doc/")
# (find-udfile "dancer-ircd/dancer-oper-guide.txt.gz")
# (find-udfile "dancer-ircd/dancer-user-guide.txt.gz")

# file:///usr/share/doc/dancer-ircd/dancer-oper-guide.html/index.htm
# file:///usr/share/doc/dancer-ircd-doc/dancer-oper-guide.html
# file:///usr/share/doc/dancer-ircd-doc/dancer-user-guide.html

# file:///usr/share/doc/dancer-ircd/dancer-oper-guide.html/index.htm
# file:///usr/share/doc/dancer-ircd/dancer-user-guide.html/index.htm



firefox /usr/share/doc/dancer-ircd/dancer-oper-guide/html/index.html &
firefox /usr/share/doc/dancer-ircd/dancer-user-guide/html/index.html &

# (find-man "8 dancer-ircd")
# (find-udfile "dancer-ircd/README.Debian")




#####
#
# connecting to localhost with rcirc
# 2006jul14
#
#####

# «rcirc-localhost»  (to ".rcirc-localhost")

(rcirc-connect "localhost" "6667" "edrx"
               "Eduardo Ochs <http://angg.twu.net/>"
               "Eduardo Ochs <http://angg.twu.net/>"
	       nil)



#####
#
# IRC protocol: rfc1459
# 2004oct11
#
#####

# «irc-protocol»  (to ".irc-protocol")
# IRC protocol: (find-rfcfile "rfc1459.txt")
#          and: (find-rfcfile "rfc2810.txt")
# (find-fline "/etc/services")
# http://ezine.daemonnews.org/199907/irchack.html
# (erc-select  :server "127.0.0.1")
# (with-current-buffer "127.0.0.1:ircd" (erc-cmd-JOIN "a-channel"))
#*

eeg -f =(<<'%%%'
PASS pass
NICK nick
USER user localhost localhost :I.m the user "user", with nick "nick"
JOIN #a-channel
NAMES #a-channel
PRIVMSG #a-channel :Hi guys...Sup?
WHOIS nick
WHOIS edrx
QUIT
%%%) telnet 127.0.0.1 6667 \
  |& tee ~/o

# (find-fline "~/o")

#*





#####
#
# identd
# 2004oct11
#
#####

# «identd»  (to ".identd")
# Connecting to dancer-ircd takes a long time if there's no identd
# running.
#
# (erc-select :server "127.0.0.1")

# (find-available "nullidentd")
# (find-status   "nullidentd")
# (find-vldifile "nullidentd.list")
# (find-udfile   "nullidentd/")
# (find-udfile "nullidentd/README")
# (find-man  "8 nullidentd")
# (find-man  "8 nullidentd" "foobar")

# Identd protocol: (find-rfcfile "rfc1413.txt")

# There isn't any type of QUIT command in nullidentd, but it will exit
# with a timeout error after a few seconds.
#*
eeg -f =(<<'%%%'
2222, 23

QUIT
%%%) telnet 127.0.0.1 113

#*

# (find-available "slidentd")







#####
#
# tkirc
# 2000jun10
#
#####

# «tkirc»  (to ".tkirc")

# (find-status "tkirc")
# (find-vldifile "tkirc.list")
# (find-fline "/usr/share/doc/tkirc/")
# (find-fline "/usr/share/doc/tkirc/readme.gz")
# (find-fline "/usr/share/doc/tkirc/sample.tkircrc.gz")
# (find-fline "/usr/bin/tkirc")

# (find-fline "~/.tkircrc")





#####
#
# ircII
# 2000jun10
#
#####

# (find-status "ircii")
# (find-vldifile "ircii.list")
# (find-fline "/usr/doc/ircii/")

# (eeman "ircII")

cd /usr/share/ircII/
agrep -i rfc $(find *)
for i in $(find * -type f | grep 'gz$'); do
  echo $i:
  zcat $i | grep -i rfc
done




#####
#
# bitchX
# 2000jun10
#
#####

# (find-status "bitchx")
# (find-vldifile "bitchx.list")
# (find-fline "/usr/doc/bitchx/")

cd /usr/doc/bitchx/
agrep -i rfc $(find *)
for i in $(find * -type f | grep 'gz$'); do
  echo $i:
  zcat $i | grep -i rfc
done




#####
#
# tinyirc
# 2000jun10
#
#####

# (find-status "tinyirc")
# (find-vldifile "tinyirc.list")
# (find-fline "/usr/doc/tinyirc/")




#####
#
# liece (emacs IRC client)
# 2000jun10
#
#####

# (find-status "liece")
# (find-vldifile "liece.list")
# (find-fline "/usr/doc/liece/")
# (find-fline "/usr/share/emacs/site-lisp/liece/")

# (find-status "liece-dcc")
# (find-vldifile "liece-dcc.list")
# (find-fline "/usr/doc/liece-dcc/")



#####
#
# zenirc (emacs IRC client)
# 2000jun10
#
#####

# «zenirc»  (to ".zenirc")
# (find-status "zenirc")
# (find-vldifile "zenirc.list")
# (find-fline "/usr/doc/zenirc/")
# (find-fline "/usr/doc/zenirc/RFC1459.gz")
# (find-fline "/usr/doc/zenirc/examples/")
# (find-fline "/usr/doc/zenirc/examples/zenirc-example.el")
# (find-fline "/usr/doc/zenirc/zenirc.ascii.gz")

# (code-c-d "zenirc" "/usr/share/emacs/site-lisp/zenirc/" "zenirc")
# (find-zenircfile "")
# (find-zenircfile "zenirc.el")
# (find-zenircnode "The zenirc-server-alist way." "setq zenirc-server-alist")

(setq zenirc-server-alist 
      '(("irc.debian.org" nil nil "grothendieck" nil)))
(zenirc)
(load-library "zenirc-format")
(load-library "zenirc-color")

# (find-zenircnode "Non ZenIRC specific commands.")
# (find-zenircnode "ZenIRC specific commands." "/query")

# (find-zenircfile "")
# (find-zenircfile "zenirc-format.el")
# (find-zenircfile "zenirc-color.el")
# (find-zenircfile "zenirc-play.el")


cd /usr/share/emacs/site-lisp/zenirc/
etags *.el





#####
#
# Some samples of IRC discussions
# 2000aug27
#
#####

rm -Rv /tmp/ircdocs/
mkdir  /tmp/ircdocs/
print -l       /var/lib/dpkg/info/*{irc,bitch}*.list
for i in $(cat /var/lib/dpkg/info/*{irc,bitch}*.list); do
  if [[ -f $i ]]; then
    cp -Pv $i /tmp/ircdocs/
  fi
done

cd /tmp/ircdocs/
gzip -dvr *

cd /tmp/ircdocs/
agrep -i wasting $(find * -type f)
agrep -i 'hi ' $(find * -type f) |& l -S


# (find-fline "/usr/doc/zenirc/FAQ.gz")
# (find-fline "/usr/doc/zenirc/tour.of.irc.gz" "A greeting channel is a channel where >50%")




#####
#
# xchat
# 2000oct18
#
#####

# «xchat»  (to ".xchat")
# (find-status "xchat")
# (find-vldifile "xchat.list")
# (find-fline "/usr/doc/xchat/")

# (find-status "xchat-common")
# (find-vldifile "xchat-common.list")
# (find-fline "/usr/doc/xchat-common/")

# (find-status "xchat-text")
# (find-vldifile "xchat-text.list")
# (find-fline "/usr/doc/xchat-text/")

# (find-fline "/usr/share/doc/xchat-common/html/")
# (find-fline "/usr/doc/xchat-common/html/")
# (find-w3 "/usr/doc/xchat-common/html/xchat.html")

# (find-fline "~edrx/.xchat/")
# (find-fline "~edrx/.xchat/commands.conf" "join5")
# (find-fline "~edrx/.xchat/xchat.conf" "nickname2")



#####
#
# registering a nickname
# 2000nov16 / 2008sep19
#
#####

# «registering»  (to ".registering")
/msg nickserv help register
/msg nickserv register XXXXX

# (find-fline "~edrx/.xchat/serverlist.conf" "irc.debian.org")
# Or in the button "edit" of the connect menu

/msg chanserv help
/msg chanserv help register
/ctcp tcn version

/me for messages with the pink ball


*** 506 #lua Please register with services and use the IDENTIFY
        command (/msg nickserv help) to speak in this channel
/msg nickserv help
-NickServ- ***** NickServ Help *****
-NickServ- NickServ allows users to 'register' a nickname, and stop
-NickServ- others from using that nick. NickServ allows the owner
           of a
-NickServ- nickname to disconnect a user from the network that is
           using
-NickServ- their nickname.
-NickServ-  
-NickServ- For more information on a command, type:
-NickServ- /msg NickServ help <command>
-NickServ- For a verbose listing of all commands, type:
-NickServ- /msg NickServ help commands
-NickServ-  
-NickServ- The following commands are available:
-NickServ- GHOST           Reclaims use of a nickname.
-NickServ- GROUP           Adds a nickname to your account.
-NickServ- UNGROUP         Removes a nickname from your account.
-NickServ- IDENTIFY        Identifies to services for a nickname.
-NickServ- INFO            Displays information on registrations.
-NickServ- LISTCHANS       Lists channels that you have access to.
-NickServ- REGISTER        Registers a nickname.
-NickServ- SET             Sets various control flags.
-NickServ- RELEASE         Releases a services enforcer.
-NickServ-  
-NickServ- Other commands: DROP, HELP, ID, LOGOUT, MYACCESS,
           SETPASS, 
-NickServ-                 ACC, STATUS, TAXONOMY, VERIFY
-NickServ- ***** End of Help *****

<edrx> register edrx
-NickServ- Insufficient parameters for REGISTER.
-NickServ- Syntax: REGISTER <password> <email>
(edrx) register P4ssw0rd eduardoochs@gmail.com

/msg NickServ VERIFY REGISTER edrx2 qmpqklhcolym
<edrx2> VERIFY REGISTER edrx2 qmpqklhcolym
-NickServ- edrx2 has now been verified.
-NickServ- Thank you for verifying your e-mail address! You have
           taken steps in ensuring that your registrations are not
           exploited.





#####
#
# epic
# 2000dec04
#
#####

# (find-status "epic")
# (find-vldifile "epic.list")
# (find-fline "/usr/share/doc/epic/")
# (find-fline "/usr/lib/epic/")




#####
#
# cgi:irc
# 2006jun30
#
#####

# «cgiirc»  (to ".cgiirc")
# http://cgiirc.sourceforge.net/
# http://optusnet.dl.sourceforge.net/sourceforge/cgiirc/cgiirc-0.5.9.tar.gz
# (code-c-d "cgiirc" "~/usrc/cgiirc-0.5.9/")
# (find-cgiircfile "")
# (find-cgiircfile "README")
# (find-cgiircfile "cgiirc.config")
# (find-cgiircfile "cgiirc.config.full")
#*
rm -Rv ~/usrc/cgiirc-0.5.9/
tar -C ~/usrc/ -xvzf \
  $S/http/optusnet.dl.sourceforge.net/sourceforge/cgiirc/cgiirc-0.5.9.tar.gz
cd     ~/usrc/cgiirc-0.5.9/
mv -iv cgiirc.config cgiirc.config.orig

# Prepare to run it locally:

cat > cgiirc.config <<'---'
# (find-cgiircfile "")
# (find-cgiircfile "cgiirc.config.orig")
default_server = localhost
default_port = 6667
default_channel = #emacs
default_name = CGI:IRC User
default_nick=CGI???
image_path = images
script_nph = nph-irc.cgi
script_form = client-perl.cgi
script_login = irc.cgi
#
# (find-cgiircfile "cgiirc.config.full")
allow_non_default = 1
access_channel = .*
session_timeout = 18000
---

#*
# (find-fline "/var/www/")
ln -sf ~/usrc/cgiirc-0.5.9 /var/www/cgiirc
# Acess one of these URLs to 
# http://localhost/
# http://localhost/cgiirc/
# http://localhost/cgiirc/irc.cgi

#*





#####
#
# cgi:irc at twu
# 2006jul03
#
#####

# «cgiirc-twu»  (to ".cgiirc-twu")
* (eebgTWU)
zsh
rm -Rv   ~/slow_html/tmp/cgiirc/
rm -Rv ~/public_html/tmp/cgiirc/
mkdir  ~/public_html/tmp/cgiirc/
cd     ~/public_html/tmp/cgiirc/
wget http://optusnet.dl.sourceforge.net/sourceforge/cgiirc/cgiirc-0.5.9.tar.gz
ln -s . cgiirc-0.5.9
tar -xvzf cgiirc-0.5.9.tar.gz
rm -v   cgiirc-0.5.9
laf

mv -iv cgiirc.config cgiirc.config.orig
cat > cgiirc.config <<'---'
default_server = irc.freenode.net
default_port = 6667
default_channel = #emacs
default_name = Eduardo Ochs
default_nick=edrx??
image_path = images
script_nph = nph-irc.cgi
script_form = client-perl.cgi
script_login = irc.cgi
allow_non_default = 1
access_channel = .*
session_timeout = 18000
---

rm -Rv ~/slow_html/tmp/cgiirc/
mv -iv ~/public_html/tmp/cgiirc/ ~/slow_html/tmp/

# (find-node "(tar)")
# (find-sh "tar --help" "--strip-path=")

# http://angg.twu.net/ tmp/cgiirc/irc.cgi





#####
#
# cgi:irc: disconnects (in thttpd)
# 2006jun30
#
#####

# «cgiirc-disconnects»  (to ".cgiirc-disconnects")
# Cgiirc displays this:
# *** Disconnected from IRC (click to reconnect)
# From: http://cvs.cgiirc.org/wiki?p=StreamProblems

CGI:IRC relies on 'streaming' so it can display the text in the main
window. To check that streaming is working there is a script at
http://cgiirc.sourceforge.net/files/teststream.pl.txt (rename it to
teststream.cgi and set permissions to 755 on it).

If streaming is not working there are several areas where the problem
can be:

Server
------
The main script is a nph (non-parsed header) script, some web servers
(notably Cobalt Raqs, older versions of lighttpd and early versions of
Apache 2) don't support these, however this is easily worked around,
simply rename nph-irc.cgi to something like main.cgi and update
script_nph in cgiirc.config.


# From: http://cvs.cgiirc.org/wiki?p=InstallationIssues

Connection dies when chat is idle
---------------------------------
This happenes a lot for many reasons, but you might want to check if
your apache has mod_security which you should disable.





#####
#
# rcirc-print
# 2006oct05
#
#####

# «rcirc-print»  (to ".rcirc-print")
;; (find-angg ".emacs" "defalias-hard-maybe")
;; (find-efunction 'rcirc-print)
(defalias-hard-maybe 'rcirc-print-orig 'rcirc-print)

(defun rcirc-print (process sender response target text &optional activity)
  "Print TEXT in the buffer associated with TARGET.
Format based on SENDER and RESPONSE.  If ACTIVITY is non-nil,
record activity.
This is the debug version (by Edrx) that calls `rcirc-print-orig'.
Cancel with: (defalias-hard 'rcirc-print 'rcirc-print-orig)"
  (message "%S" `(rcirc-print-orig ,process ,sender ,response ,target ,text ,activity))
  (rcirc-print-orig process sender response target text activity))

;; (rcirc-print-orig #<process im.bitlbee.org> "marcelo" #("QUIT" 0 4 (face (rcirc-server))) "&bitlbee" "Leaving..." nil)
;; (rcirc-print-orig #<process irc.freenode.net> "edrx" "PRIVMSG" "#eev" "hi" nil)
;; (rcirc-print-orig #<process im.bitlbee.org> "root" #("MODE" 0 4 (face (rcirc-server))) "&bitlbee" "-v danielle" nil)
;; (rcirc-print-orig #<process irc.freenode.net> "bpalmer`" #("JOIN" 0 4 (face (rcirc-server))) "#emacs" "" nil)
;; (rcirc-print-orig #<process im.bitlbee.org> "biabrum" #("JOIN" 0 4 (face (rcirc-server))) "&bitlbee" "" nil)
;; (rcirc-print-orig #<process im.bitlbee.org> "root" #("MODE" 0 4 (face (rcirc-server))) "&bitlbee" "+v biabrum" nil)




#####
#
# ii and sic
# 2008jan11
#
#####

# «ii-and-sic»  (to ".ii-and-sic")
# http://www.suckless.org/wiki/tools/irc/irc_it
# http://www.suckless.org/wiki/tools/irc/simple_irc_client
# http://www.suckless.org/download/ii-1.3.tar.gz
# http://www.suckless.org/download/sic-0.9.tar.gz
#*
rm -Rv ~/usrc/ii-1.3/
tar -C ~/usrc/ -xvzf \
  $S/http/www.suckless.org/download/ii-1.3.tar.gz
cd     ~/usrc/ii-1.3/

#*
rm -Rv ~/usrc/sic-0.9/
tar -C ~/usrc/ -xvzf \
  $S/http/www.suckless.org/download/sic-0.9.tar.gz
cd     ~/usrc/sic-0.9/

#*
# (code-c-d "sic" "~/usrc/sic-0.9/")
# (find-sicfile "")
# (code-c-d "ii" "~/usrc/ii-1.3/")
# (find-iifile "")




#####
#
# ngircd
# 2012may16
#
#####

# «ngircd»  (to ".ngircd")
http://ngircd.barton.de/index.php.en




#####
#
# Registering a channel (#eev)
# 2012nov25
#
#####

# «registering-a-channel» (to ".registering-a-channel")
# (find-fline "~/LOGS/2012nov25.eev")
# (find-fline "~/LOGS/2012nov25.freenode")
# http://blog.freenode.net/2012/06/group-registration-closure/

# /msg chanserv register #eev
#  -->
<edrx> register #eev
-ChanServ- #eev is now registered to edrx.
-ChanServ-  
-ChanServ- Channel guidelines can be found on the freenode website
-ChanServ- (http://freenode.net/channel_guidelines.shtml).
-ChanServ- freenode is a service of Peer-Directed Projects Center,
           a
-ChanServ- not-for-profit organisation registered in England and
           Wales.
-ChanServ- This is a primary namespace channel as per
-ChanServ- http://freenode.net/policy.shtml#primarychannels
-ChanServ- If you do not own this name, please consider
-ChanServ- dropping #eev and using ##eev instead.
(edrx) 

# /msg ChanServ help set guard
#  -->
<edrx> help set guard
-ChanServ- ***** ChanServ Help *****
-ChanServ- Help for SET GUARD:
-ChanServ-  
-ChanServ- SET GUARD allows you to have ChanServ join your channel.
-ChanServ-  
-ChanServ- Syntax: SET <#channel> GUARD ON|OFF
-ChanServ-  
-ChanServ- Example:
-ChanServ-     /msg ChanServ SET #atheme GUARD ON
-ChanServ- ***** End of Help *****
(edrx) 

/topic News at: http://angg.twu.net/#eev
*** 482 #eev You're not a channel operator




#####
#
# Channel Operators
# 2012dec01
#
#####

# «operator» (to ".operator")
# http://www.irchelp.org/irchelp/opguide.html
# http://www.irchelp.org/irchelp/faq.html
# http://www.irchelp.org/irchelp/ircprimer.html
# http://www.irchelp.org/irchelp/irctutorial.html
# http://www.quakenet.org/help/general/nobody-has-ops-in-my-channel-what-can-i-do
# http://answers.yahoo.com/question/index?qid=20090121234903AAVg8ZW

<Tau> usa o /chanserv op #eev edrx
<Tau> ou o /chanserv topic #eev novo_topico




#####
#
# ircds (more recent than dancer)
# 2013sep05
#
#####

# «ircds» (to ".ircds")
# (find-zsh "availabledebs | sort | grep ircd")

*** cameron.freenode.net 001 Welcome to the freenode Internet Relay
                             Chat Network edrx
*** 002 Your host is cameron.freenode.net[84.240.3.129/6667],
        running version ircd-seven-1.1.3
*** 003 This server was created Sat Feb 25 2012 at 17:22:16 EET
*** 004 cameron.freenode.net ircd-seven-1.1.3 DOQRSZaghilopswz
        CFILMPQSbcefgijklmnopqrstvz bkloveqjfI

# http://freenode.net/seven.shtml
# http://www.atheme.org/project/charybdis
# http://en.wikipedia.org/wiki/Comparison_of_IRC_daemons
# http://irc.netsplit.de/







http://0branch.com/highlight/snippets/rcirc-dot-emacs.el
http://wiki.znc.in/ZNC







#  Local Variables:
#  coding:               raw-text-unix
#  modes:                (fundamental-mode emacs-lisp-mode)
#  ee-delimiter-hash:    "\n#*\n"
#  ee-delimiter-percent: "\n%*\n"
#  ee-anchor-format:     "«%s»"
#  End: