Giter Club home page Giter Club logo

robotk's People

Contributors

dependabot[bot] avatar michaelstephens avatar paroxp avatar yashdalfthegray avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

paroxp

robotk's Issues

System for scheduling games

Game scheduler

As a user, I'd like to be able to schedule a gaming session with fellow users for a specified time and game

Requirements

Primary

  • Users can create multiple gaming sessions
  • Session times should take into account timezones
  • Users can sign up for a specified session
  • @randbot will automatically notify participants when its time to game
  • Users can list all gaming sessions coming up

Secondary

  • Users can specify the amount of players allowed in a gaming session

Criteria for acceptance

  • Calling @randbot sessions schedule [game] at [time] will create a new gaming session
  • Calling @randbot sessions join [game] at [time] will add that user to the game session
  • Calling @randbot sessions list will list out the upcoming game sessions

Promisify `msg.http` calls

Right now, msg.http calls use Node.js style callbacks to do async operations. This can lead to callback hell if we start nesting callbacks so we will need promises sooner than later. Example below

// Callback hell

msg.http(url).get()((err1, res1, body1) => {
  if (err1) {
    msg.send('something has gone wrong');
  }
  else {
    msg.http(anotherUrl).get()(err2, res2, body2) => {
      if (err2) {
        msg.send('something has gone wrong');
      }
      else {
        msg.http(yetAnotherUrl).get()(err3, res3, body3) => {
          // now we have all the data if there is no error
          if (err3) {
            msg.send('something has gone wrong');
          }
          else {
            msg.send(body3);
          }
        });
      }
    });
  }
});
// With promises - assume that a function called fetch() is available

fetch(url).then(body => {
  return fetch(anotherUrl);
}).then(body => {
  return fetch(yetAnotherUrl);
}).then(body => {
  msg.send(body);
}).catch(e => msg.send('something has gone wrong'));

Much cleaner and much easier to read and it comes with a error handler built in just like a synchronous try/catch block.

Plus the http library that hubot is using is unmaintained.

Newcomer Welcome Message

Newcomer Welcome Message

As a new User, I want to be greeted with a welcome message and the rules of the community so that I can participate effectively.

Requirements

Primary

  • Direct message a new user with a welcome message
  • Have the rules of the community in the message
  • The message should be easy to read, to the point and helpful

Criteria for acceptance

  • Bot opens a new direct message with every new user
  • Each new user is sent a message explaining how the team works

Game reviews

Game Reviews

As a User, I'd like to be able to ask randbot to aggregate reviews for me

Requirements

Primary

  • Asking for a review for a game should give me results
  • Integrate with metacritic
  • Integrate with steam (?)

Secondary

  • Asking for a review for a game should give me an averaged score across aggregated results

Criteria for acceptance

  • Calling @randbot review [game] should give me an aggregated list of reviews

Rename project to RoboTK

RoboTK is a much better name, lets rename this bot.

Tasks

  • Rename Github Repo
  • Rename bot in code
  • Rename bot in Readme
  • Rename bot in slack

Mod tools

V1 mod tools

As an admin/owner I'd like the ability to ban users or mute them

Requirements

Ban

  • Banning is only accessible to users marked as admin/owner
  • Banning is equivalent to deactivating the account

Mute

  • Muting is only accessible to users marked as admin/owner
  • Muting should entail a bot automatically deleting a person's slacks
  • Muting should have a set time frame

Criteria for acceptance

  • Calling @randbot mute @user 10 minutes should make the bot delete ALL of the user's posts in a public channel auto delete for 10 minutes
  • Calling @randbot ban @user should deactivate the user's account

There are some linter issues in the tests

$ npm run linter
> [email protected] linter /home/travis/build/hash-gaming/robotk
> eslint .
/home/travis/build/hash-gaming/robotk/tests/general.spec.js
  17:25  warning  Unexpected unnamed generator function 'bind'  func-names
/home/travis/build/hash-gaming/robotk/tests/lit.spec.js
  18:25  warning  Unexpected unnamed generator function 'bind'  func-names
  31:25  warning  Unexpected unnamed generator function 'bind'  func-names
/home/travis/build/hash-gaming/robotk/tests/pugme.spec.js
  17:25  warning  Unexpected unnamed generator function 'bind'  func-names
  29:25  warning  Unexpected unnamed generator function 'bind'  func-names
โœ– 5 problems (0 errors, 5 warnings)

#lit

Handle posting to #lit

As a User, I'd like to be able to tell randbot to make a post to the #lit channel

Requirements

Primary

  • Posting to #lit should happen through randbot by passing it a link
  • Randbot should validate that the link is a hashtag gaming post link
    • Validate that it matches https://hashtaggaming.slack.com/archives/

Secondary

  • Create an alias of "its lit fam [link]"
  • Have randbot monitor the activity in #lit and remove posts not made by itself
    • If possible, threads are ok

Criteria for acceptance

  • Calling @randbot lit [link] should post that link to the #lit channel

Add build status to the top of the readme

Prerequisite is #13 but once that is merged, we should add

[![Build Status](https://travis-ci.org/hash-gaming/randbot.svg?branch=master)](https://travis-ci.org/hash-gaming/randbot)

to README.md.

Add Knack support

Game Reviews

As a User, I'd like to be able to ask randbot to have knack related features

Requirements

Primary

  • Asking for knack gives a knack gif
  • Asking for a knack bomb gives multiple knack gifs
    • MAX LIMIT 10
  • Integrate with giphy to pull knack gifs

Secondary

  • Responds with a knack gif after any instance of knack said?

Criteria for acceptance

  • Calling @randbot knack me should give me a knack gif
  • Calling @randbot knack bomb [X] should give me up to 10 knack gifs

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.