Giter Club home page Giter Club logo

betabot's Introduction

Hello! I am a software engineer based in Singapore.

I work across the stack and enjoy using TypeScript, Rust, Python, Terraform, and a few other tools.

For an overview, check out gyng.github.io

betabot's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar gyng avatar lawliet89 avatar

Watchers

 avatar  avatar

Forkers

juanparker1

betabot's Issues

Dockerise betabot

Would be a pretty neat thing to have. Will need to persist the database and expose webserver ports.

Might need to move settings files around into a directory to be persisted. Databases should already be in a directory, check if the database constructor needs to be locked into the database directory.

Add #address to Message class

This will let us serialize references to messages.

Use case:

Serialize remind timers so they persist between restarts.

Improve settings management

It is a mess right now. It

  • makes upgrading via git annoying
  • makes plugin development annoying: updated settings hashes for defaults do not get loaded until the JSON file is deleted

Ideally, default settings files should be checked in, and verified on plugin/adapter load. Empty .user.json files (eg, {}, or { api_key: 'CHANGE_ME' }should be generated on load if they do not exist.

A file structure might look like

- settings
  - defaults (checked in, verified on load)
    - adapters
    - plugins
      - ping.default.json
      - tell.default.json
    - bot.default.json
  - user
    - adapters
    - plugins
      - ping.user.json
    - bot.user.json

user.json files should not be checked into git.

Add Slack adapter

Slack seems like a good fit for betabot since it's pretty much IRC++.

Also consider the differences in message format: adapter might require additional work to make plugins fit Slack better (eg. attach adapter name to messages so individual plugins can decide how to format text, or call adapter-specific-message methods).

API reference

Convert plugin system to use Git instead of zip files

This will make maintaining, publishing, and updating plugins easier, as there is no longer a publishing step.

  • Rakefile tasks (convert existing ones to use git), maybe allow a tag option
  • Move lib/plugins to plugins
  • Update object loader in bot core
  • Update Gemfile
  • Remove packages directory

Add raw field to core message

Slack has formatted text which is unescaped and stored in message.text. We want to preserve the original formatted message somewhere.

Clean up blacklist core trigger implementation

Instead of blacklist_user, unblacklist_content etc., do a blacklist user add foo, blacklist user del foo.

Will need to do an enum check for the type (user, content, etc), since that is implicitly done using the former right now.

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.