Home
Softono
hambot

hambot

Open source CSS
11
Stars
5
Forks
6
Issues
1
Watchers
2 months
Last Commit

About hambot

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

Platforms

Web Self-hosted

Languages

CSS

Links

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

  • [x] Line Messaging API
  • [x] Discord Bot
  • [x] Trello
  • [x] Messenger
  • [ ] Github

External APIs

  • [x] ical calendars
  • [x] Wanikani
  • [x] Twitter Stream

Features

Core Functionality

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

Functions

Personal

These functions requires authentication

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

Public

  • [x] Youtube music (Discord only)
  • [x] Generate promptpay QRcode
  • [x] Random chooser/ Group maker/ Weighted Randomizer
  • [x] Shaking in Discord very recommended
  • [x] 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