User Tools

Site Tools


ircbot

Introduction

We now have a basic IRC bot (Latobius1)) for the #ukhasnet channel. At present it doesn't do much (apart from logging channel activity) but the aim is to make it do useful stuff (querying node information and providing interactive updates for interesting nodes e.g. Balloons and Sea Bouys).

Implemented Commands

!node

!node <NODE>

List details from a node. At present this will show which gateways uploaded the most recent packet and when it was received. Example:

20:26 < mfa298> !node P01
20:26 -Latobius:#ukhasnet- Node P01, Uploaded by DB01 at 2014-08-29 15:37:54.96105 id is 1188446, Uploaded by DB01 at 2014-08-29 15:37:55.68918 id is 1188447

This shows that the node P01 was received twice via DB01 (these are via different paths). In future the paths will be listed and it will be possible to get the uploaded packet via the !upload command

In progress Commands

These commands are currently being worked on

!msg

!msg <NODE>@<GATEWAY> <MESSAGE>

Send a message to a particular node Needs Bot code finalising and updates to API and gateway code

!upload

!upload <ID>

This will show the raw packet as received by the gateway and uploaded to the API.

Planned Commands

!follow (not implimented)

!follow <NODEID>

For certain types of node (e.g. Balloons) this command will monitor uploads and report if it sees a new packet from that node. Due to the traffic this could cause on the channel there are likely to be some limits in place:

  • Rate Limited updates
  • Limited node types allowed
  • Limited people that can use the command

It should be possible to use the command from a PM with fewer limits (some rate limiting may still be applied)

!seen (not implimented)

!seen <NICK>

The Bot will remember when it's seen people in a channel. This command will display a message of when the person was last seen.

!admin (not implimented)

!admin <CMD> <ARGS>

Admin functions for the bot. Limited to certain people (for obvious reasons)

Easter Eggs

Some (potentially planned) commands may already respond in a possibly witty way. Finding these is left to the reader.

Twitter Following

Functionality similar to tweetBot in #highaltitude, where the bot posts all tweets containing '#ukhasnet' into the channel

There is a C++ library: twitcurl

Code

The Code is written in multi-threaded C++ and aims to be easily extended by adding to the Handler Class (with the ultimate aim of being able to add Handlers that auto register themselves)

Current code base https://github.com/m1ari/UKHASnet-bot and the channel is using release v0.1.

The bot is capable of connecting to multiple IRC servers and channels and is configured via a json file.

ircbot.txt · Last modified: 2014/08/29 20:59 by mfa298