| 12345678910111213141516171819202122232425262728 |
- (in-package :cl-user)
- (defpackage chatikbot.plugins.admin
- (:use :cl :chatikbot.common))
- (in-package :chatikbot.plugins.admin)
- (defmacro handling-errors (&body body)
- `(handler-case (progn ,@body)
- (simple-condition (err)
- (format *error-output* "~&~A: ~%" (class-name (class-of err)))
- (apply (function format) *error-output*
- (simple-condition-format-control err)
- (simple-condition-format-arguments err))
- (format *error-output* "~&"))
- (condition (err)
- (format *error-output* "~&~A: ~% ~S~%"
- (class-name (class-of err)) err))))
- (defun rep (input)
- (when input
- (with-output-to-string (*standard-output*)
- (let ((*package* (find-package 'chatikbot.common))
- (*error-output* *standard-output*))
- (handling-errors
- (format t "~{~S~^ ;~% ~}~%"
- (multiple-value-list (eval (read-from-string input)))))))))
- (def-message-admin-cmd-handler handle-admin-eval (:eval)
- (bot-send-message (rep (format nil "~{~A~^ ~}" *args*))))
|