Skip to content

dmzoneill/Chuckbot

Repository files navigation

Chuckbot

Chuck is an openai/chatgpt powered bot. - Hardest shit since sliced pan.

alt textalt text

Get setup

make up
make local

Install as systemd service

Follow setup on systemd readme

Using the phone number you supplied to the setup.

Invite the number for a whatsapp group, or chat him directly.

basic commands are:

APC  
| - help apc  
| - apc info
AYCBooking  
| - help aycbooking
AYCComms  
| - help ayccomms
AYCDoor  
| - help aycdoor  
| - ayc open door
AYCHeaters  
| - help aycheaters  
| - ayc heater status  
| - ayc heater on  
| - ayc heater off  
| - ayc heater boost  
| - ayc heater reset
AYCHoover  
| - help aychoover
Levenshteiner  
| - help levenshteiner  
| - levenshtein x y
Logger  
| - help logger  
| - logger list mine  
| - logger list
Meme  
| - help meme  
| - meme  
| - meme enable  
| - meme disable  
| - meme freq  
| - meme spam
PhilipsHue  
| - help philipshue  
| - hue x
PulseAudio  
| - help pulseaudio  
| - volume x
Radarr  
| - help radarr
Rbac  
| - help rbac  
| - role mine  
| - role d+  
| - role list  
| - restricted list  
| - role add x y  
| - restricted add x  
| - role remove x y  
| - restricted remove x
Reddit  
| - help reddit
Sonarr  
| - help sonarr  
| - sonarr list  
| - sonarr show d+  
| - sonarr show .  
| - sonarr add d+  
| - sonarr search .  
| - sonarr update d+  
| - sonarr update .  
| - sonarr missing d+  
| - sonarr missing .  
| - sonarr stats  
| - sonarr calendar
Spam  
| - help spam
State  
| - help state  
| - state show  
| - state save  
| - state load
TikTok  
| - help tiktok
Translate  
| - help translate  
| - translate default x  
| - translate off  
| - translate de x
Twitter  
| - help twitter
UrbanDictionary  
| - help urbandictionary  
| - urban
Weather  
| - help weather  
| - weather x
WebCam  
| - help webcam  
| - webcam picture  
| - webcam video
AYCPi  
| - help aycpi
Amazon  
| - help amazon
Ashtanga  
| - help ashtanga  
| - yoga start  
| - yoga stop  
| - yoga list  
| - yoga poses
Chuck  
| - help chuck  
| - chuck name
ChuckJokes  
| - help chuckjokes  
| - chuck stfu  
| - chuck
Crypto  
| - help crypto  
| - coin  
| - coin 0-9  
| - coin name  
| - coin name duration
Currency  
| - help currency  
| - currency
Deluge  
| - help deluge
Facebook  
| - help facebook
Feature  
| - help feature  
| - feature list  
| - feature enable x  
| - feature disable x
Formula1  
| - help formula1  
| - f1 rankings driver  
| - f1 rankings team  
| - f1 races  
| - f1 driver .
Google  
| - help google  
| - google x
Wikipedia  
| - help wikipedia  
| - wiki today  
| - wiki x
WorldCup  
| - help worldcup  
| - wc update  
| - wc groups  
| - wc group [a-h]  
| - wc matches  
| - wc matches [a-h]  
| - wc current  
| - wc today  
| - wc tomorrow  
| - wc matches [a-zA-Z.]{4,15}  
| - wc top d+  
| - wc 16  
| - wc 8  
| - wc 4  
| - wc 2
Youtube  
| - help youtube  
| - youtube x
Harass  
| - help harass  
| - harass  
| - harass x  
| - harass stop x  
| - harass list
Help  
| - help help  
| - help  
| - help xHi  
| - help hi  
| - Hi
HyperLink  
| - help hyperlink
Imdb  
| - help imdb  
| - imdb x
Jackett  
| - help jackett

Add your own module/strategy

# include base class
const MessageStrategy = require("../MessageStrategy.js")


class MyMod extends MessageStrategy {
  static dummy = MessageStrategy.derived.add(this.name);
  static self = null;

  constructor() {
    super('MyMod', {
      'enabled': true
    });
  }

  provides() {
    MyMod.self = this;

    return {
      help: 'Manages MyMod',
      provides: {
        'Door': {
          test: function (message) {
            return message.body.toLowerCase() === 'door';
          },
          access: function (message, strategy, action) {
            return MessageStrategy.hasAccess(message.sender.id, strategy.constructor.name + action.name);
          },
          help: function () {
            return 'Info for your help entry';
          },
          action: MyMod.self.MyModFunc,
          interactive: false,
          enabled: function () {
            return MessageStrategy.state['MyMod']['enabled'];
          }
        },
        'as many of these as you need': {
          .....
        },
        'as many of these as you need': {
          .....
        }
      },
      access: function (message, strategy) {
        return MessageStrategy.hasAccess(message.sender.id, strategy.constructor.name);
      },
      enabled: function () {
        return MessageStrategy.state['MyMod']['enabled'];
      }
    }
  }

  MyModFunc() {
    return false;
  }
}

module.exports = {
  MessageStrategy: MyMod
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages