vandusen-spam plugin added by sjamaan on Tue Feb 23 11:24:54 2021

(module vandusen-spam
        ()

(import chicken scheme)
(use vandusen irc sql-de-lite)

(plugin 'spam
        (lambda ()
          (define paste-db-file (or
                                 (and ($ 'paste-db-file) (car ($ 'paste-db-file)))
                                 "/var/awful/pastiche/pastiche.db"))
          (command 'spam
                   '(: "spam" (+ space) (submatch (= 40 alnum))) ;; our sha1 hashes are 40 chars long
                   (lambda (master hash)
                     (cond ((file-exists? paste-db-file)
                            (let* ((db (open-database paste-db-file))
                                   (deleted-entries
                                    (begin
                                       (exec (sql db "delete from searchable where hash=?") hash)
                                       (exec (sql db "delete from pastes where hash=?") hash))))
                              (if (zero? deleted-entries)
                                  (reply-to master "Could not find an entry with that hash")
                                  (reply-to master (format "I have deleted ~a paste(s) with hash ~a successfully." deleted-entries hash)))
                              (close-database db)))
                           (else (reply-to master (format "Cannot find database at ~a" paste-db-file)))))
                   public: #f))))