Created
September 4, 2023 03:20
-
-
Save awt/09a98b882d830873ce5050ca6b20c2d2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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