;; Ian Eure wrote this. (defun erc-cmd-TABLEFLIP (&rest words) (let ((subj (if words (flip-text (mapconcat 'identity words " ")) "┻━┻"))) (erc-send-message (mapconcat 'identity (list "(ノ°□°)ノ╯︵ " subj) "")))) (defun erc-cmd-FLIP (&rest words) (let ((subj (if words (flip-text (mapconcat 'identity words " "))))) (erc-send-message (mapconcat 'identity (list "" subj) "")))) (defun flip-text (text) (with-temp-buffer (insert (apply 'string (reverse (string-to-list text)))) (translate-region (point-min) (point-max) upside-down-table) (buffer-substring (point-min) (point-max)))) (defvar upside-down-alist '((?a . ?ɐ) (?b . ?q) (?c . ?ɔ) (?d . ?p) (?e . ?ǝ) (?f . ?ɟ) (?g . ?ƃ) (?h . ?ɥ) (?i . ?ı) (?j . ?ɾ) (?k . ?ʞ) (?l . ?l) (?m . ?ɯ) (?n . ?u) (?o . ?o) (?p . ?d) (?q . ?b) (?r . ?ɹ) (?s . ?s) (?t . ?ʇ) (?u . ?n) (?v . ?ʌ) (?w . ?ʍ) (?x . ?x) (?y . ?ʎ) (?z . ?z) (?A . ?∀) (?B . ?B) (?C . ?Ɔ) (?D . ?D) (?E . ?Ǝ) (?F . ?Ⅎ) (?G . ?פ) (?H . ?H) (?I . ?I) (?J . ?ſ) (?K . ?K) (?L . ?˥) (?M . ?W) (?N . ?N) (?O . ?O) (?P . ?Ԁ) (?Q . ?Q) (?R . ?R) (?S . ?S) (?T . ?┴) (?U . ?∩) (?V . ?Λ) (?W . ?M) (?X . ?X) (?Y . ?⅄) (?Z . ?Z) (?0 . ?0) (?1 . ?Ɩ) (?2 . ?ᄅ) (?3 . ?Ɛ) (?4 . ?ㄣ) (?5 . ?ϛ) (?6 . ?9) (?7 . ?ㄥ) (?8 . ?8) (?9 . ?6) (?, . ?') (?. . ?˙) (?? . ?¿) (?! . ?¡) (?\" . ?,) (?' . ?,) (?` . ?,) (?( . ?)) (?) . ?() (?[ . ?]) (?] . ?[) (?{ . ?}) (?} . ?{) (?< . ?>) (?< . ?>) (?& . ?⅋) (?_ . ?‾))) (defvar upside-down-table (make-translation-table upside-down-alist))