Skip to content

Over-Engineered personal bot. Build with maximum scalability, development speed and integration between all possible platforms in mind.

Notifications You must be signed in to change notification settings

hamzaabamboo/hambot

Repository files navigation

HamBot

Personal cross-platform bot to help keep up with tasks and lots more stuff. Built with scalability and least pain to add new features.

Integrations

Messaging Platform

  • Line Messaging API
  • Discord Bot
  • Trello
  • Messenger
  • Github

External APIs

  • ical calendars
  • Wanikani
  • Twitter Stream

Features

Core Functionality

  • Ping
  • Authorization
  • Message Handling
  • Commands
  • Compound Commands
  • Audio Playing (only on supported platform)
  • Scheduling
  • Push Messages, Multiple push channels (Public/ Private/ Debug/ Recurring)
  • Activation/Deactivation of modules
  • Effortlessly add platforms
  • Embed links
  • Help command

Functions

Personal

These functions requires authentication

  • Task tracking from Trello
    • Add task
    • Task reminder
  • Take notes
  • Audio Streaming (Discord only)
  • Temporary file sharing
  • Clipboard
  • Recurring events reminder
  • Calendar (ical) Events reminder
  • Set Discord server image

Public

  • Youtube music (Discord only)
  • Generate promptpay QRcode
  • Random chooser/ Group maker/ Weighted Randomizer
  • Shaking in Discord ** very recommended **
  • Search nyaa site

Installation

Create .env file using .env.example as template

LINE_CHANNEL_ACCESS_TOKEN=<Line channel access token>
LINE_CHANNEL_SECRET=<Line channelSecret>
TRELLO_API_KEY=<Trello key>
TRELLO_OAUTH_TOKEN=<Trello OAuth>
DISCORD_TOKEN=<Discord bot token>
PUBLIC_URL=<Url of the bot>
FACEBOOK_VERIFY_TOKEN=<A random string for verifying webhook>
FACEBOOK_PAGE_ACCESS_TOKEN=<Facebook page access token>
WANIKANI_API_KEY=<wanikani api key>
TWITTER_BEARER_TOKEN=<twitter bearer token>

Roadmap

This is a short plan for making this repository more configurable and easier to work with.

  • Abstract Data Source For More Compatability
  • Auto-enable modules when corresponding .env is inserted
  • Auto register command modules ()
  • Refactor Important modules (Push/ Logging/ Data)

Development

# install dependencies
yarn
# start development server
yarn start:dev

Production

# install dependencies
yarn
# build project
yarn build
# start server
yarn start

or clone the project into server and use deploy.sh script and let docker compose do the work

About

Over-Engineered personal bot. Build with maximum scalability, development speed and integration between all possible platforms in mind.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published