Skip to content

Instantly share code, notes, and snippets.

@awt
Created September 4, 2023 03:20
Show Gist options
  • Save awt/09a98b882d830873ce5050ca6b20c2d2 to your computer and use it in GitHub Desktop.
Save awt/09a98b882d830873ce5050ca6b20c2d2 to your computer and use it in GitHub Desktop.
#main.py
import argparse
import logging
import time
import os
import discord
from discord_bridge_bot.dispatch import Dispatch
PEST_HOST = "0.0.0.0"
PEST_PORT = 9090
API_HOST = "127.0.0.1"
API_PORT = 9091
AKRIS_DATA_PATH = os.path.join(os.path.expanduser("~"), ".discord_bridge_bot")
AKRIS_DATABASE_NAME = "discord_bridge_bot.db"
def get_options():
parser = argparse.ArgumentParser()
parser.add_argument("--pest-host", default=PEST_HOST, help="pest station host")
parser.add_argument("--api-host", default=API_HOST, help="api service host")
parser.add_argument("--pest-port", default=PEST_PORT, help="pest station port")
parser.add_argument("--api-port", default=API_PORT, help="api service port")
parser.add_argument("--akris-data-path", default=AKRIS_DATA_PATH, help="path at which to locate persistent Akris data")
parser.add_argument("--akris-database-name", default=AKRIS_DATABASE_NAME, help="name to use for the Akris database file")
parser.add_argument("--disable-multipart", action='store_true', default=False, help="disable sending multipart messages")
parser.add_argument("--remote-station", action='store_true', default=False, help="connect to a remote station rather than spinning up a local one")
parser.add_argument("--discord-token", default=None, help="discord bot token")
return parser.parse_args()
if __name__ == '__main__':
options = get_options()
from akris.log_config import LogConfig
LogConfig(data_path=options.akris_data_path).get_logger("bin.main")
from akris.station import Station
from akris import client
logging.basicConfig(level=logging.INFO)
if not options.remote_station:
station = Station(
tcp_host=options.api_host,
tcp_port=options.api_port,
udp_port=options.pest_port,
host=options.pest_host,
data_path=options.akris_data_path,
database_name=options.akris_database_name,
)
station.start()
while not station.ready():
time.sleep(0.1)
akris_client = client.Client(host=options.api_host, port=int(options.api_port))
dispatch = Dispatch(akris_client, intents=discord.Intents.default())
dispatch.run(options.discord_token)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment