Giter VIP home page Giter VIP logo

sequell's Introduction

Sequell

Sequell is the stats IRC bot for ##crawl on Freenode IRC.

Sequell is the successor to the original ##crawl Henzell which at one point shared the same code. There are still many references to Henzell in the source and configuration.

Dependencies

  • Go 1.3 or better from http://golang.org/ or installed via your package manager.

    Your GOPATH environment variable must be correctly set, and $GOPATH/bin must be in your PATH for the seqdb tool.

  • PostgreSQL 9

    1. Install PostgreSQL, create a database 'sequell' and a user 'sequell', and give the user access to the database with password 'sequell'.

    2. In the 'sequell' database, install the PostgreSQL citext and orafce extensions by running (as an admin user): CREATE EXTENSION citext; CREATE EXTENSION orafce;

      citext is available as part of Postgres contrib; orafce is available at: https://github.com/orafce/orafce

      Sequell needs the CITEXT extension for case-insensitive comparison and grouping and the orafce extension for the median aggregate function. You may choose to skip the orafce extension if you do not need the median() aggregate function.

      You can use the seqdb tool to create the database and extensions if you run it as a Postgres admin user:

      Build seqdb from the Sequell root directory:

       $ make
      

      Then create the database:

       $ seqdb createdb --admin postgres --adminpassword xyzzy
      

      Depending on what authentication mode you're using for Postgres, you may need to run seqdb as the postgres Unix user (if using ident auth), and/or override the host and port you're connecting on.

      If you're connecting to Postgres using Unix sockets, specify the Unix socket directory as the --host option:

       $ seqdb --host /var/run/postgresql createdb
      

      Note that you still have to install the orafce and citext extensions for Postgres system-wide before you can create a database that uses these extensions. seqdb createdb merely automates the process of creating the database and sequell database user and creating the extensions in the database; it cannot install the extensions system-wide.

    3. Set up the database:

      Build Sequell's DB ops tool using make (this requires Go 1.3+):

       $ make
      

      Create the database tables in the schema:

       $ seqdb create-tables
      

      Populate the database: first fetch the server logs, then load them:

       $ seqdb fetch && seqdb load
      

      Create indexes and constraints on the database after loading logs:

       $ seqdb create-indexes
      

      You can change the database seqdb connects to, and how it connects. Run seqdb for an overview.

  • RE2

    1. Install RE2 using the package manager on your system (libre2-dev on the Debian family).
  • Ruby

    Sequell requires ruby 1.9 or better. You may need to install rubygems and the ruby headers (ruby-dev), depending on your system.

  • Perl

    Perl >= 5.14

Sequell wants Perl modules for IRC, YAML parsing, DB connectivity, etc. In addition the SQL query commands require several Ruby gems. To install Sequell's dependencies, use:

# ./scripts/install-libs

You can also install the Perl and Ruby dependencies independently:

# ./scripts/install-perl-modules
# gem install bundler && bundle install

Configuring Sequell

Sequell has three primary functions:

  1. Providing a repository for user-maintained content (the LearnDB).
  2. Storing records of all games on public serves and making them available to query.
  3. Serving a playlist of games enqueued for FooTV. This is one half of the configuration for FooTV. The FooTV service must separately be configured to connect to Sequell's playlist server.

Sequell also provides additional utility commands.

You configure Sequell by supplying an rc/sequell.rc in the directory from which you run Sequell. You can alternatively specify the rc filename as a command-line option with:

perl sequell.pl --rc=some/path/to/myweirdrc

sequell's People

Contributors

alexjurkiewicz avatar amalloy avatar bbrandes avatar broquaint avatar chrisoelmueller avatar elliptic avatar flodiebold avatar gammafunk avatar greensnark avatar jmbjr avatar jtuu avatar neilmoore avatar nlavsky avatar plampila avatar pleasingfungus avatar rawlins avatar rwbarton avatar samb avatar sgrunt avatar wheals avatar zannick avatar

Watchers

 avatar

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.