Page MenuHomePhabricator

EyeInTheSky
Updated 973 Days AgoPublic

Version 6 of 9: You are viewing an older version of this document, as it appeared on Jul 3 2018, 10:43 PM.

Installation

  1. Download the latest binaries from the project page: EyeInTheSky
  2. Extract the archive to an empty folder
  3. Configure the bot by editing configuration.xml
  4. (optional) Configure logging by editing the file log4net.xml
  5. Launch EyeInTheSky.exe

Configuration

For the most part, the comments within configuration.xml should be self-explanatory, because I'm lazy and I don't want to have to update this page very often.

The key parts you need to know -

  • Four general things to configure - the bot itself, the listening IRC network, the reporting IRC network, and the email server.
    • Bot
      • Channels to join on each network
      • A prefix to all commands - commonly ! but I use =, as does this documentation.
      • A path to the configuration file for the stalks - this doesn't need to exist as it is managed by the bot.
      • A path to the configuration file for the stalk templates - this doesn't need to exist as it is managed by the bot.
      • The full mask of the RC user to listen to
      • The owner of the bot (full mask needed)
      • The format for displaying dates
      • The MediaWiki (aka Wikipedia) API endpoint to use. The default is then English Wikipedia.
      • The user agent string to use when talking to web services. It's very good practice to put your contact details here
    • IRC networks (two of these)
      • Most of this should be self-explanatory.
      • Notably, clientName is just a name for logging and reporting.
      • username is used both as the ident field, and the NickServ username if authToServices is set.
      • password is the NickServ password, not the server password.
    • Email
  • #{name} style values reference properties from the top section
  • The location of the configuration.xml file can be changed, pass the new location as the first command line parameter. This helps with upgrades, as your config can be held outside the application directory at a location of your choosing. As the stalk and template config locations are also specified in the configuration file, these are able to be moved outside the application directory.

Commands

Main article: Commands

Edit Flags

For the flag-based stalks, this is a description of some of the flags:

!    - unreviewed
M    - minor
N    - new
B    - bot
move - move

Templates

Templates can be defined in the template configuration file.

In version 2.2, the "acc" and "quick" commands were removed, due to the expectation that these would be replaced by templates. The relevant configuration for these is listed below:

<template flag="acc" description="ACC {0}: {1}" stalkflag="acc{0}" immediatemail="true"
          stalkenabled="true" templateenabled="true" expiryduration="P90D">
  <searchtree>
    <![CDATA[<or><user value="{1:R}" /><page value="{1:R}" /><summary value="{1:R}" /></or>]]>
  </searchtree>
</template>
<template flag="quick" immediatemail="true" stalkenabled="true" templateenabled="true" 
          expiryduration="P90D">
  <searchtree><![CDATA[<{0} value="{1:R}" />]]></searchtree>
</template>

The attributes available are:

  • flag - the identification tag for this template. Also acts as the command name for instantiating an instance of this template.
  • description - the default description for an instance of this template. Accepts parameters in the form {0}, {1}, etc.
  • stalkflag - if set, a default pattern for the flag of the stalk. Accepts parameters in the form {0}, {1}, etc.
  • immediatemail - the default value for the immediatemail attribute on the stalk.
  • stalkenabled - the default value for the enabled attribute on the stalk.
  • templateenabled - whether or not to register this template as a command to allow instantiation
  • expiryduration - a time duration in ISO 8601 format.

Within the template should be a string representing the XML search tree of the stalk. Accepts parameters in the form {0}, {1}, etc. Beware of regular expressions - use the format {0}, {1}, etc to escape the content of the parameter into a form which will match a regular expression.

Last Author
stwalkerster
Last Edited
Jul 3 2018, 10:43 PM