forked from bayangan1991/discord-key-bot
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathrun.py
More file actions
67 lines (47 loc) · 2.2 KB
/
Copy pathrun.py
File metadata and controls
67 lines (47 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import asyncio
import logging
from sqlalchemy.orm import sessionmaker
import discord_key_bot.bot
import os
from datetime import timedelta
from dotenv import load_dotenv
from discord_key_bot.common import defaults
from discord_key_bot.db import connection
async def start():
load_dotenv()
loglevel_str: str = os.environ.get("LOGLEVEL", defaults.LOG_LEVEL)
log_level: int = logging.getLevelName(loglevel_str)
logging.basicConfig(level=log_level)
logger = logging.getLogger("discord-key-bot.start")
logger.debug(f"Log level set to {loglevel_str}")
command_prefix: str = os.environ.get("BANG", defaults.BANG)
logger.debug(f"Command prefix: {command_prefix}")
wait_time: timedelta = timedelta(seconds=int(os.environ.get("WAIT_TIME", defaults.CLAIM_COOLDOWN)))
logger.debug(f"Claim cooldown: {wait_time}")
bot_channel_id: int = int(os.environ.get("BOT_CHANNEL_ID"))
logger.debug(f"Bot Channel ID: {bot_channel_id}")
sqlalchemy_uri: str = os.environ.get("SQLALCHEMY_URI", defaults.SQLALCHEMY_URI)
logger.debug(f"Database URI: {sqlalchemy_uri}")
page_size: int = int(os.environ.get("PAGE_SIZE", str(defaults.PAGE_SIZE)))
logger.debug(f"Page size: {page_size}")
echo_sql_statements: bool = bool(os.environ.get("ECHO_SQL_STATEMENTS", False))
logger.debug(f"Echo SQL statements: {echo_sql_statements}")
token: str = os.environ["TOKEN"]
expiration_waiver_period: timedelta = timedelta(
seconds=int(os.environ.get("EXPIRATION_WAIVER_PERIOD", defaults.EXPIRATION_WAIVER_PERIOD)))
logger.debug(f"Expiring key cooldown waiver period: {expiration_waiver_period}")
db_sessionmaker: sessionmaker = connection.new(sqlalchemy_uri, echo=echo_sql_statements)
logger.info("Successfully initialized database connection")
bot = await discord_key_bot.bot.new(
db_sessionmaker=db_sessionmaker,
bot_channel_id=bot_channel_id,
wait_time=wait_time,
command_prefix=command_prefix,
page_size=page_size,
expiration_waiver_period=expiration_waiver_period,
log_level=log_level,
log_handler=logging.StreamHandler(),
)
await bot.start(token)
if __name__ == "__main__":
asyncio.run(start())