yetibot / core

:expressionless: Core yetibot utilities, extracted for shared use among Yetibot and its various plugins
https://yetibot.com
Eclipse Public License 1.0
27 stars 17 forks source link
chatbot clojure yetibot yetibot-plugins

yetibot.core

Build Status Clojars Codecov Deps

Core Yetibot utilities, extracted for shared use among Yetibot and its various plugins. yetibot.core is not meant to be run standalone, but instead used as a dependency from another project that provides config and optionally other Yetibot plugins, private or public.

The majority of Yetibot commands live in the main Yetibot repo.

Usage

You can depend on this library to build your own Yetibot plugins. Building your own commands is dead simple. Here's an example command that adds two numbers:

(ns mycompany.plugins.commands.add
  (:require [yetibot.core.hooks :refer [cmd-hook]]))

(defn add-cmd
  "add <number1> <number2> # Add two numbers"
  [{[_ n1 n2] :match}] (+ (read-string n1) (read-string n2)))

(cmd-hook #"add" ; command prefix
          #"(\d+)\s+(\d+)" add-cmd)

See Yetibot's own commands for more complex and diverse examples.

Dev postgres

To quickly provision a postgresql database to work against, run:

docker-compose up -d

And use the corresponding connection string in config:

:yetibot-db-url "postgresql://yetibot:yetibot@postgres:5432/yetibot"

Remote REPL

Yetibot runs an embedded nREPL server on port 65432. Connect to it via:

nrepl://localhost:65432

Or replace localhost with the remote network address.

yetibot-dashboard

yetibot-dashboard is an NPM module that contains static HTML/JS/CSS for the Yetibot dashboard. It's served by yetibot.core's Ring server. A public example can be seen at public.yetibot.com.

To update to the latest version run:

./bin/yetibot-dashboard

This downloads the lateset yetibot-dashboard from NPM, extracts it, copies the build into resources/public then creates a git commit with the changes.

Docs

Change Log

View the CHANGELOG.

License

Copyright © 2013–2019 Trevor C. Hartman

Distributed under the Eclipse Public License version 1.0.