All Projects → midoricorp → Jabbot

midoricorp / Jabbot

Licence: artistic-2.0
Extensible, multi-protocol chat bot written in java

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Jabbot

Thewife
Crypto trading bot that reacts to optimized RSI signal 🤖📈💸
Stars: ✭ 22 (+144.44%)
Mutual labels:  bot
Parabot
The best Open Source Runescape Private Server (RSPS) Bot; For servers such as Ikov, DreamScape, Runique, PkHonor, and many more!
Stars: ✭ 24 (+166.67%)
Mutual labels:  bot
Money bot
Docker-containered bot. Added to a group chat, she replies to any message containing price and currency pattern. Live!
Stars: ✭ 8 (-11.11%)
Mutual labels:  bot
Notmail bot
Telegram bot that acts as an email client
Stars: ✭ 23 (+155.56%)
Mutual labels:  bot
Facebook Messenger
Definitely the best way to make Bots on Facebook Messenger with Ruby
Stars: ✭ 927 (+10200%)
Mutual labels:  bot
Irackbot
Bridge between Slack and IRC channels allowing message filtering and logging while keeping communication public
Stars: ✭ 25 (+177.78%)
Mutual labels:  bot
Pyrobot
Telegram Userbot powered by Pyrogram
Stars: ✭ 23 (+155.56%)
Mutual labels:  bot
Thecsebot
Bot user for the slack team of IIT Roorkee, CSE students batch of 2016-20
Stars: ✭ 9 (+0%)
Mutual labels:  bot
Vkb
Bot for vk.com competitions
Stars: ✭ 24 (+166.67%)
Mutual labels:  bot
Disatbot
DABOT: Disaster Attention Bot
Stars: ✭ 26 (+188.89%)
Mutual labels:  bot
Fs0c13ty Bot
🤖 A discord bot made to help you in moderation.
Stars: ✭ 24 (+166.67%)
Mutual labels:  bot
Op Bot
Bot telegram simples escrito em Go.
Stars: ✭ 24 (+166.67%)
Mutual labels:  bot
Adhesive
A chatbot serving as your glue between Telegram and Signal sticker packs
Stars: ✭ 25 (+177.78%)
Mutual labels:  bot
Physics Command
Physics platform is a tool for hardware systems (e.g: raspberryPi 3B ). It retrieves data passing through the network and sends it to a control panel. It works the same way as a botnet by receiving remote commands. (you can imagine that as a black box)
Stars: ✭ 23 (+155.56%)
Mutual labels:  bot
Sulla
👩🏻‍🔬 Javascript Whatsapp api library for chatbots
Stars: ✭ 844 (+9277.78%)
Mutual labels:  bot
Whatis
Whatis bot server for Slack!
Stars: ✭ 22 (+144.44%)
Mutual labels:  bot
Scrapit
Scraping scripts for various websites.
Stars: ✭ 25 (+177.78%)
Mutual labels:  bot
Telegram Iranbot
🌎 A dead simple Telegram bot for FA to FA, EN to FA translation
Stars: ✭ 9 (+0%)
Mutual labels:  bot
Buddywing.defaultcombat
The default combat routine included with BuddyWing, the bot for SWTOR
Stars: ✭ 8 (-11.11%)
Mutual labels:  bot
Instagramfirstcommenter
This bot will post a predefined comment as fast as possible to a new post on the target profile. I used this to successfully win tickets for a big music festival.
Stars: ✭ 26 (+188.89%)
Mutual labels:  bot

Jabbot

Jabbot is an easily extensible chat robot written in java. It supports connection to multiple servers & chat systems, and a pluggable chatroom command system and focus on extensibility.

Jabbot consists of 3 projects:

  1. jabbot-binding-api whihch provide a set of interfaces to create new chat system bindings such like XMPP, IRC...
  2. jabbot-extension-api which aims at providing an interface for plugging new commands & features for chat rooms
  3. jabbot-daemon which is the actual Bot daemon

Bindings can be written using jabbot-binding api and are currently stored under the bindings directory.

Extensions can be written using jabbot-extension-api and are currently stored under the extensions directory.

Quickstart

Assuming you have git, java 7, jsvc and maven2 installed

Build it

host$ git clone https://github.com/midoricorp/jabbot.git
host$ cd jabbot/
host$ mvn clean install -Pstandalone,all
host$ cd jabbot-daemon/target/
host$ tar -xzf jabbot-daemon-<version>.tar.gz
host$ cd ../../

Configure it

apt-get install libjson-perl libconfig-simple-perl
./genconf.pl
mv jabbot.json jabbot-daemon/target/jabbot-daemon-<version>/conf/

Start it

host$ cd jabbot-daemon/target/jabbot-daemon-<version>/
host$ bin/jabbot.sh start

Jabbot Configuration

Jabbot can be configured by editing the main config file jabbot.json under the conf/ directory. The config file consists in the following main areas

####bindings####

    "bindings":[
        {   "name":"XMPP",
            "className":"org.wanna.jabbot.binding.xmpp.XmppBinding"
        }
    ]

Defines a list of available binding type such as xmpp, irc..

  • name: a unique identifier for this binding
  • className: the canonical name of the binding connection class

####serverList####

    "serverList":[
        {   "type" : "XMPP",
            "url":"jabber.hostname.com",
            "serverName":"hostname.com",
            "port":5222,
            "username":"Jabbot",
            "password":"password",
            "commandPrefix":"!",
            "parameters":{
                "allow_self_signed":true,
                "ping_interval":600
            },            
            "rooms":[
                {"name":"[email protected]","nickname":"Jabbot"}
            ],
            "commands":[
                {"name":"help","className":"org.wanna.jabbot.command.HelpCommand"}
            ]
        }
    ]

Defines a list of servers to which Jabbot will connect

  • type: the name of a binding
  • url: the url to which to connect
  • commandPrefix: the command prefix used to trigger commands & action in a chatroom
  • parameters: a map of binding specific parameters
  • rooms: list of rooms to join on this connection
  • commands: list of commands available for this connection.

####commands####

    "commands":[
        {"name":"jira","className":"org.wanna.jabbot.extensions.jira.IssueViewer",
            "configuration":{
                "url":"https://jira.hostname.com",
                "username":"username",
                "password":"password"
            }
        }
    ]

Defines a list of availble commands for the parent object

  • name: the name of the command
  • className: the canonical name of the Command class
  • configuration: a configuration Map passed to the Command at initialization phase

Testing

If you want to quickly test your new extension, there's one special type of binding which allow you to start Jabbot without any configuration required.

The cli binding is a binding emulator which will just read from standard input, process the command and print the response on the console. In order to use it, simply follow the same steps show in the quickstart section but start it as following

host$ bin/jabbotcli.sh
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].