npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tinyslacktriviabot

v4.0.1

Published

A very simple, small and extendable trivia bot for slack

Downloads

27

Readme

tinyslacktriviabot

A tiny, extensible slack trivia bot

version dependencies

Requirements

node v8

Installation

npm i tinyslacktriviabot

Usage

Create a file trivia.js and run it with node trivia.js

Minimum configuration
const { TinySlackTriviaBot } = require('tinyslacktriviabot');
const config = {
  name: 'trivia',
  token: 'SLACK_BOT_TOKEN',
  channels: ['SLACK_CHANNEL_ID']
}
TinySlackTriviaBot.run(config)

Get a <SLACK_BOT_TOKEN> here https://my.slack.com/services/new/bot

Note: configuration can also be stored in a file config.json in the same folder as trivia.js

All databases included configuration
const { TinySlackTriviaBot } = require('tinyslacktriviabot');
const config = {
  name: 'trivia',
  token: 'SLACK_BOT_TOKEN',
  channels: ['SLACK_CHANNEL_ID'],
  repository: [
    { 
      'ignore': false,
      'path': 'DbRepository.js' 
    },
    { 
      'ignore': false,
      'path': 'TriviaDbRepository.js' 
    },
    { 
      'ignore': false,
      'path': 'JsonRepository.js'
    },
    { 
      'ignore': false,
      'path': 'HsRepository.js' 
    },
    { 
      'ignore': false,
      'path': 'JsRepository.js' 
    },
    {
      'ignore': false,
      'path': 'JsonRepository.js',
      'dbPath': 'wow.json'
    },
    {
      'ignore': false,
      'path': 'JsonRepository.js',
      'dbPath': 'jeopardy.json'
    },
    {
      'ignore': false,
      'path': 'JsonRepository.js',
      'dbPath': 'capitals.json',
      'questionPath': ['text'],
      'answerPath': [['answers', 0, 'text', 0]]
    },
    {
      'ignore': false,
      'path': 'JsonRepository.js',
      'dbPath': 'flags.json',
      'questionPath': ['text'],
      'answerPath': [['answers', 0, 'text', 0]]
    }]
}
TinySlackTriviaBot.run(config)

Advanced configuration

Configuration details

RepositorySettings

Base settings

Note: The settings bellow allow you to use the OOTB repositories with alternative databses. Internally the question object needs to have this structure { question, answer, category, ... } and these settings allow you to map a custom databse to the correct fields

JsonRepositorySettings

Assume the question object from JSON has the following format

question = {
              "text":"question text",
              "answers":["first answer", "second answer"],
              "parent": { "group":"category name" }
            }

Note: Property paths are evaluated using object-path. Internally, tinyslacktriviabot uses the coalesce function.

DbRepositorySettings

History

v4.0.0

  • Each repository has it's own settings now
  • Hearthstone respository
  • World of warcraft, Jeopardy, country flags and country capitals json databases
  • Export base models for easier extensibility

v3.0.0

  • configure multiple repositories
  • JsRepository (js questions with evaluator)
  • JsonRepository (questions from json file)

v2.0.0

  • opentdb support

v1.0.0

  • Initial version

License

© 2017 MIT