(in-package :cl-user) (defpackage chatikbot.plugins.huiza (:use :cl :chatikbot.common :chatikbot.eliza)) (in-package :chatikbot.plugins.huiza) (defparameter *fuck-off* '((отъебись) (мне похуй) (ебаный ты нахуй!)) "Fuck-off responses") (defun goto-p (input) (member input '(иди пошел вали))) (defun prep-p (i) (member i '(в на))) (defun dirty-p (i) (member i '(лох хуй мудак ебалай пидор сука уебок мудило еблан говнюк уебище ебантяй пидрила))) (defparameter *huiza-rules* `( (((?is ?g goto-p) (?is ?prep prep-p) (?* ?х)) (а самому не пойти ?prep ?х ?) (мамку свою посылай ?prep ?х) (покомандуй тут еще) ,@*fuck-off*) (((?is ?g goto-p) (?* ?x)) (сам иди ?x) (покомандуй тут еще) ,@*fuck-off*) (((?* ?a) ты (?* ?x)) (сам ?x) (сам ты ?x) (а по ебалу?) (сейчас мы разберемся кто еще тут ?x) ,@*fuck-off*) (((?is ?x dirty-p)) (сам ?x) (сам ты ?x) (а по ебалу?) (сейчас мы разберемся кто еще тут ?x)) (((?* ?a) (?or хуита хуета хуйня лажа говно бред) (?* ?b)) ("вам, сударь," не угодить) (и что?) (бывает) (мопед не мой) (сам получше придумывай) ,@*fuck-off*) (((?* ?a) (?or норм хорошо молодец ниплохо ниплоха ниеплоха) (?* ?b)) (спасибо) (я старался) (как себе) ,@*fuck-off*) (((?or спасибо) (?* ?x)) (всё для вас) (пожалуйста) (на здоровье) ,@*fuck-off*) (((?* ?x) (?or уровень) (?* ?y)) (в жопу себе его засунь) (хуюровень) ,@*fuck-off*) (((?* ?a) (?is ?x ,(lambda (i) (and (symbolp i) (search "ХАХА" (symbol-name i))))) (?* ?b)) (очень смешно) (клоунов тут нашел?) (посмейся мне еще) ,@*fuck-off*) (((?* x)) (:text . "И чё?") (:text . "Сам-то понял?") (:text . "Ну хуй знает") (:text . "Бля...") (:text . "В душе не ебу") (:text . "Мне похуй") (:text . "Eбаный ты нахуй") (:text . "Отъебись") (:sticker . "BQADAgADFAADOoERAAGoLKS_Vgs6GgI") ;; ЭЭ епта Чо (:sticker . "BQADAgADGQADOoERAAFDXJisD4fClgI") ;; Ну чё ты несёшь (:sticker . "BQADAgADFwADOoERAAHCw-fBiFjACgI") ;; А у меня собака, я не могу (:sticker . "BQADAgADEgADOoERAAFtU3uF9HvtQgI") ;; Бухнём? (:sticker . "BQADBAADQAEAAnscSQABqWydSKTnASoC")))) (defun send-dont-understand (&optional text reply-id) (let* ((*package* (find-package :chatikbot.plugins.huiza)) (resp (eliza (read-from-string-no-punct text) *huiza-rules*))) (when resp (bot-send-message resp :reply-to reply-id)))) (def-message-handler huiza-handler (-1000) (log:info "handle-unknown-message" *message*) (send-dont-understand (preprocess-input text)) t)