Git Product home page Git Product logo

saihubot's Introduction

Saihubot

lerna

๐Ÿค– Frontend Framework to build ๐Ÿ’ฌ message/chat bots ops in the ๐ŸŒ Browser or Command Line, no server required.

You can add new skills to bot via skills and extend its ability via addons. All with plain javascript. ๐Ÿ‘

Saihubot's API is inspired by hubot's API, so a developer who has learned hubot-plugins could learn saihu-skills very quickly. โšก

Check Online Demo

Imgur

Or run the command bot without install

npx saihu npm saihu

Features

  • Chatbot works in multiple platforms, without server setup.
  • Structure was inspired by hubot
    • Regex based message matching
    • Could write adapter to fully cooperate with your web UI
    • Could swap brain to support different backends
    • Provide skills(pluginn) architecture that able to expand functions
    • Can extend bot functionality by import addons
  • Tiny size, easy to learn (the init version has just 80 lines that bundle with three skills)
  • Plugin callbacks are extremely flexible; You can control in-page elements, execute the local command, fetch remote data, trigger remote actions...

Modules

Module Version Description Doc
saihubot npm version core module Doc
saihu npm version Sample Command line bot Doc
Web samples Online Demos
Adapters Version Description Doc
saihubot-html-adapter npm version HTML Doc
saihubot-react-redux-adapter npm version React + Redux Doc
saihubot-cli-adapter npm version Command Line Doc
Skills Version Description Doc
saihubot-skill-search npm version Search engines Doc
saihubot-skill-diagnostics npm version ping, echo, current time Doc
saihubot-cli-skill-qrcode npm version generate qrcode Doc

How to use

Try Saihubot samples online

If you just want to try how the saihubot looks like, Check Online Demo

Try Saihubot locally

Clone the project with command

git clone https://github.com/gasolin/saihubot.git

Then run

npm build
npm start

or

npx http-server .

now you have a working bot in the browser!

Try Saihubot on Github

Fork the project, edit index.html with Github editor, save it and see the result on https://[yourname].github.io/saihubot

Saihubot also provide Search skills, you can include it via skillsFile: ['skills/saihubot-search.js']

Check the Search Demo.

๐Ÿ”Ž Google Search skill:

me: g saihubot
bot: Search saihubot via Google
me: google saihubot
bot: Search saihubot via Google
me: search saihubot
bot: Search saihubot via Google

Want to learn more?

Check the docs section.

What Saihu means?

Saihu(ๅธซๅ‚…) means master in Taiwanese, which people used to call the artisans. Saihubot's origin goal is to provide a code sample that makes learning hubot and its ES6 variant Webbybot easier; then I found Saihu is a great way to embed bot into anywhere browser can live with.

License

Saihubot use MIT License

ChangeLog

Check ChangeLog

saihubot's People

Contributors

dependabot[bot] avatar gasolin avatar jimmyliao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

saihubot's Issues

[cli] get system env

get system env and return a proper type

all system env are prefixed with SAIHUBOT_

SAIHUBOT_ETH_ADDRS=addr1, addr2

run getConfig('LANG')

should return as 'en' (string)

run getConfig('ETH_ADDRS')

should return as [addr1, addr2] (array)

organize in single repo

current structure

https://github.com/gasolin/saihubot in gh-pages branch
- index.html
- docs
- samples
- src
  - adapters
  - addons
  - core
  - skills

https://github.com/gasolin/saihubot-cli in main branch
- src
  - adapters
  - addons
  - cli.js

suggest structure: (monorepo manage by lerna)

keep commit in gh-pages branch so current html version will keep working

Name modules as saihubot-[adapter]-[addon|skill]-[name]

https://github.com/gasolin/saihubot in gh-pages branch
- index.html
- cli/ // previous https://github.com/gasolin/saihubot-cli 
- docs
- samples
- packages
  - core
  -  html-adapter
  - html-addon-search
  ...
  - html-skill-search
  ...
  - cli-adaper
  - cli-addon-search
  ...
  - cli-skill-search
  ...

include keyword saihubot, saihubot-adapter, saihubot-skill, saihubot-addon in package.json

[addon] fetch

wrap window.fetch / node_fetch as addons.fetch API in saihubot-[adapter]-addons-search

create requirements manager

add rules manager to handle rules/skills

  • validate
  • add

Then we can implement more functions in followup bugs

  • remove by id
  • run by id
  • gen help

[brain] config

readonly config brain, accept path

requirement:{
  brain: {
    props: ['read', 'config'],
  }
}

add help attr and show in plugin

There's a helper plugin which currently show names of plugins, let's add help attr in each plugin and show it when the help attr is available

parse text input from dialog.confirm

current huohubot-dialog only take care of click input, but does not parse text input

expect:

when user type something, the bot will parse it and treat as its selection

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.