Skip to content

Instantly share code, notes, and snippets.

@ajchemist
Last active August 29, 2015 13:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajchemist/9931916 to your computer and use it in GitHub Desktop.
Save ajchemist/9931916 to your computer and use it in GitHub Desktop.
;;;; erc4klisper.el starts here
;;; Usage:
;;; 1. append this code to ~/.emacs
;;; 2. locate this file to your custom `load-path',
;;; and adding to ~/.emacs
;;;
;;; (require 'erc4klisper)
;;;
;;; or
;;;
;;; (autoload 'erc-connect-ozinger "erc4klisper")
;;;
(require 'erc)
(erc-timestamp-mode 1)
(erc-match-mode 1) ;Notify me if someone calls me
(erc-services-mode 1) ;autoload erc-services.el
(setq erc-prompt-for-nickserv-password nil)
(add-to-list 'erc-networks-alist '(Ozinger "ozinger.org"))
(add-to-list 'erc-nickserv-alist
'(Ozinger "오징오징어!NickServ@services.ozinger.org"
"이\\s-대화명은\\s-등록되어\\s-있습니다.\\s-다른\\s-대화명을\\s-선택하거나,"
"오징오징어" "identify" nil nil
"\\s-대화명의\\s-주인으로\\s-확인되었습니다."))
(add-hook 'erc-after-connect
#'(lambda (server nick)
(erc-server-send (mapconcat #'identity `("MODE" ,nick "x") " "))))
(add-hook 'erc-nickserv-identified-hook
#'(lambda (network nick)
(erc-autojoin-channels erc-session-server nick)))
(erc-autojoin-mode 0) ;autoload erc-join.el
(setq erc-autojoin-timing 'ident
erc-autojoin-delay 10)
(setq erc-autojoin-channels-alist
'(("ozinger.org" "#lisp")))
(setq erc-server-auto-reconnect t
erc-server-reconnect-timeout 20
erc-server-reconnect-attempts 3)
(defun erc-cmd-ELISP (&rest form)
"Eval FORM and send the result and the original form as:
FORM => (eval FORM)."
(let ((string
(with-temp-buffer
(mapc #'(lambda (f) (insert f " ")) form)
(goto-char (point-min))
(setq form (read (current-buffer)))
(let ((res (condition-case err
(eval form)
(error
(format "Error: %s" err)))))
(insert (format " => %s" res)))
(buffer-substring-no-properties
(point-min) (1- (point-max))))))
(erc-send-message string)))
(add-to-list 'erc-noncommands-list 'erc-cmd-ELISP)
(add-hook 'erc-kick-hook #'auto-rejoin)
(defun auto-rejoin (buffer)
(let ((bn (buffer-name buffer)))
(run-at-time "0.1 sec" nil (lambda (bn)
(set-buffer bn)
(erc-join-channel bn)) bn)))
;; erc-log.el `erc-generate-log-file-name-network'
(defun erc-generate-log-file-name-network-month (buffer target nick server port)
"Generates a log-file name using the network name rather than server name.
This results in a file name of the form #channel@network-%Y-%m.log.
This function is a possible value for `erc-generate-log-file-name-function'."
(let ((file (concat (when target target)
"@"
(or (with-current-buffer buffer (erc-network-name)) server)
"-"
(format-time-string "%Y-%m")
".log")))
;; we need a make-safe-file-name function.
(convert-standard-filename file)))
(defun erc-save-all-server-buffer-in-logs ()
(interactive)
(mapc #'erc-save-buffer-in-logs (erc-channel-list erc-server-process)))
(erc-log-mode 0) ;autoload erc-log.el
(setq erc-generate-log-file-name-function 'erc-generate-log-file-name-network-month
erc-log-channels-directory "/var/log/erc"
erc-log-matches-flag t
erc-save-buffer-on-part t
erc-save-queries-on-quit t
erc-log-write-after-send nil
erc-log-write-after-insert nil
erc-log-file-coding-system 'utf-8-unix)
(let ((logging nil))
(defun erc-logging-toggle ()
(setq logging (not logging))
(if logging
(progn
(add-to-list 'erc-modules 'log)
(erc-log-enable))
(setq erc-modules (remq 'log erc-modules))
(erc-log-disable))))
(when (file-readable-p (expand-file-name "__LOG__" erc-log-channels-directory))
(erc-logging-toggle))
;;; -------------------------------------------------------------
;;; please custom below
;;;
(setq erc-nickserv-passwords
'((Ozinger (("IRC-NICK" . "PASSWD")))))
;;;###autoload
(defun erc-connect-ozinger ()
"connect to Ozinger IRC server"
(interactive)
(erc :server "irc.ozinger.org"
:port 6669
:nick "IRC-NICK"))
;;;###autoload
(defun erc-connect-ozinger-encrypt ()
"connect to Ozinger IRC server"
(interactive)
(erc-tls :server "ssl.ozinger.org"
:port 16667
:nick "IRC-NICK"))
(when (featurep 'erc)
(setq erc-anonymous-login t
erc-max-buffer-size 9999
erc-echo-notices-in-minibuffer-flag t
erc-send-whitespace-lines nil
erc-ignore-list nil
erc-interpret-mirc-color nil
erc-kill-buffer-on-part t
erc-kill-queries-on-quit t
erc-kill-server-buffer-on-quit nil
erc-fill-column 81))
(provide 'erc4klisper)
;;; Local Variables:
;;; lexical-binding: t
;;; End:
;;;; erc4klisper.el ends here
@ajchemist
Copy link
Author

http://i.imgur.com/WVzV0uB.png

몇가지 기본동작
C-c C-j --- /join #channel
C-c C-p --- /part #channel
C-C C-q --- /quit
C-c C-n --- list users in current channel

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