Git Product home page Git Product logo

hubot-factoids's Introduction

Hubot Factoids

A factoids implementation for Hubot, inspired by oftn-bot.

Build Status

Features

  • Supports hubot-auth.
  • @mention support: factoid value will be directed at mentioned user.
  • Customizable prefix
  • Aliases: point a factoid at the value of another factoid.
  • Substitutive editing using sed-like syntax.
  • Factoid history: any time a new value is set on a factoid, the name of the user, current date, previous value and new value are recorded
  • Factoid popularity: currently only visible in the raw data
  • HTTP route to view raw JSON factoid data.

Installation

npm install hubot-factoids

Configuration

HUBOT_BASE_URL [required] - URL of Hubot (ex. http://myhubothost.com:5555/)

HUBOT_FACTOID_PREFIX [optional] - prefix character to use for retrieving a factoid (defaults to ! if unset)

Commands

Create/update a factoid

Creates a new factoid if it doesn't exist, or overwrites the factoid value with the new value. Factoids maintain a history (can be viewed via the factoid URL) of all past values along with who updated the value and when.

Note: <factoid> can be any string which does not contain = or =~ (these reserved characters delimit the factoid and its value), although special characters should be avoided.

hubot: learn <factoid> = <details>

Inline editing a factoid

If you prefer, you can edit a factoid value inline, using a sed-like substitution expression.

hubot: learn <factoid> =~ s/expression/replace/gi

hubot: learn <factoid> =~ s/expression/replace/i

hubot: learn <factoid> =~ s/expression/replace/g

hubot: learn <factoid> =~ s/expression/replace/

Set an alias

An alias will point to the specified pre-existing factoid and when invoked will return that factoid's value.

hubot: alias <factoid> = <factoid>

Forget a factoid

Disables responding to a factoid. The factoid is not deleted from memory, and can be re-enabled by setting a new value (its complete history is retained).

hubot: forget <factoid>

Get URL to factoid data

Serves a page with the raw JSON output of the factoid data

hubot: factoids

Recall a factoid value

Recall the value of the given factoid.

Note: Hubot should not be directly addressed.

!<factoid>

Can be combined with a @mention to direct the message at another user:

!factoid @user

Hubot will respond accordingly:

Hubot> @user: factoid value

Search for a factoid

Find a factoid containing the given string. The string can be matched in either the factoid key or value.

hubot: search foobar

Drop a factoid

Permanently removes a factoid—this action cannot be undone. If hubot-auth script is loaded, "admin" or "factoids-admin" role is required to perform this action. It's recommended you use the forget command instead of drop.

hubot: drop <factoid>

hubot-factoids's People

Contributors

attiks avatar enterprisey avatar therealklanni avatar xurizaemon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hubot-factoids's Issues

can't override blip

The code looks like this right now:

 blip = '!' unless process.env.HUBOT_FACTOID_PREFIX

If HUBOT_FACTOID_PREFIX is setup, blip would end up being undefined. I think it should be this instead:

 blip = process.env.HUBOT_FACTOID_PREFIX or '!'

Update repository website

Right now, it's pointing at https://hubot.github.com/ , which might be confusing as that's the hubot homepage. Might I suggest leaving it black, to indicate this is effectively the home page. Or, maybe use the npmjs.org URL?

How do you get HUBOT_BASE_URL

It the readme file, it is said that setting HUBOT_BASE_URL is required.
It is said to be the URL of Hubot (ex. http://myhubothost.com:5555/). How do you get this? I mean, I have my bot running, but I have no idea how to get its url (if it even has one!).

I would need some guidelines there!

thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.