Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

kwirk

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kwirk

KwirK, a sophisticated multi-network, multi-protocol bot, (eventually).

  • 0.2.12
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

KwirK

KwirK aims to be a sophisticated, multi-network, multi-protocol utility bot that can act as a bridge between popular services.

Goals

  • support multiple chat protocols
    • IRC is the current focus with Slack and HipChat next on the list
  • link channels on the different networks (IRC<->IRC is alpha)
  • transparent channel encryption with DiffieHellman key exchange
  • http administrative front-end and client area
  • ability to link multiple bots
  • eggdrop like command console, but not with telnet
  • plugin system
  • translation, in channel, channel to channel, and pm to pm as proxy
  • much more, this list will certainly expand

Installation

npm install kwirk [--save]

or

clone the repo: git clone https://github.com/jfrazx/KwirK/

If you haven't setup your environment:

npm install -g typescript tsd

npm install
tsd install

( the node.d.ts file I'm using is modified, if it gets overwritten... )

Functionality

IRC is mostly stable, but with little other than providing building blocks. Emitted events will (eventually) be catalogued appropriately. In the interim take a look at the defined IRC Constants (/src/constants/constants.ts) IRC to IRC binding appears to be working well.

Example

var Kwirk    = require( 'kwirk' )
  , bot      = new Kwirk.Bot();

var freenode = {
  type: 'irc',
  name: 'freenode',
  servers: [
    {
      host: 'adams.freenode.net',
      port: 7000,   // defaults to 6667
      ssl: true,    // default to false
      enable: false // defaults to true
    },
    {
      host: 'asimov.freenode.net',
      port: 7000,
      ssl: true
    }
  ],
  channels: [
    {
      name: '#bot-playground',
    }
  ]
};

var efnet = {
  type: 'irc',
  name: 'efnet',
  servers: [
    {
      host: 'efnet.port80.se',
    },
    {
      host: 'irc.swepipe.se',
    }
  ],
  channels: [
    {
      name: '#kwirk',
    }
  ],
  nick: 'KwirKBot',      // defaults to 'kwirk'
}

var server = {
  host: 'irc.choopa.net',
  port: 9999,
  ssl: true
};

bot
.addNetwork( freenode )
.addNetwork( efnet, function( err, network ) {
  network.addServer( server, function( err, server ) {
    server.disable();
  });
});

// this is binding to the efnet network and the #kwirk channel
bot.network['efnet'].bind({
  source_channel: '#kwirk',
  // the target will be freenode network and the #bot-playground channel
  target_network: 'freenode',
  target_channel: '#bot-playground',
  prefix_source: true
})

// reject, accept and map will all be passed a message object
.reject( function( message ) {
  return message.content.match(/^\+?!\w+/);
})
// opposing bind will be created, true value will inherit rejects, accepts and maps
.opposing( true )
.prefix_source = false;

bot.start();

Contributing

  1. Fork it ( https://github.com/jfrazx/KwirK/fork )
  2. Adhere to naming conventions (transition in progress)
  • Indentation is two (2) spaces
  • File name to match Object/Class name in lowercase and underscored (irc_server.ts for IrcServer)
  • Treat acronyms in object names as words (Irc instead of IRC)
  • Variables to be lowercase, _ delimited words (my_var)
  • Function names to be camelCase, starting with lowercase (myFunction)
  • Class names to be CamelCase, starting with uppercase (MyClass)
  1. Create your feature branch (git checkout -b my-new-feature)
  2. Commit your changes (git commit -am 'Add some feature')
  3. Push to the branch (git push origin my-new-feature)
  4. Create a new Pull Request (not to master)

Keywords

FAQs

Package last updated on 22 Oct 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc