telegram-butler-bot/main.py
2024-09-13 06:33:33 +02:00

47 lines
1.4 KiB
Python

#!/usr/bin/env python3
import logging
import argparse
from bot import Butler
coloredlogsError = None
try:
import coloredlogs
except ImportError as e:
coloredlogsError = e
def main():
parser = argparse.ArgumentParser(description='Vylion\'s butler bot.')
parser.add_argument('token', metavar='TOKEN',
help='The Bot Token to work with the Telegram Bot API')
parser.add_argument('-l', '--loglevel', default='INFO', metavar='LOG_LEVEL',
help='The level for logging.')
parser.add_argument('-c', '--chats', nargs='*', default=[], metavar='[CHATS]',
help='A whitelist of allowed chats. Empty enables all.')
args = parser.parse_args()
logger = logging.getLogger(__name__)
loglevel = logging.getLevelName(args.loglevel)
bot = Butler(logger, args.token, args.chats)
# Enable logging
log_format = "[{}][%(asctime)s]%(name)s::%(levelname)s: %(message)s".format(bot.get_username().upper())
if coloredlogsError:
logging.basicConfig(format=log_format, level=logging.INFO)
logger.warning("Unable to load coloredlogs:")
logger.warning(coloredlogsError)
else:
coloredlogs.install(level=logging.INFO, fmt=log_format)
logger.info("Bot started up!")
logger.info("Current whitelist: {}".format(args.chats))
logger.setLevel(loglevel)
bot.run()
if __name__ == '__main__':
main()