Skip to main content

A python package for creating Twitch Bots

Project description

Jarvis

Build status PyPI version

This is the repository for the JarvisCore framework used to run the Jarvis the twitch bot. You are welcome to use this library to build your own bot for twitch, please note that there is currently minimal documentation which does tend to make things a little tricky.

You are welcome to join the "Looking for Jarvis" Discord server for updates and to join the community.

Getting Started

The simplest way to get started is to create a new file, with the basic code below:

from jarviscore.client import Client

jarvis = Client(nick="yourbotsname", 
    token="yourbotstoken",
    channels=["a list", "of channels", "to connect to"])
jarvis.start()

As an alternative, better practice would be to make use of a config file to store your settings and loading them into the bot when you start.
Use the following code for your bot as a starter.

from jarviscore.client import Client
from jarviscore import Settings

setting = Settings()

jarvis = Client(nick=setting.get_setting("nick"), 
    token=setting.get_setting("token"),
    channels=setting.get_setting("channels"))
jarvis.start()

Next, create a file called config.json and use the following template to get started

{
    "name": "yourbotsname",
    "token": "yourbotstoken",
    "channels": [
        "a list", "of channels", "to connect to"
    ]
}

If you prefer, you may use a config.yaml file instead.

Custom Modules

You can create your own custom modules and interactions for your bot using the Jarvis Core. Create a folder called modules in the same location as your bot file like so,

+-- root
|   |-- bot.py
|   |-- config.json
|   +-- modules
|       |-- module1.py
|       |-- module2.py

Then, copy the following boiler plate text to get started. This example implements a simple ping module.
Note: All modules need to implement setup() and teardown(), both take channel as a parameter.

from jarviscore import Module, Log
from jarviscore import CommandMessage

log = Log("Module:Ping", verbose="log")
class Ping(Module):

    def __init__(self, channel):
        Module.__init__(self, "Ping")
        self.channel = channel

    def on_command(self, data: CommandMessage):
        if "ping" == data.KEYWORD:
            self.channel.send("pong")


def setup(channel):
    channel.load_module(Ping(channel))
    log.log(f"Loaded Module Ping")

def teardown(channel):
    log.log(f"Removed Module Ping")

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jarviscore-0.1.1.426.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

jarviscore-0.1.1.426-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file jarviscore-0.1.1.426.tar.gz.

File metadata

  • Download URL: jarviscore-0.1.1.426.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for jarviscore-0.1.1.426.tar.gz
Algorithm Hash digest
SHA256 296c9228089211904a52e847ad3d9c5731391f8e98fec7f6381efdf23cf880f7
MD5 1f262d48e974d270f5e9722974cc5a4e
BLAKE2b-256 322896ded637b9f9644204cf8634240c408798e078aee26ff36252b043f56013

See more details on using hashes here.

File details

Details for the file jarviscore-0.1.1.426-py3-none-any.whl.

File metadata

  • Download URL: jarviscore-0.1.1.426-py3-none-any.whl
  • Upload date:
  • Size: 31.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for jarviscore-0.1.1.426-py3-none-any.whl
Algorithm Hash digest
SHA256 1c3a385b4596b0f098cfe5bcf67825ecb071b12dfdc21e497e82cac6a48426fc
MD5 8e30ebe8c795599d7350bb6cbca64fcb
BLAKE2b-256 24a18da47c3642e7e2ef3a7cd1cfbebe374956f664ac038d1539b2a5d42e1927

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page