1
0

huiza.lisp 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. (in-package :cl-user)
  2. (defpackage chatikbot.plugins.huiza
  3. (:use :cl :chatikbot.common :chatikbot.eliza))
  4. (in-package :chatikbot.plugins.huiza)
  5. (defparameter *fuck-off*
  6. '((отъебись) (мне похуй) (ебаный ты нахуй!))
  7. "Fuck-off responses")
  8. (defun goto-p (input) (member input '(иди пошел вали)))
  9. (defun prep-p (i) (member i '(в на)))
  10. (defun dirty-p (i) (member i '(лох хуй мудак ебалай пидор сука уебок мудило еблан говнюк уебище ебантяй пидрила)))
  11. (defparameter *huiza-rules*
  12. `(
  13. (((?is ?g goto-p) (?is ?prep prep-p) (?* ?х))
  14. (а самому не пойти ?prep ?х ?) (мамку свою посылай ?prep ?х) (покомандуй тут еще) ,@*fuck-off*)
  15. (((?is ?g goto-p) (?* ?x))
  16. (сам иди ?x) (покомандуй тут еще) ,@*fuck-off*)
  17. (((?* ?a) ты (?* ?x))
  18. (сам ?x) (сам ты ?x) (а по ебалу?) (сейчас мы разберемся кто еще тут ?x) ,@*fuck-off*)
  19. (((?is ?x dirty-p))
  20. (сам ?x) (сам ты ?x) (а по ебалу?) (сейчас мы разберемся кто еще тут ?x))
  21. (((?* ?a) (?or хуита хуета хуйня лажа говно бред) (?* ?b))
  22. ("вам, сударь," не угодить) (и что?) (бывает) (мопед не мой) (сам получше придумывай) ,@*fuck-off*)
  23. (((?* ?a) (?or норм хорошо молодец ниплохо ниплоха ниеплоха) (?* ?b))
  24. (спасибо) (я старался) (как себе) ,@*fuck-off*)
  25. (((?or спасибо) (?* ?x))
  26. (всё для вас) (пожалуйста) (на здоровье) ,@*fuck-off*)
  27. (((?* ?x) (?or уровень) (?* ?y))
  28. (в жопу себе его засунь) (хуюровень) ,@*fuck-off*)
  29. (((?* ?a) (?is ?x ,(lambda (i) (and (symbolp i) (search "ХАХА" (symbol-name i))))) (?* ?b))
  30. (очень смешно) (клоунов тут нашел?) (посмейся мне еще) ,@*fuck-off*)
  31. (((?* x))
  32. (:text . "И чё?")
  33. (:text . "Сам-то понял?")
  34. (:text . "Ну хуй знает")
  35. (:text . "Бля...")
  36. (:text . "В душе не ебу")
  37. (:text . "Мне похуй")
  38. (:text . "Eбаный ты нахуй")
  39. (:text . "Отъебись")
  40. (:sticker . "BQADAgADFAADOoERAAGoLKS_Vgs6GgI") ;; ЭЭ епта Чо
  41. (:sticker . "BQADAgADGQADOoERAAFDXJisD4fClgI") ;; Ну чё ты несёшь
  42. (:sticker . "BQADAgADFwADOoERAAHCw-fBiFjACgI") ;; А у меня собака, я не могу
  43. (:sticker . "BQADAgADEgADOoERAAFtU3uF9HvtQgI") ;; Бухнём?
  44. (:sticker . "BQADBAADQAEAAnscSQABqWydSKTnASoC"))))
  45. (defun send-dont-understand (chat-id &optional text reply-id)
  46. (let* ((*package* (find-package :chatikbot.plugins.huiza))
  47. (resp (eliza (read-from-string-no-punct text) *huiza-rules*)))
  48. (when resp
  49. (bot-send-message chat-id resp :reply-to reply-id))))
  50. (def-message-handler huiza-handler (message -1000)
  51. (log:info "handle-unknown-message" message)
  52. (send-dont-understand chat-id (preprocess-input text))
  53. t)